diff --git a/toolkit/components/remotebrowserutils/tests/browser/browser_RemoteWebNavigation.js b/toolkit/components/remotebrowserutils/tests/browser/browser_RemoteWebNavigation.js index 2019bdcd4cb4..5719030570f5 100644 --- a/toolkit/components/remotebrowserutils/tests/browser/browser_RemoteWebNavigation.js +++ b/toolkit/components/remotebrowserutils/tests/browser/browser_RemoteWebNavigation.js @@ -1,22 +1,14 @@ -var { interfaces: Ci, classes: Cc, utils: Cu, results: Cr } = Components; +/* eslint-env mozilla/frame-script */ const DUMMY1 = "http://example.com/browser/toolkit/modules/tests/browser/dummy_page.html"; const DUMMY2 = "http://example.org/browser/toolkit/modules/tests/browser/dummy_page.html" function waitForLoad(browser = gBrowser.selectedBrowser) { - return new Promise(resolve => { - browser.addEventListener("load", function() { - resolve(); - }, {capture: true, once: true}); - }); + return BrowserTestUtils.browserLoaded(browser); } function waitForPageShow(browser = gBrowser.selectedBrowser) { - return new Promise(resolve => { - browser.addEventListener("pageshow", function() { - resolve(); - }, {capture: true, once: true}); - }); + return BrowserTestUtils.waitForContentEvent(browser, "pageshow", true); } function makeURI(url) { @@ -35,14 +27,24 @@ add_task(function* test_referrer() { makeURI(DUMMY2), null, null); yield waitForLoad(); - is(browser.contentWindow.location, DUMMY1, "Should have loaded the right URL"); - is(browser.contentDocument.referrer, DUMMY2, "Should have the right referrer"); + + yield ContentTask.spawn(browser, [ DUMMY1, DUMMY2 ], function([dummy1, dummy2]) { + is(content.location, dummy1, "Should have loaded the right URL"); + is(content.document.referrer, dummy2, "Should have the right referrer"); + }); gBrowser.removeCurrentTab(); }); // Tests that remote access to webnavigation.sessionHistory works. add_task(function* test_history() { + function checkHistoryIndex(browser, n) { + return ContentTask.spawn(browser, n, function(n) { + let history = docShell.QueryInterface(Ci.nsIInterfaceRequestor) + .getInterface(Ci.nsISHistory); + is(history.index, n, "Should be at the right place in history"); + }); + } gBrowser.selectedTab = gBrowser.addTab(); let browser = gBrowser.selectedBrowser; @@ -56,34 +58,49 @@ add_task(function* test_history() { null, null, null); yield waitForLoad(); - let history = browser.webNavigation.sessionHistory; - is(history.count, 2, "Should be two history items"); - is(history.index, 1, "Should be at the right place in history"); - let entry = history.getEntryAtIndex(0, false); - is(entry.URI.spec, DUMMY1, "Should have the right history entry"); - entry = history.getEntryAtIndex(1, false); - is(entry.URI.spec, DUMMY2, "Should have the right history entry"); + yield ContentTask.spawn(browser, [DUMMY1, DUMMY2], function([dummy1, dummy2]) { + let history = docShell.QueryInterface(Ci.nsIInterfaceRequestor) + .getInterface(Ci.nsISHistory); + is(history.count, 2, "Should be two history items"); + is(history.index, 1, "Should be at the right place in history"); + let entry = history.getEntryAtIndex(0, false); + is(entry.URI.spec, dummy1, "Should have the right history entry"); + entry = history.getEntryAtIndex(1, false); + is(entry.URI.spec, dummy2, "Should have the right history entry"); + }); let promise = waitForPageShow(); browser.webNavigation.goBack(); yield promise; - is(history.index, 0, "Should be at the right place in history"); + yield checkHistoryIndex(browser, 0); promise = waitForPageShow(); browser.webNavigation.goForward(); yield promise; - is(history.index, 1, "Should be at the right place in history"); + yield checkHistoryIndex(browser, 1); promise = waitForPageShow(); browser.webNavigation.gotoIndex(0); yield promise; - is(history.index, 0, "Should be at the right place in history"); + yield checkHistoryIndex(browser, 0); gBrowser.removeCurrentTab(); }); // Tests that load flags are passed through to the content process. add_task(function* test_flags() { + function checkHistory(browser, { count, index }) { + return ContentTask.spawn(browser, [ DUMMY2, count, index ], + function([ dummy2, count, index ]) { + let history = docShell.QueryInterface(Ci.nsIInterfaceRequestor) + .getInterface(Ci.nsISHistory); + is(history.count, count, "Should be one history item"); + is(history.index, index, "Should be at the right place in history"); + let entry = history.getEntryAtIndex(index, false); + is(entry.URI.spec, dummy2, "Should have the right history entry"); + }); + } + gBrowser.selectedTab = gBrowser.addTab(); let browser = gBrowser.selectedBrowser; @@ -96,22 +113,13 @@ add_task(function* test_flags() { Ci.nsIWebNavigation.LOAD_FLAGS_REPLACE_HISTORY, null, null, null); yield waitForLoad(); - - let history = browser.webNavigation.sessionHistory; - is(history.count, 1, "Should be one history item"); - is(history.index, 0, "Should be at the right place in history"); - let entry = history.getEntryAtIndex(0, false); - is(entry.URI.spec, DUMMY2, "Should have the right history entry"); + yield checkHistory(browser, { count: 1, index: 0 }); browser.webNavigation.loadURI(DUMMY1, Ci.nsIWebNavigation.LOAD_FLAGS_BYPASS_HISTORY, null, null, null); yield waitForLoad(); - - is(history.count, 1, "Should still be one history item"); - is(history.index, 0, "Should be at the right place in history"); - entry = history.getEntryAtIndex(0, false); - is(entry.URI.spec, DUMMY2, "Should have the right history entry"); + yield checkHistory(browser, { count: 1, index: 0 }); gBrowser.removeCurrentTab(); });