Bug 1401288 - Run remote devtools panel browsers in the right TabGroup. draft
authorLuca Greco <lgreco@mozilla.com>
Tue, 19 Sep 2017 20:06:02 +0200
changeset 667128 bfd7a0e8a608934f04a184f4f7cb31f00dd04afe
parent 667127 ba69e294fc80f23d54fc68050f1b7d63d341aa9c
child 732296 d32b4b536ac9d0925af95e9b9cd6a6027dcdb353
push id80613
push userluca.greco@alcacoop.it
push dateTue, 19 Sep 2017 18:09:19 +0000
bugs1401288
milestone57.0a1
Bug 1401288 - Run remote devtools panel browsers in the right TabGroup. This patch ensures that the devtools panel browser elements are associated to the same TabGroup of the other extension pages from the same extension. MozReview-Commit-ID: 40TSPqGfTnz
browser/components/extensions/ext-devtools-panels.js
--- a/browser/components/extensions/ext-devtools-panels.js
+++ b/browser/components/extensions/ext-devtools-panels.js
@@ -208,31 +208,34 @@ class ParentDevToolsPanel {
     this.context = null;
     this.toolbox = null;
     this.browser = null;
     this.browserContainerWindow = null;
   }
 
   createBrowserElement(window) {
     const {toolbox} = this;
+    const {extension} = this.context;
     const {url} = this.panelOptions;
     const {document} = window;
 
     const browser = document.createElementNS(XUL_NS, "browser");
     browser.setAttribute("type", "content");
     browser.setAttribute("disableglobalhistory", "true");
     browser.setAttribute("style", "width: 100%; height: 100%;");
     browser.setAttribute("transparent", "true");
     browser.setAttribute("class", "webextension-devtoolsPanel-browser");
     browser.setAttribute("webextension-view-type", "devtools_panel");
     browser.setAttribute("flex", "1");
 
-    this.browser = browser;
+    // Ensure that the devtools panel browser is going to run in the same
+    // process of the other extension pages from the same addon.
+    browser.sameProcessAsFrameLoader = extension.groupFrameLoader;
 
-    const {extension} = this.context;
+    this.browser = browser;
 
     let awaitFrameLoader = Promise.resolve();
     if (extension.remote) {
       browser.setAttribute("remote", "true");
       browser.setAttribute("remoteType", E10SUtils.EXTENSION_REMOTE_TYPE);
       awaitFrameLoader = promiseEvent(browser, "XULFrameLoaderCreated");
     }