Bug 1313665 - Wait for Content:LocationChange before verify. r=smaug
MozReview-Commit-ID: 2Sb24FCGG1o
--- a/dom/base/test/chrome/window_groupedSHistory.xul
+++ b/dom/base/test/chrome/window_groupedSHistory.xul
@@ -263,16 +263,22 @@ https://bugzilla.mozilla.org/show_bug.cg
let promises = [];
let pagehide1, pagehide2;
// For swapping there should be a pagehide followed by a pageshow.
promises.push(BrowserTestUtils.waitForMessage(b1.messageManager, 'test:pagehide', msg => pagehide1 = true));
promises.push(BrowserTestUtils.waitForMessage(b2.messageManager, 'test:pagehide', msg => pagehide2 = true));
promises.push(BrowserTestUtils.waitForMessage(b1.messageManager, 'test:pageshow', msg => pagehide1));
promises.push(BrowserTestUtils.waitForMessage(b2.messageManager, 'test:pageshow', msg => pagehide2));
+
+ // For swapping remote browsers, we'll also receive Content:LocationChange
+ if (b1.isRemoteBrowser) {
+ promises.push(BrowserTestUtils.waitForMessage(b1.messageManager, 'Content:LocationChange'));
+ }
+
promises.push(Promise.resolve().then(() => {
let f1 = b1.QueryInterface(Components.interfaces.nsIFrameLoaderOwner).frameLoader;
let f2 = b2.QueryInterface(Components.interfaces.nsIFrameLoaderOwner).frameLoader;
f1.appendPartialSessionHistoryAndSwap(f2);
}));
return Promise.all(promises);
}
@@ -281,16 +287,22 @@ https://bugzilla.mozilla.org/show_bug.cg
let promises = [];
let pagehide = false;
let pageshowCount = 0;
if (expectSwap) {
// For swapping there should be a pagehide followed by a pageshow.
promises.push(BrowserTestUtils.waitForMessage(browser.messageManager,
'test:pagehide', msg => pagehide = true));
+
+ // For swapping remote browsers, we'll also receive Content:LocationChange
+ if (browser.isRemoteBrowser) {
+ promises.push(BrowserTestUtils.waitForMessage(browser.messageManager,
+ 'Content:LocationChange'));
+ }
}
promises.push(BrowserTestUtils.waitForMessage(browser.messageManager,
'test:pageshow', msg => {
// Only count events after pagehide for swapping case.
if (!expectSwap || pagehide) {
return !--expectPageshowCount;
}
return false;