Bug 1348318 - Avoid toolbox.win.top with undocked toolboxes. r=ochameau draft
authorJ. Ryan Stinnett <jryans@gmail.com>
Fri, 17 Mar 2017 10:51:03 -0500
changeset 500888 50f24ce17e92b81a4dda7fa746356cea7d4d1921
parent 498551 cf5f24e225fe5f1b66ed5ae505faee373dd1a045
child 549740 d0ecf9df66eff6d5b025613338a9c3b46bf5e807
push id49832
push userbmo:jryans@gmail.com
push dateFri, 17 Mar 2017 21:56:25 +0000
reviewersochameau
bugs1348318
milestone55.0a1
Bug 1348318 - Avoid toolbox.win.top with undocked toolboxes. r=ochameau `toolbox.win.top` is a bit suspect when we support undocked toolboxes, as this doesn't allow you to reach a browser window for the toolbox. Here we take a different approach that should work for all docking types. MozReview-Commit-ID: 5mlsp4OyZrc
devtools/client/framework/devtools-browser.js
--- a/devtools/client/framework/devtools-browser.js
+++ b/devtools/client/framework/devtools-browser.js
@@ -746,17 +746,17 @@ var gDevToolsBrowser = exports.gDevTools
     }
     gDevToolsBrowser._trackedBrowserWindows.delete(win);
     win.removeEventListener("unload", this);
 
     BrowserMenus.removeMenus(win.document);
 
     // Destroy toolboxes for closed window
     for (let [target, toolbox] of gDevTools._toolboxes) {
-      if (toolbox.win.top == win) {
+      if (target.tab && target.tab.ownerDocument.defaultView == win) {
         toolbox.destroy();
       }
     }
 
     // Destroy the Developer toolbar if it has been accessed
     let desc = Object.getOwnPropertyDescriptor(win, "DeveloperToolbar");
     if (desc && !desc.get) {
       win.DeveloperToolbar.destroy();