summaryrefslogtreecommitdiffstats
path: root/addon-sdk/source/lib/dev/toolbox.js
diff options
context:
space:
mode:
Diffstat (limited to 'addon-sdk/source/lib/dev/toolbox.js')
-rw-r--r--addon-sdk/source/lib/dev/toolbox.js107
1 files changed, 0 insertions, 107 deletions
diff --git a/addon-sdk/source/lib/dev/toolbox.js b/addon-sdk/source/lib/dev/toolbox.js
deleted file mode 100644
index 43f37759f..000000000
--- a/addon-sdk/source/lib/dev/toolbox.js
+++ /dev/null
@@ -1,107 +0,0 @@
-/* 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";
-
-module.metadata = {
- "stability": "experimental"
-};
-
-const { Cu, Cc, Ci } = require("chrome");
-const { Class } = require("../sdk/core/heritage");
-const { Disposable, setup } = require("../sdk/core/disposable");
-const { contract, validate } = require("../sdk/util/contract");
-const { each, pairs, values } = require("../sdk/util/sequence");
-const { onEnable, onDisable } = require("../dev/theme/hooks");
-
-const { gDevTools } = Cu.import("resource://devtools/client/framework/gDevTools.jsm", {});
-
-// This is temporary workaround to allow loading of the developer tools client - volcan
-// into a toolbox panel, this hack won't be necessary as soon as devtools patch will be
-// shipped in nightly, after which it can be removed. Bug 1038517
-const registerSDKURI = () => {
- const ioService = Cc['@mozilla.org/network/io-service;1']
- .getService(Ci.nsIIOService);
- const resourceHandler = ioService.getProtocolHandler("resource")
- .QueryInterface(Ci.nsIResProtocolHandler);
-
- const uri = module.uri.replace("dev/toolbox.js", "");
- resourceHandler.setSubstitution("sdk", ioService.newURI(uri, null, null));
-};
-
-registerSDKURI();
-
-const Tool = Class({
- extends: Disposable,
- setup: function(params={}) {
- const { panels } = validate(this, params);
- const { themes } = validate(this, params);
-
- this.panels = panels;
- this.themes = themes;
-
- each(([key, Panel]) => {
- const { url, label, tooltip, icon, invertIconForLightTheme,
- invertIconForDarkTheme } = validate(Panel.prototype);
- const { id } = Panel.prototype;
-
- gDevTools.registerTool({
- id: id,
- url: "about:blank",
- label: label,
- tooltip: tooltip,
- icon: icon,
- invertIconForLightTheme: invertIconForLightTheme,
- invertIconForDarkTheme: invertIconForDarkTheme,
- isTargetSupported: target => target.isLocalTab,
- build: (window, toolbox) => {
- const panel = new Panel();
- setup(panel, { window: window,
- toolbox: toolbox,
- url: url });
-
- return panel.ready();
- }
- });
- }, pairs(panels));
-
- each(([key, theme]) => {
- validate(theme);
- setup(theme);
-
- gDevTools.registerTheme({
- id: theme.id,
- label: theme.label,
- stylesheets: theme.getStyles(),
- classList: theme.getClassList(),
- onApply: (window, oldTheme) => {
- onEnable(theme, { window: window,
- oldTheme: oldTheme });
- },
- onUnapply: (window, newTheme) => {
- onDisable(theme, { window: window,
- newTheme: newTheme });
- }
- });
- }, pairs(themes));
- },
- dispose: function() {
- each(Panel => gDevTools.unregisterTool(Panel.prototype.id),
- values(this.panels));
-
- each(Theme => gDevTools.unregisterTheme(Theme.prototype.id),
- values(this.themes));
- }
-});
-
-validate.define(Tool, contract({
- panels: {
- is: ["object", "undefined"]
- },
- themes: {
- is: ["object", "undefined"]
- }
-}));
-
-exports.Tool = Tool;