Bug 1303288 - Force unloading all JSM when reloading devtools via the addon. r=pbro
MozReview-Commit-ID: H6z4c6CXBC1
--- a/devtools/bootstrap.js
+++ b/devtools/bootstrap.js
@@ -119,16 +119,28 @@ function reload(event) {
}, false);
// As we can't get a reference to existing Loader.jsm instances, we send them
// an observer service notification to unload them.
Services.obs.notifyObservers(null, "devtools-unload", "reload");
// Then spawn a brand new Loader.jsm instance and start the main module
Cu.unload("resource://devtools/shared/Loader.jsm");
+ // Also unload all resources loaded as jsm, hopefully all of them are going
+ // to be converted into regular modules
+ Cu.unload("resource://devtools/client/shared/browser-loader.js");
+ Cu.unload("resource://devtools/client/framework/ToolboxProcess.jsm");
+ Cu.unload("resource://devtools/shared/apps/Devices.jsm");
+ Cu.unload("resource://devtools/client/scratchpad/scratchpad-manager.jsm");
+ Cu.unload("resource://devtools/shared/Parser.jsm");
+ Cu.unload("resource://devtools/client/shared/DOMHelpers.jsm");
+ Cu.unload("resource://devtools/client/shared/widgets/VariablesView.jsm");
+ Cu.unload("resource://devtools/client/responsivedesign/responsivedesign.jsm");
+ Cu.unload("resource://devtools/client/shared/widgets/AbstractTreeItem.jsm");
+ Cu.unload("resource://devtools/shared/deprecated-sync-thenables.js");
const {devtools} = Cu.import("resource://devtools/shared/Loader.jsm", {});
devtools.require("devtools/client/framework/devtools-browser");
// Go over all top level windows to reload all devtools related things
let windowsEnum = Services.wm.getEnumerator(null);
while (windowsEnum.hasMoreElements()) {
let window = windowsEnum.getNext();
let windowtype = window.document.documentElement.getAttribute("windowtype");