Fix leaks related to failing to remove observers. b=239833 r=blake
git-svn-id: svn://10.0.0.236/trunk@154583 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
578454f0bf
commit
23c7fa45da
@ -543,6 +543,11 @@ function delayedStartup()
|
||||
|
||||
function Shutdown()
|
||||
{
|
||||
var os = Components.classes["@mozilla.org/observer-service;1"]
|
||||
.getService(Components.interfaces.nsIObserverService);
|
||||
os.removeObserver(gSessionHistoryObserver, "browser:purge-session-history");
|
||||
os.removeObserver(gBrowser.browsers[0], "browser:purge-session-history");
|
||||
|
||||
#ifdef MOZ_ENABLE_XREMOTE
|
||||
// remove remote support
|
||||
var remoteService;
|
||||
@ -550,9 +555,7 @@ function Shutdown()
|
||||
.getService(Components.interfaces.nsIXRemoteService);
|
||||
remoteService.removeBrowserInstance(window);
|
||||
|
||||
var observerService = Components.classes["@mozilla.org/observer-service;1"]
|
||||
.getService(Components.interfaces.nsIObserverService);
|
||||
observerService.removeObserver(gTabOpenObserver, "open-new-tab-request");
|
||||
os.removeObserver(gTabOpenObserver, "open-new-tab-request");
|
||||
#endif
|
||||
try {
|
||||
gBrowser.removeProgressListener(window.XULBrowserWindow);
|
||||
|
||||
@ -479,15 +479,21 @@
|
||||
<method name="destroy">
|
||||
<body>
|
||||
<![CDATA[
|
||||
if (!this.hasAttribute("disablehistory")) {
|
||||
var os = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
|
||||
os.removeObserver(this, "browser:purge-session-history", false);
|
||||
}
|
||||
|
||||
if (this.mDragDropHandler)
|
||||
this.mDragDropHandler.detach();
|
||||
this.mDragDropHandler = null;
|
||||
|
||||
this.detachFormFill();
|
||||
|
||||
this.securityUI = null;
|
||||
this.mDragDropHandler = null;
|
||||
|
||||
this.removeEventListener("unload", this.onUnload, true);
|
||||
this.removeEventListener("DOMPopupBlocked", this.onPopupBlocked, true);
|
||||
]]>
|
||||
</body>
|
||||
</method>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user