code review

This commit is contained in:
gorhill 2015-10-12 17:06:25 -04:00
parent b0fcfaca7d
commit ceb9800eb1
1 changed files with 31 additions and 24 deletions

View File

@ -964,29 +964,36 @@ var tabWatcher = (function() {
return tabbrowser.tabs[i];
};
var browserFromTarget = function(target) {
if ( !target ) {
return null;
}
var browserFromTarget = (function() {
if ( vAPI.fennec ) {
return function(target) {
if ( !target ) { return null; }
if ( target.browser ) { // target is a tab
target = target.browser;
}
} else if ( vAPI.thunderbird ) {
return target.localName === 'browser' ? target : null;
};
}
if ( vAPI.thunderbird ) {
return function(target) {
if ( !target ) { return null; }
if ( target.mode ) { // target is object with tab info
var browserFunc = target.mode.getBrowser || target.mode.tabType.getBrowser;
if (browserFunc) {
if ( browserFunc ) {
return browserFunc.call(target.mode.tabType, target);
}
}
} else if ( target.linkedPanel ) { // target is a tab
return target.localName === 'browser' ? target : null;
};
}
return function(target) {
if ( !target ) { return null; }
if ( target.linkedPanel ) { // target is a tab
target = target.linkedBrowser;
}
if ( target.localName !== 'browser' ) {
return null;
}
return target;
return target.localName === 'browser' ? target : null;
};
})();
var tabIdFromTarget = function(target) {
var browser = browserFromTarget(target);
@ -1161,9 +1168,10 @@ var tabWatcher = (function() {
}
var browser, URI, tabId;
for ( var tabindex = tabs.length - 1; tabindex >= 0; tabindex-- ) {
var tab = tabs[tabindex];
browser = tabWatcher.browserFromTarget(tab);
var tabindex = tabs.length, tab;
while ( tabindex-- ) {
tab = tabs[tabindex];
browser = browserFromTarget(tab);
if ( browser === null ) {
continue;
}
@ -1172,7 +1180,6 @@ var tabWatcher = (function() {
if ( URI.schemeIs('chrome') && URI.host === location.host ) {
vAPI.tabs._remove(tab, getTabBrowser(this));
}
browser = browserFromTarget(tab);
tabId = browserToTabIdMap.get(browser);
if ( tabId !== undefined ) {
removeBrowserEntry(tabId, browser);