Bug 1359855 - Prevent leaking DeveloperToolbar getter on browser windows during DevTools unload. r=jdescottes draft
authorAlexandre Poirot <poirot.alex@gmail.com>
Tue, 18 Jul 2017 16:11:18 +0200
changeset 612146 dc66ef82a7a75b1f42eb86ea6b41a75131ec39fe
parent 612145 a8b61c07da025e802cd77b1cdb0a3bed0de9e340
child 612147 f788552b7aebed6e077171efce43a9b8ceb34ce7
push id69397
push userbmo:poirot.alex@gmail.com
push dateThu, 20 Jul 2017 10:43:21 +0000
reviewersjdescottes
bugs1359855
milestone56.0a1
Bug 1359855 - Prevent leaking DeveloperToolbar getter on browser windows during DevTools unload. r=jdescottes MozReview-Commit-ID: 1XuKP16ASO9
devtools/client/framework/devtools-browser.js
--- a/devtools/client/framework/devtools-browser.js
+++ b/devtools/client/framework/devtools-browser.js
@@ -713,16 +713,18 @@ var gDevToolsBrowser = exports.gDevTools
       this._browserStyleSheets.delete(win);
     }
 
     // Destroy the Developer toolbar if it has been accessed
     let desc = Object.getOwnPropertyDescriptor(win, "DeveloperToolbar");
     if (desc && !desc.get) {
       win.DeveloperToolbar.destroy();
     }
+    // And in any case, remove the getter set by _registerBrowserWindow.
+    delete win.DeveloperToolbar;
 
     let tabContainer = win.gBrowser.tabContainer;
     tabContainer.removeEventListener("TabSelect", this);
     tabContainer.removeEventListener("TabOpen", this);
     tabContainer.removeEventListener("TabClose", this);
     tabContainer.removeEventListener("TabPinned", this);
     tabContainer.removeEventListener("TabUnpinned", this);
   },