Bug 1128060: Fix copying permanentKey to a detached tab in e10s mode. r=billm, f=ttaubert

This commit is contained in:
Dave Townsend 2015-03-09 16:19:54 -07:00
parent 356a63426a
commit 8ce2d409ce
4 changed files with 35 additions and 4 deletions

View File

@ -1498,7 +1498,7 @@
aBrowser.setAttribute("remote", aShouldBeRemote ? "true" : "false");
// Tearing down the browser gives a new permanentKey but we want to
// keep the old one. Re-set it explicitly after unbinding from DOM.
aBrowser.permanentKey = permanentKey;
aBrowser._permanentKey = permanentKey;
parent.appendChild(aBrowser);
// Restore the progress listener.

View File

@ -412,6 +412,7 @@ skip-if = buildapp == 'mulet' || e10s
[browser_tabMatchesInAwesomebar.js]
[browser_tabMatchesInAwesomebar_perwindowpb.js]
skip-if = e10s || os == 'linux' # Bug 1093373, bug 1104755
[browser_tab_detach_restore.js]
[browser_tab_drag_drop_perwindow.js]
skip-if = buildapp == 'mulet'
[browser_tab_dragdrop.js]

View File

@ -0,0 +1,31 @@
"use strict";
add_task(function*() {
let uri = "http://example.com/browser/browser/base/content/test/general/dummy_page.html";
// Clear out the closed windows set to start
while (SessionStore.getClosedWindowCount() > 0)
SessionStore.forgetClosedWindow(0);
let tab = gBrowser.addTab();
tab.linkedBrowser.loadURI(uri);
yield BrowserTestUtils.browserLoaded(tab.linkedBrowser);
let key = tab.linkedBrowser.permanentKey;
let win = gBrowser.replaceTabWithWindow(tab);
yield new Promise(resolve => whenDelayedStartupFinished(win, resolve));
is(win.gBrowser.selectedBrowser.permanentKey, key, "Should have properly copied the permanentKey");
yield promiseWindowClosed(win);
is(SessionStore.getClosedWindowCount(), 1, "Should have restore data for the closed window");
win = SessionStore.undoCloseWindow(0);
yield BrowserTestUtils.waitForEvent(win, "load");
yield BrowserTestUtils.waitForEvent(win.gBrowser.tabs[0], "SSTabRestored");
is(win.gBrowser.tabs.length, 1, "Should have restored one tab");
is(win.gBrowser.selectedBrowser.currentURI.spec, uri, "Should have restored the right page");
yield promiseWindowClosed(win);
});

View File

@ -388,9 +388,8 @@
<field name="_permanentKey">({})</field>
<property name="permanentKey"
onget="return this._permanentKey;"
onset="this._permanentKey = val;"/>
<property name="permanentKey" readonly="true"
onget="return this._permanentKey;"/>
<property name="outerWindowID" readonly="true">
<getter><![CDATA[