summaryrefslogtreecommitdiffstats
path: root/devtools/shared/gcli/commands/appcache.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/shared/gcli/commands/appcache.js')
-rw-r--r--devtools/shared/gcli/commands/appcache.js186
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);
+ }
+ }
+];