mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 602708 - Closing a tab earlier than the current one results in wrong tab being shown [r=mfinkle]
This commit is contained in:
parent
9624ba3f9a
commit
1f01c9107d
@ -610,10 +610,10 @@ var Browser = {
|
||||
tab.chromeTab.dispatchEvent(event);
|
||||
tab.browser.messageManager.sendAsyncMessage("Browser:TabClose");
|
||||
|
||||
this.selectedTab = nextTab;
|
||||
|
||||
tab.destroy();
|
||||
this._tabs.splice(tabIndex, 1);
|
||||
|
||||
this.selectedTab = nextTab;
|
||||
},
|
||||
|
||||
get selectedTab() {
|
||||
@ -624,9 +624,16 @@ var Browser = {
|
||||
if (tab instanceof XULElement)
|
||||
tab = this.getTabFromChrome(tab);
|
||||
|
||||
if (!tab || this._selectedTab == tab)
|
||||
if (!tab)
|
||||
return;
|
||||
|
||||
if (this._selectedTab == tab) {
|
||||
// Deck does not update its selectedIndex when children
|
||||
// are removed. See bug 602708
|
||||
Elements.browsers.selectedPanel = tab.browser;
|
||||
return;
|
||||
}
|
||||
|
||||
TapHighlightHelper.hide();
|
||||
|
||||
if (this._selectedTab) {
|
||||
@ -2550,9 +2557,7 @@ Tab.prototype = {
|
||||
this._listener = null;
|
||||
this._loading = false;
|
||||
|
||||
Util.executeSoon(function() {
|
||||
Elements.browsers.removeChild(browser);
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -41,18 +41,22 @@ function load_tabs() {
|
||||
function tab_switch_01() {
|
||||
BrowserUI.selectTab(new_tab_01);
|
||||
is(Browser.selectedTab.browser.currentURI.spec, testURL_01, "Tab Switch 01 URL Matches");
|
||||
is(Browser.selectedTab.browser, Elements.browsers.selectedPanel, "Deck has correct browser");
|
||||
|
||||
//Add new tab
|
||||
new_tab_02 = Browser.addTab(testURL_02,false);
|
||||
new_tab_02.browser.addEventListener("load", tab_switch_02, true);
|
||||
is(Browser.selectedTab.browser, Elements.browsers.selectedPanel, "Deck has correct browser");
|
||||
}
|
||||
|
||||
function tab_switch_02() {
|
||||
BrowserUI.selectTab(new_tab_02);
|
||||
is(Browser.selectedTab.browser.currentURI.spec, testURL_02, "Tab Switch 02 URL Matches");
|
||||
is(Browser.selectedTab.browser, Elements.browsers.selectedPanel, "Deck has correct browser");
|
||||
|
||||
BrowserUI.selectTab(new_tab_01);
|
||||
is(Browser.selectedTab.browser.currentURI.spec, testURL_01, "Tab Switch 01 URL Matches");
|
||||
is(Browser.selectedTab.browser, Elements.browsers.selectedPanel, "Deck has correct browser");
|
||||
|
||||
//Add new tab
|
||||
new_tab_03 = Browser.addTab(testURL_03, true, new_tab_01);
|
||||
@ -62,9 +66,25 @@ function tab_switch_02() {
|
||||
function tab_switch_03() {
|
||||
is(Browser.selectedTab.browser.currentURI.spec, testURL_03, "Tab Switch 03 URL Matches");
|
||||
is(new_tab_03.owner, new_tab_01, "Tab 03 owned by tab 01");
|
||||
is(Browser.selectedTab.browser, Elements.browsers.selectedPanel, "Deck has correct browser");
|
||||
|
||||
Browser.closeTab(new_tab_03);
|
||||
is(Browser.selectedTab, new_tab_01, "Closing tab 03 returns to owner");
|
||||
is(Browser.selectedTab.browser, Elements.browsers.selectedPanel, "Deck has correct browser");
|
||||
|
||||
new_tab_03 = Browser.addTab(testURL_03, true, new_tab_01);
|
||||
new_tab_03.browser.addEventListener("load", tab_switch_04, true);
|
||||
}
|
||||
|
||||
function tab_switch_04() {
|
||||
is(Browser.selectedTab.browser.currentURI.spec, testURL_03, "Tab Switch 03 URL Matches");
|
||||
is(new_tab_03.owner, new_tab_01, "Tab 03 owned by tab 01");
|
||||
is(Browser.selectedTab.browser, Elements.browsers.selectedPanel, "Deck has correct browser");
|
||||
|
||||
Browser.closeTab(new_tab_01);
|
||||
is(Browser.selectedTab, new_tab_03, "Closing tab 01 keeps selectedTab");
|
||||
is(new_tab_03.owner, null, "Closing tab 01 nulls tab3 owner");
|
||||
is(Browser.selectedTab.browser, Elements.browsers.selectedPanel, "Deck has correct browser");
|
||||
|
||||
done();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user