diff options
Diffstat (limited to 'devtools/shared/gcli/commands/appcache.js')
-rw-r--r-- | devtools/shared/gcli/commands/appcache.js | 186 |
1 files changed, 186 insertions, 0 deletions
diff --git a/devtools/shared/gcli/commands/appcache.js b/devtools/shared/gcli/commands/appcache.js new file mode 100644 index 000000000..0789fb5a0 --- /dev/null +++ b/devtools/shared/gcli/commands/appcache.js @@ -0,0 +1,186 @@ +/* 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 l10n = require("gcli/l10n"); + +loader.lazyImporter(this, "AppCacheUtils", "resource://devtools/client/shared/AppCacheUtils.jsm"); + +exports.items = [ + { + item: "command", + name: "appcache", + description: l10n.lookup("appCacheDesc") + }, + { + item: "command", + runAt: "server", + name: "appcache validate", + description: l10n.lookup("appCacheValidateDesc"), + manual: l10n.lookup("appCacheValidateManual"), + returnType: "appcacheerrors", + params: [{ + group: "options", + params: [ + { + type: "string", + name: "uri", + description: l10n.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>" + l10n.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 + } + }); + } + }, + { + item: "command", + runAt: "server", + name: "appcache clear", + description: l10n.lookup("appCacheClearDesc"), + manual: l10n.lookup("appCacheClearManual"), + exec: function(args, context) { + let utils = new AppCacheUtils(args.uri); + utils.clearAll(); + + return l10n.lookup("appCacheClearCleared"); + } + }, + { + item: "command", + runAt: "server", + name: "appcache list", + description: l10n.lookup("appCacheListDesc"), + manual: l10n.lookup("appCacheListManual"), + returnType: "appcacheentries", + params: [{ + group: "options", + params: [ + { + type: "string", + name: "search", + description: l10n.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>" + l10n.lookup("appCacheListKey") + "</td>" + + " <td>${entry.key}</td>" + + " </tr>" + + " <tr>" + + " <td>" + l10n.lookup("appCacheListFetchCount") + "</td>" + + " <td>${entry.fetchCount}</td>" + + " </tr>" + + " <tr>" + + " <td>" + l10n.lookup("appCacheListLastFetched") + "</td>" + + " <td>${entry.lastFetched}</td>" + + " </tr>" + + " <tr>" + + " <td>" + l10n.lookup("appCacheListLastModified") + "</td>" + + " <td>${entry.lastModified}</td>" + + " </tr>" + + " <tr>" + + " <td>" + l10n.lookup("appCacheListExpirationTime") + "</td>" + + " <td>${entry.expirationTime}</td>" + + " </tr>" + + " <tr>" + + " <td>" + l10n.lookup("appCacheListDataSize") + "</td>" + + " <td>${entry.dataSize}</td>" + + " </tr>" + + " <tr>" + + " <td>" + l10n.lookup("appCacheListDeviceID") + "</td>" + + " <td>${entry.deviceID} <span class='gcli-out-shortcut' " + + "onclick='${onclick}' ondblclick='${ondblclick}' " + + "data-command='appcache viewentry ${entry.key}'" + + ">" + l10n.lookup("appCacheListViewEntry") + "</span>" + + " </td>" + + " </tr>" + + " </table>" + + " </li>" + + "</ul>", + data: { + entries: entries, + onclick: context.update, + ondblclick: context.updateExec + } + }); + } + }, + { + item: "command", + runAt: "server", + name: "appcache viewentry", + description: l10n.lookup("appCacheViewEntryDesc"), + manual: l10n.lookup("appCacheViewEntryManual"), + params: [ + { + type: "string", + name: "key", + description: l10n.lookup("appCacheViewEntryKey"), + defaultValue: null, + } + ], + exec: function(args, context) { + let utils = new AppCacheUtils(); + return utils.viewEntry(args.key); + } + } +]; |