зеркало из https://github.com/mozilla/gecko-dev.git
Bug 487282 - "browser is null" error in tabs.js
Share browser detection code for register and unregister tab listeners and better check for tabbrowser windows.
This commit is contained in:
Родитель
9be03ab0ef
Коммит
2317e38e54
|
@ -380,14 +380,24 @@ TabTracker.prototype = {
|
|||
}
|
||||
},
|
||||
|
||||
_registerListenersForWindow: function TabTracker__registerListen(window) {
|
||||
if (! window.getBrowser) {
|
||||
return;
|
||||
}
|
||||
_getBrowser: function TabTracker__getBrowser(window) {
|
||||
// Make sure the window is browser-like
|
||||
if (typeof window.getBrowser != "function")
|
||||
return null;
|
||||
|
||||
// Make sure it's a tabbrowser-like window
|
||||
let browser = window.getBrowser();
|
||||
if (! browser.tabContainer) {
|
||||
if (browser == null || typeof browser.tabContainer != "object")
|
||||
return null;
|
||||
|
||||
return browser;
|
||||
},
|
||||
|
||||
_registerListenersForWindow: function TabTracker__registerListen(window) {
|
||||
let browser = this._getBrowser(window);
|
||||
if (browser == null)
|
||||
return;
|
||||
}
|
||||
|
||||
//this._log.trace("Registering tab listeners in new window.\n");
|
||||
//dump("Tab listeners registered!\n");
|
||||
let container = browser.tabContainer;
|
||||
|
@ -397,13 +407,10 @@ TabTracker.prototype = {
|
|||
},
|
||||
|
||||
_unRegisterListenersForWindow: function TabTracker__unregister(window) {
|
||||
if (! window.getBrowser) {
|
||||
let browser = this._getBrowser(window);
|
||||
if (browser == null)
|
||||
return;
|
||||
}
|
||||
let browser = window.getBrowser();
|
||||
if (! browser.tabContainer) {
|
||||
return;
|
||||
}
|
||||
|
||||
let container = browser.tabContainer;
|
||||
container.removeEventListener("TabOpen", this.onTabOpened, false);
|
||||
container.removeEventListener("TabClose", this.onTabClosed, false);
|
||||
|
|
Загрузка…
Ссылка в новой задаче