зеркало из https://github.com/mozilla/gecko-dev.git
Bug 522261: Some code is firing after the browser window closes [r=gavin.sharp]
This commit is contained in:
Родитель
418432af45
Коммит
a620af1b51
|
@ -239,6 +239,11 @@ BrowserView.prototype = {
|
|||
this._idleService = Cc["@mozilla.org/widget/idleservice;1"].getService(Ci.nsIIdleService);
|
||||
this._idleService.addIdleObserver(this._idleServiceObserver, kBrowserViewPrefetchBeginIdleWait);
|
||||
},
|
||||
|
||||
uninit: function uninit() {
|
||||
this.setBrowser(null, null, false);
|
||||
this._idleService.removeIdleObserver(this._idleServiceObserver, kBrowserViewPrefetchBeginIdleWait);
|
||||
},
|
||||
|
||||
getVisibleRect: function getVisibleRect() {
|
||||
return this._visibleRectFactory();
|
||||
|
|
|
@ -409,10 +409,12 @@ var BrowserUI = {
|
|||
ExtensionsView.init();
|
||||
DownloadsView.init();
|
||||
PreferencesView.init();
|
||||
ConsoleView.init();
|
||||
},
|
||||
|
||||
uninit : function() {
|
||||
ExtensionsView.uninit();
|
||||
ConsoleView.uninit();
|
||||
},
|
||||
|
||||
update : function(aState) {
|
||||
|
|
|
@ -570,8 +570,7 @@ var Browser = {
|
|||
},
|
||||
|
||||
shutdown: function() {
|
||||
this._browserView.setBrowser(null, null, false);
|
||||
|
||||
this._browserView.uninit();
|
||||
BrowserUI.uninit();
|
||||
|
||||
var os = Cc["@mozilla.org/observer-service;1"].getService(Ci.nsIObserverService);
|
||||
|
|
|
@ -317,7 +317,7 @@
|
|||
<toolbarbutton id="tool-addons" type="radio" group="1" class="panel-button button-image" linkedpanel="addons-container"/>
|
||||
<toolbarbutton id="tool-downloads" type="radio" group="1" class="panel-button button-image" linkedpanel="downloads-container"/>
|
||||
<toolbarbutton id="tool-preferences" type="radio" group="1" checked="true" class="panel-button button-image" linkedpanel="prefs-container"/>
|
||||
<toolbarbutton id="tool-console" type="radio" group="1" hidden="true" class="panel-button button-image" linkedpanel="console-container" oncommand="ConsoleView.init();"/>
|
||||
<toolbarbutton id="tool-console" type="radio" group="1" hidden="true" class="panel-button button-image" linkedpanel="console-container"/>
|
||||
</box>
|
||||
<deck id="panel-items" selectedIndex="2" flex="1">
|
||||
<vbox id="addons-container" flex="1">
|
||||
|
|
|
@ -37,6 +37,7 @@
|
|||
|
||||
let ConsoleView = {
|
||||
_list: null,
|
||||
_console: null,
|
||||
_evalTextbox: null,
|
||||
_evalFrame: null,
|
||||
_evalCode: "",
|
||||
|
@ -54,6 +55,20 @@ let ConsoleView = {
|
|||
this._count = 0;
|
||||
this.limit = 250;
|
||||
|
||||
let self = this;
|
||||
let panels = document.getElementById("panel-items");
|
||||
panels.addEventListener("select",
|
||||
function(aEvent) {
|
||||
if (panels.selectedPanel.id == "console-container")
|
||||
self._delayedInit();
|
||||
},
|
||||
false);
|
||||
},
|
||||
|
||||
_delayedInit: function cv__delayedInit() {
|
||||
if (this._console)
|
||||
return;
|
||||
|
||||
this._console = Cc['@mozilla.org/consoleservice;1'].getService(Ci.nsIConsoleService);
|
||||
this._console.registerListener(this);
|
||||
|
||||
|
@ -68,8 +83,13 @@ let ConsoleView = {
|
|||
let self = this;
|
||||
this._evalFrame.addEventListener("load", function() { self.loadOrDisplayResult(); }, true);
|
||||
},
|
||||
|
||||
uninit: function cv_uninit() {
|
||||
if (this._console)
|
||||
this._console.unregisterListener(this);
|
||||
},
|
||||
|
||||
observe : function(aObject) {
|
||||
observe: function(aObject) {
|
||||
this.appendItem(aObject);
|
||||
},
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче