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:
Edward Lee 2009-06-22 15:53:42 -07:00
Родитель 9be03ab0ef
Коммит 2317e38e54
1 изменённых файлов: 19 добавлений и 12 удалений

Просмотреть файл

@ -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);