From 5b2c79095793cb7840e86a80dd8815cb61fa3a53 Mon Sep 17 00:00:00 2001 From: Dave Camp Date: Wed, 29 May 2013 10:47:38 -0700 Subject: [PATCH] Bug 875432 - Loader.jsm references gDevTools. r=jwalker --- browser/devtools/framework/gDevTools.jsm | 3 +++ toolkit/devtools/Loader.jsm | 7 ++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/browser/devtools/framework/gDevTools.jsm b/browser/devtools/framework/gDevTools.jsm index 90bf78760701..33ed0b42ef52 100644 --- a/browser/devtools/framework/gDevTools.jsm +++ b/browser/devtools/framework/gDevTools.jsm @@ -28,9 +28,11 @@ this.DevTools = function DevTools() { // destroy() is an observer's handler so we need to preserve context. this.destroy = this.destroy.bind(this); + this._teardown = this._teardown.bind(this); EventEmitter.decorate(this); + Services.obs.addObserver(this._teardown, "devtools-unloaded", false); Services.obs.addObserver(this.destroy, "quit-application", false); } @@ -273,6 +275,7 @@ DevTools.prototype = { */ destroy: function() { Services.obs.removeObserver(this.destroy, "quit-application"); + Services.obs.removeObserver(this._teardown, "devtools-unloaded"); for (let [key, tool] of this.getToolDefinitionMap()) { this.unregisterTool(key, true); diff --git a/toolkit/devtools/Loader.jsm b/toolkit/devtools/Loader.jsm index 3185968c10be..7f07a6f9d3e9 100644 --- a/toolkit/devtools/Loader.jsm +++ b/toolkit/devtools/Loader.jsm @@ -194,16 +194,17 @@ this.devtools = { } if (this._provider) { + var events = this.require("sdk/system/events"); + events.emit("devtools-unloaded", {}); delete this.require; this._provider.unload("newprovider"); - gDevTools._teardown(); } this._provider = provider; this._provider.load(); this.require = loader.Require(this._provider.loader, { id: "devtools" }); if (this._mainid) { - this.main(mainid); + this.main(this._mainid); } }, @@ -224,10 +225,10 @@ this.devtools = { reload: function() { var events = devtools.require("sdk/system/events"); events.emit("startupcache-invalidate", {}); + events.emit("devtools-unloaded", {}); this._provider.unload("reload"); delete this._provider; - gDevTools._teardown(); this._chooseProvider(); }, };