Merge pull request #811 from M-Reimer/master

Thunderbird: Fix closing extension tabs
This commit is contained in:
Raymond Hill 2015-10-11 08:51:53 -04:00
commit 557f6611b5
1 changed files with 13 additions and 3 deletions

View File

@ -818,7 +818,7 @@ vAPI.tabs.replace = function(tabId, url) {
/******************************************************************************/
vAPI.tabs._remove = (function() {
if ( vAPI.fennec ) {
if ( vAPI.fennec || vAPI.thunderbird ) {
return function(tab, tabBrowser) {
tabBrowser.closeTab(tab);
};
@ -972,6 +972,13 @@ var tabWatcher = (function() {
if ( target.browser ) { // target is a tab
target = target.browser;
}
} else if ( vAPI.thunderbird ) {
if ( target.mode ) { // target is object with tab info
var browserFunc = target.mode.getBrowser || target.mode.tabType.getBrowser;
if (browserFunc) {
return browserFunc.call(target.mode.tabType, target);
}
}
} else if ( target.linkedPanel ) { // target is a tab
target = target.linkedBrowser;
}
@ -1143,7 +1150,9 @@ var tabWatcher = (function() {
// To keep in mind: not all windows are tab containers,
// sometimes the window IS the tab.
var tabs;
if ( tabBrowser.tabs ) {
if ( vAPI.thunderbird ) {
tabs = tabBrowser.tabInfo;
} else if ( tabBrowser.tabs ) {
tabs = tabBrowser.tabs;
} else if ( tabBrowser.localName === 'browser' ) {
tabs = [tabBrowser];
@ -1152,7 +1161,8 @@ var tabWatcher = (function() {
}
var browser, URI, tabId;
for ( var tab of tabs ) {
for ( var tabindex = tabs.length - 1; tabindex >= 0; tabindex-- ) {
var tab = tabs[tabindex];
browser = tabWatcher.browserFromTarget(tab);
if ( browser === null ) {
continue;