зеркало из https://github.com/mozilla/pjs.git
Fix leaks related to failing to remove observers. b=239833 r=blake
This commit is contained in:
Родитель
8e23487e7f
Коммит
58e2de56be
|
@ -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>
|
||||
|
|
Загрузка…
Ссылка в новой задаче