Bug 1300587 - Fix DevToolsExtensionPageContextParent shutdown method.
- a DevToolsExtensionPageContextParent instance can be missing a devToolsTarget
property when it is destroyed (because the devToolsTarget property is set lazily
if the extension page is using any API that actually needs a TabTarget instance)
- the DevToolsExtensionPageContextParent's shutdown method should
call super.shutdown to complete its cleanup.
MozReview-Commit-ID: EnxEZ0rrnTT
--- a/toolkit/components/extensions/ExtensionParent.jsm
+++ b/toolkit/components/extensions/ExtensionParent.jsm
@@ -432,23 +432,24 @@ class DevToolsExtensionPageContextParent
return contextDevToolsTarget;
}
get devToolsTarget() {
return this._devToolsTarget;
}
shutdown() {
- if (!this._devToolsTarget) {
- throw new Error("no DevTools target is set during DevTools Context shutdown");
+ if (this._devToolsTarget) {
+ this._devToolsTarget.destroy();
+ this._devToolsTarget = null;
}
- this._devToolsTarget.destroy();
- this._devToolsTarget = null;
this._devToolsToolbox = null;
+
+ super.shutdown();
}
}
ParentAPIManager = {
proxyContexts: new Map(),
init() {
Services.obs.addObserver(this, "message-manager-close", false);