Bug 1392531 - create dedicated tab target instance for web-extensions;r=jdescottes

MozReview-Commit-ID: G7EOfYnZuZw

--HG--
extra : rebase_source : f363f9cb0027b20d9c8c5cb684af3b295b9ad289
This commit is contained in:
Julian Descottes 2017-08-22 16:31:44 +02:00
parent aaa695596c
commit 68384c971b
3 changed files with 15 additions and 1 deletions

View File

@ -54,7 +54,8 @@ global.getDevToolsTargetForContext = async (context) => {
}
const tab = context.devToolsToolbox.target.tab;
context.devToolsTarget = DevToolsShim.getTargetForTab(tab);
context.devToolsTarget = DevToolsShim.createTargetForTab(tab);
await context.devToolsTarget.makeRemote();
return context.devToolsTarget;

View File

@ -11,6 +11,7 @@ const {DevToolsShim} = Cu.import("chrome://devtools-shim/content/DevToolsShim.js
// Load gDevToolsBrowser toolbox lazily as they need gDevTools to be fully initialized
loader.lazyRequireGetter(this, "TargetFactory", "devtools/client/framework/target", true);
loader.lazyRequireGetter(this, "TabTarget", "devtools/client/framework/target", true);
loader.lazyRequireGetter(this, "Toolbox", "devtools/client/framework/toolbox", true);
loader.lazyRequireGetter(this, "ToolboxHostManager", "devtools/client/framework/toolbox-host-manager", true);
loader.lazyRequireGetter(this, "gDevToolsBrowser", "devtools/client/framework/devtools-browser", true);
@ -582,6 +583,17 @@ DevTools.prototype = {
BrowserToolboxProcess.init({ addonID });
},
/**
* Compatibility layer for web-extensions. Used by DevToolsShim for
* browser/components/extensions/ext-devtools.js
*
* web-extensions need to use dedicated instances of TabTarget and cannot reuse the
* cached instances managed by DevTools target factory.
*/
createTargetForTab: function (tab) {
return new TabTarget(tab);
},
/**
* Compatibility layer for web-extensions. Used by DevToolsShim for
* browser/components/extensions/ext-devtools-inspectedWindow.js

View File

@ -298,6 +298,7 @@ let addonSdkMethods = [
* therefore DevTools should always be available when they are called.
*/
let webExtensionsMethods = [
"createTargetForTab",
"createWebExtensionInspectedWindowFront",
"getTargetForTab",
"getTheme",