Backed out 2 changesets (bug 1302996) for being the likely cause of browser chrome crashes a=backout

Backed out changeset 8a97f217ebe8 (bug 1302996)
Backed out changeset 45bcf45afca2 (bug 1302996)
This commit is contained in:
Wes Kocher
2016-11-28 16:38:20 -08:00
parent 346ad230b7
commit fadbb05cd6
5 changed files with 94 additions and 114 deletions

View File

@@ -18,6 +18,7 @@ const promise = require("promise");
const defer = require("devtools/shared/defer");
const Telemetry = require("devtools/client/shared/telemetry");
const { gDevTools } = require("./devtools");
const { when: unload } = require("sdk/system/unload");
// Load target and toolbox lazily as they need gDevTools to be fully initialized
loader.lazyRequireGetter(this, "TargetFactory", "devtools/client/framework/target", true);
@@ -141,16 +142,6 @@ var gDevToolsBrowser = exports.gDevToolsBrowser = {
}
}
break;
case "quit-application":
gDevToolsBrowser.destroy({ shuttingDown: true });
break;
case "sdk:loader:destroy":
// This event is fired when the devtools loader unloads, which happens
// only when the add-on workflow ask devtools to be reloaded.
if (subject.wrappedJSObject == require('@loader/unload')) {
gDevToolsBrowser.destroy({ shuttingDown: false });
}
break;
}
},
@@ -739,19 +730,12 @@ var gDevToolsBrowser = exports.gDevToolsBrowser = {
},
/**
* Either the SDK Loader has been destroyed by the add-on contribution
* workflow, or firefox is shutting down.
* @param {boolean} shuttingDown
* True if firefox is currently shutting down. We may prevent doing
* some cleanups to speed it up. Otherwise everything need to be
* cleaned up in order to be able to load devtools again.
* All browser windows have been closed, tidy up remaining objects.
*/
destroy: function ({ shuttingDown }) {
destroy: function () {
Services.prefs.removeObserver("devtools.", gDevToolsBrowser);
Services.obs.removeObserver(gDevToolsBrowser, "browser-delayed-startup-finished");
Services.obs.removeObserver(gDevToolsBrowser, "quit-application");
Services.obs.removeObserver(gDevToolsBrowser, "sdk:loader:destroy");
Services.obs.removeObserver(gDevToolsBrowser.destroy, "quit-application");
gDevToolsBrowser._pingTelemetry();
gDevToolsBrowser._telemetry = null;
@@ -759,8 +743,6 @@ var gDevToolsBrowser = exports.gDevToolsBrowser = {
for (let win of gDevToolsBrowser._trackedBrowserWindows) {
gDevToolsBrowser._forgetBrowserWindow(win);
}
gDevTools.destroy({ shuttingDown });
},
};
@@ -784,10 +766,8 @@ gDevTools.on("tool-unregistered", function (ev, toolId) {
gDevTools.on("toolbox-ready", gDevToolsBrowser._updateMenuCheckbox);
gDevTools.on("toolbox-destroyed", gDevToolsBrowser._updateMenuCheckbox);
Services.obs.addObserver(gDevToolsBrowser, "quit-application", false);
Services.obs.addObserver(gDevToolsBrowser.destroy, "quit-application", false);
Services.obs.addObserver(gDevToolsBrowser, "browser-delayed-startup-finished", false);
// Watch for module loader unload. Fires when the tools are reloaded.
Services.obs.addObserver(gDevToolsBrowser, "sdk:loader:destroy", false);
// Fake end of browser window load event for all already opened windows
// that is already fully loaded.
@@ -798,3 +778,8 @@ while (enumerator.hasMoreElements()) {
gDevToolsBrowser._registerBrowserWindow(win);
}
}
// Watch for module loader unload. Fires when the tools are reloaded.
unload(function () {
gDevToolsBrowser.destroy();
});