gecko/toolkit/devtools/gcli/commands/appcache.js
Joe Walker c7aa2eafde Bug 984365 - Refactor and split out BuiltinCommands.jsm; r=mratcliffe,robcee,panos
BuiltinCommands.jsm was huge to avoid slowing things down by having many
modules loading.

To avoid splitting it up from slowing things down we want to delay loading
commands. Create [add|remove]ItemsByModule to allow us to lazily add modules,
and convert all command modules to use this.

Then break up BuiltinCommands into a set of files, for each command, and do
some refactoring to use JS files rather than JSMs and use "use strict".

--HG--
rename : browser/devtools/commandline/Commands.jsm => browser/devtools/commandline/commands-index.js
rename : browser/devtools/debugger/CmdDebugger.jsm => browser/devtools/debugger/debugger-commands.js
rename : browser/devtools/inspector/CmdInspect.jsm => browser/devtools/inspector/inspector-commands.js
rename : browser/devtools/responsivedesign/CmdResize.jsm => browser/devtools/responsivedesign/resize-commands.js
rename : browser/devtools/scratchpad/CmdScratchpad.jsm => browser/devtools/scratchpad/scratchpad-commands.js
rename : browser/devtools/styleeditor/CmdEdit.jsm => browser/devtools/styleeditor/styleeditor-commands.js
rename : browser/devtools/tilt/CmdTilt.jsm => browser/devtools/tilt/tilt-commands.js
2014-04-13 07:47:27 +01:00

178 lines
5.1 KiB
JavaScript

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
const gcli = require("gcli/index");
loader.lazyImporter(this, "AppCacheUtils", "resource:///modules/devtools/AppCacheUtils.jsm");
exports.items = [
{
name: "appcache",
description: gcli.lookup("appCacheDesc")
},
{
name: "appcache validate",
description: gcli.lookup("appCacheValidateDesc"),
manual: gcli.lookup("appCacheValidateManual"),
returnType: "appcacheerrors",
params: [{
group: "options",
params: [
{
type: "string",
name: "uri",
description: gcli.lookup("appCacheValidateUriDesc"),
defaultValue: null,
}
]
}],
exec: function(args, context) {
let utils;
let deferred = context.defer();
if (args.uri) {
utils = new AppCacheUtils(args.uri);
} else {
utils = new AppCacheUtils(context.environment.document);
}
utils.validateManifest().then(function(errors) {
deferred.resolve([errors, utils.manifestURI || "-"]);
});
return deferred.promise;
}
},
{
item: "converter",
from: "appcacheerrors",
to: "view",
exec: function([errors, manifestURI], context) {
if (errors.length == 0) {
return context.createView({
html: "<span>" + gcli.lookup("appCacheValidatedSuccessfully") + "</span>"
});
}
return context.createView({
html:
"<div>" +
" <h4>Manifest URI: ${manifestURI}</h4>" +
" <ol>" +
" <li foreach='error in ${errors}'>${error.msg}</li>" +
" </ol>" +
"</div>",
data: {
errors: errors,
manifestURI: manifestURI
}
});
}
},
{
name: "appcache clear",
description: gcli.lookup("appCacheClearDesc"),
manual: gcli.lookup("appCacheClearManual"),
exec: function(args, context) {
let utils = new AppCacheUtils(args.uri);
utils.clearAll();
return gcli.lookup("appCacheClearCleared");
}
},
{
name: "appcache list",
description: gcli.lookup("appCacheListDesc"),
manual: gcli.lookup("appCacheListManual"),
returnType: "appcacheentries",
params: [{
group: "options",
params: [
{
type: "string",
name: "search",
description: gcli.lookup("appCacheListSearchDesc"),
defaultValue: null,
},
]
}],
exec: function(args, context) {
let utils = new AppCacheUtils();
return utils.listEntries(args.search);
}
},
{
item: "converter",
from: "appcacheentries",
to: "view",
exec: function(entries, context) {
return context.createView({
html: "" +
"<ul class='gcli-appcache-list'>" +
" <li foreach='entry in ${entries}'>" +
" <table class='gcli-appcache-detail'>" +
" <tr>" +
" <td>" + gcli.lookup("appCacheListKey") + "</td>" +
" <td>${entry.key}</td>" +
" </tr>" +
" <tr>" +
" <td>" + gcli.lookup("appCacheListFetchCount") + "</td>" +
" <td>${entry.fetchCount}</td>" +
" </tr>" +
" <tr>" +
" <td>" + gcli.lookup("appCacheListLastFetched") + "</td>" +
" <td>${entry.lastFetched}</td>" +
" </tr>" +
" <tr>" +
" <td>" + gcli.lookup("appCacheListLastModified") + "</td>" +
" <td>${entry.lastModified}</td>" +
" </tr>" +
" <tr>" +
" <td>" + gcli.lookup("appCacheListExpirationTime") + "</td>" +
" <td>${entry.expirationTime}</td>" +
" </tr>" +
" <tr>" +
" <td>" + gcli.lookup("appCacheListDataSize") + "</td>" +
" <td>${entry.dataSize}</td>" +
" </tr>" +
" <tr>" +
" <td>" + gcli.lookup("appCacheListDeviceID") + "</td>" +
" <td>${entry.deviceID} <span class='gcli-out-shortcut' " +
"onclick='${onclick}' ondblclick='${ondblclick}' " +
"data-command='appcache viewentry ${entry.key}'" +
">" + gcli.lookup("appCacheListViewEntry") + "</span>" +
" </td>" +
" </tr>" +
" </table>" +
" </li>" +
"</ul>",
data: {
entries: entries,
onclick: context.update,
ondblclick: context.updateExec
}
});
}
},
{
name: "appcache viewentry",
description: gcli.lookup("appCacheViewEntryDesc"),
manual: gcli.lookup("appCacheViewEntryManual"),
params: [
{
type: "string",
name: "key",
description: gcli.lookup("appCacheViewEntryKey"),
defaultValue: null,
}
],
exec: function(args, context) {
let utils = new AppCacheUtils();
return utils.viewEntry(args.key);
}
}
];