From 9524a4e7b6c64884cea70ff7f37dfa369a840673 Mon Sep 17 00:00:00 2001 From: Julian Descottes Date: Mon, 29 May 2017 18:20:01 +0200 Subject: [PATCH] Bug 1367424 - use DevTools shim in addon SDK;r=rpl MozReview-Commit-ID: 2ZoAU1pRxzx --HG-- extra : rebase_source : 1c54cbf9b9d0ab345e4257e74c9af9b64e525452 --- addon-sdk/source/lib/dev/debuggee.js | 11 +++-------- addon-sdk/source/lib/dev/toolbox.js | 10 +++++----- addon-sdk/source/lib/dev/utils.js | 13 ++++++------- addon-sdk/source/lib/sdk/addon/runner.js | 9 ++------- .../test/addons/page-mod-debugger-post/main.js | 12 ++---------- .../test/addons/page-mod-debugger-pre/main.js | 12 ++---------- 6 files changed, 20 insertions(+), 47 deletions(-) diff --git a/addon-sdk/source/lib/dev/debuggee.js b/addon-sdk/source/lib/dev/debuggee.js index 0ca0bd37a269..b057c9e04fae 100644 --- a/addon-sdk/source/lib/dev/debuggee.js +++ b/addon-sdk/source/lib/dev/debuggee.js @@ -11,8 +11,7 @@ module.metadata = { const { Cu } = require("chrome"); const { Class } = require("../sdk/core/heritage"); const { MessagePort, MessageChannel } = require("../sdk/messaging"); -const { require: devtoolsRequire } = Cu.import("resource://devtools/shared/Loader.jsm", {}); -const { DebuggerServer } = devtoolsRequire("devtools/server/main"); +const { DevToolsShim } = Cu.import("chrome://devtools-shim/content/DevToolsShim.jsm", {}); const outputs = new WeakMap(); const inputs = new WeakMap(); @@ -49,12 +48,8 @@ const Debuggee = Class({ if (target.isLocalTab) { // Since a remote protocol connection will be made, let's start the // DebuggerServer here, once and for all tools. - if (!DebuggerServer.initialized) { - DebuggerServer.init(); - DebuggerServer.addBrowserActors(); - } - - transports.set(this, DebuggerServer.connectPipe()); + let transport = DevToolsShim.connectDebuggerServer(); + transports.set(this, transport); } // TODO: Implement support for remote connections (See Bug 980421) else { diff --git a/addon-sdk/source/lib/dev/toolbox.js b/addon-sdk/source/lib/dev/toolbox.js index abf1e7e3cdc8..56019296a34e 100644 --- a/addon-sdk/source/lib/dev/toolbox.js +++ b/addon-sdk/source/lib/dev/toolbox.js @@ -15,7 +15,7 @@ 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", {}); +const { DevToolsShim } = Cu.import("chrome://devtools-shim/content/DevToolsShim.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 @@ -46,7 +46,7 @@ const Tool = Class({ invertIconForDarkTheme } = validate(Panel.prototype); const { id } = Panel.prototype; - gDevTools.registerTool({ + DevToolsShim.registerTool({ id: id, url: "about:blank", label: label, @@ -70,7 +70,7 @@ const Tool = Class({ validate(theme); setup(theme); - gDevTools.registerTheme({ + DevToolsShim.registerTheme({ id: theme.id, label: theme.label, stylesheets: theme.getStyles(), @@ -87,10 +87,10 @@ const Tool = Class({ }, pairs(themes)); }, dispose: function() { - each(Panel => gDevTools.unregisterTool(Panel.prototype.id), + each(Panel => DevToolsShim.unregisterTool(Panel.prototype.id), values(this.panels)); - each(Theme => gDevTools.unregisterTheme(Theme.prototype.id), + each(Theme => DevToolsShim.unregisterTheme(Theme.prototype.id), values(this.themes)); } }); diff --git a/addon-sdk/source/lib/dev/utils.js b/addon-sdk/source/lib/dev/utils.js index 48db39e04ff3..99b8df1da393 100644 --- a/addon-sdk/source/lib/dev/utils.js +++ b/addon-sdk/source/lib/dev/utils.js @@ -5,15 +5,14 @@ "use strict"; const { Cu } = require("chrome"); -const { gDevTools } = Cu.import("resource://devtools/client/framework/gDevTools.jsm", {}); -const { devtools } = Cu.import("resource://devtools/shared/Loader.jsm", {}); +const { DevToolsShim } = Cu.import("chrome://devtools-shim/content/DevToolsShim.jsm", {}); const { getActiveTab } = require("../sdk/tabs/utils"); const { getMostRecentBrowserWindow } = require("../sdk/window/utils"); const targetFor = target => { target = target || getActiveTab(getMostRecentBrowserWindow()); - return devtools.TargetFactory.forTab(target); + return DevToolsShim.getTargetForTab(target); }; const getId = id => ((id.prototype && id.prototype.id) || id.id || id); @@ -23,18 +22,18 @@ exports.getCurrentPanel = getCurrentPanel; const openToolbox = (id, tab) => { id = getId(id); - return gDevTools.showToolbox(targetFor(tab), id); + return DevToolsShim.showToolbox(targetFor(tab), id); }; exports.openToolbox = openToolbox; -const closeToolbox = tab => gDevTools.closeToolbox(targetFor(tab)); +const closeToolbox = tab => DevToolsShim.closeToolbox(targetFor(tab)); exports.closeToolbox = closeToolbox; -const getToolbox = tab => gDevTools.getToolbox(targetFor(tab)); +const getToolbox = tab => DevToolsShim.getToolbox(targetFor(tab)); exports.getToolbox = getToolbox; const openToolboxPanel = (id, tab) => { id = getId(id); - return gDevTools.showToolbox(targetFor(tab), id).then(getCurrentPanel); + return DevToolsShim.showToolbox(targetFor(tab), id).then(getCurrentPanel); }; exports.openToolboxPanel = openToolboxPanel; diff --git a/addon-sdk/source/lib/sdk/addon/runner.js b/addon-sdk/source/lib/sdk/addon/runner.js index f2995c2ae078..b7c9f95466d4 100644 --- a/addon-sdk/source/lib/sdk/addon/runner.js +++ b/addon-sdk/source/lib/sdk/addon/runner.js @@ -17,12 +17,7 @@ const { get } = require('../preferences/service'); const { preferences } = metadata; const Startup = Cu.import("resource://gre/modules/sdk/system/Startup.js", {}).exports; - -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); -XPCOMUtils.defineLazyGetter(this, "BrowserToolboxProcess", function () { - return Cu.import("resource://devtools/client/framework/ToolboxProcess.jsm", {}). - BrowserToolboxProcess; -}); +const { DevToolsShim } = Cu.import("chrome://devtools-shim/content/DevToolsShim.jsm", {}); // Initializes default preferences function setDefaultPrefs(prefsURI) { @@ -156,7 +151,7 @@ function run(options) { } if (get("extensions." + id + ".sdk.debug.show", false)) { - BrowserToolboxProcess.init({ addonID: id }); + DevToolsShim.initBrowserToolboxProcessForAddon(id); } } catch (error) { console.exception(error); diff --git a/addon-sdk/source/test/addons/page-mod-debugger-post/main.js b/addon-sdk/source/test/addons/page-mod-debugger-post/main.js index 703399c21bda..e20d4d1c4cec 100644 --- a/addon-sdk/source/test/addons/page-mod-debugger-post/main.js +++ b/addon-sdk/source/test/addons/page-mod-debugger-post/main.js @@ -12,9 +12,7 @@ const { getMostRecentBrowserWindow } = require('sdk/window/utils'); const { data } = require('sdk/self'); const { set } = require('sdk/preferences/service'); -const { require: devtoolsRequire } = Cu.import("resource://devtools/shared/Loader.jsm", {}); -const { DebuggerServer } = devtoolsRequire("devtools/server/main"); -const { DebuggerClient } = devtoolsRequire("devtools/shared/client/main"); +const { DevToolsShim } = Cu.import("chrome://devtools-shim/content/DevToolsShim.jsm", {}); var gClient; var ok; @@ -29,13 +27,7 @@ exports.testDebugger = function(assert, done) { assert.pass('starting test'); set('devtools.debugger.log', true); - if (!DebuggerServer.initialized) { - DebuggerServer.init(); - DebuggerServer.addBrowserActors(); - } - - let transport = DebuggerServer.connectPipe(); - gClient = new DebuggerClient(transport); + gClient = DevToolsShim.createDebuggerClient(); gClient.connect((aType, aTraits) => { tabs.open({ url: TAB_URL, diff --git a/addon-sdk/source/test/addons/page-mod-debugger-pre/main.js b/addon-sdk/source/test/addons/page-mod-debugger-pre/main.js index 366e9e437051..e3b6ca69cddf 100644 --- a/addon-sdk/source/test/addons/page-mod-debugger-pre/main.js +++ b/addon-sdk/source/test/addons/page-mod-debugger-pre/main.js @@ -12,9 +12,7 @@ const { getMostRecentBrowserWindow } = require('sdk/window/utils'); const { data } = require('sdk/self'); const { set } = require('sdk/preferences/service'); -const { require: devtoolsRequire } = Cu.import("resource://devtools/shared/Loader.jsm", {}); -const { DebuggerServer } = devtoolsRequire("devtools/server/main"); -const { DebuggerClient } = devtoolsRequire("devtools/shared/client/main"); +const { DevToolsShim } = Cu.import("chrome://devtools-shim/content/DevToolsShim.jsm", {}); var gClient; var ok; @@ -36,13 +34,7 @@ exports.testDebugger = function(assert, done) { }); ok(true, 'PageMod was created'); - if (!DebuggerServer.initialized) { - DebuggerServer.init(); - DebuggerServer.addBrowserActors(); - } - - let transport = DebuggerServer.connectPipe(); - gClient = new DebuggerClient(transport); + gClient = DevToolsShim.createDebuggerClient(); gClient.connect((aType, aTraits) => { tabs.open({ url: TAB_URL,