From bfb4a12169d9cdff7a6ca8c7a5d0340d7a5d0804 Mon Sep 17 00:00:00 2001 From: baku Date: Fri, 17 Feb 2017 09:46:36 +0100 Subject: [PATCH] Customizable Container panel #181 --- .eslintrc.js | 4 ++++ index.js | 19 ++++++++++++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 8ee0b1b..c35d8fa 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -8,6 +8,10 @@ module.exports = { "extends": [ "eslint:recommended" ], + "globals": { + "CustomizableUI": true, + "CustomizableWidgets": true + }, "plugins": [ "promise" ], diff --git a/index.js b/index.js index 1fbde56..5d6bdf7 100644 --- a/index.js +++ b/index.js @@ -34,6 +34,7 @@ const PREFS = [ ]; const { attachTo, detachFrom } = require("sdk/content/mod"); +const { Cu } = require("chrome"); const { ContextualIdentityService } = require("resource://gre/modules/ContextualIdentityService.jsm"); const { getFavicon } = require("sdk/places/favicon"); const Metrics = require("./testpilot-metrics"); @@ -50,6 +51,8 @@ const webExtension = require("sdk/webextension"); const windows = require("sdk/windows"); const windowUtils = require("sdk/window/utils"); +Cu.import("resource:///modules/CustomizableUI.jsm"); +Cu.import("resource:///modules/CustomizableWidgets.jsm"); // ---------------------------------------------------------------------------- // ContainerService @@ -84,6 +87,9 @@ const ContainerService = { this._metricsUUID = ss.storage.savedConfiguration.metricsUUID; + // Disabling the customizable container panel. + CustomizableUI.destroyWidget("containers-panelmenu"); + // Message routing // only these methods are allowed. We have a 1:1 mapping between messages @@ -831,6 +837,12 @@ const ContainerService = { } }); + // Restore the customizable container panel. + const widget = CustomizableWidgets.find(widget => widget.id === "containers-panelmenu"); + if (widget) { + CustomizableUI.createWidget(widget); + } + // Let's delete the configuration. delete ss.storage.savedConfiguration; @@ -1166,9 +1178,10 @@ ContainerWindow.prototype = { } const elementCache = this._elementCache.get(element); - - for (let e of elementCache) { // eslint-disable-line prefer-const - element.appendChild(e); + if (elementCache) { + for (let e of elementCache) { // eslint-disable-line prefer-const + element.appendChild(e); + } } },