fune/browser/base/content/test/general/browser_bug724239.js
Nika Layzell 42028efc71 Bug 1671983 - Part 4: Stop awaiting BrowserTestUtils.loadURI, r=annyG,remote-protocol-reviewers,extension-reviewers,preferences-reviewers,whimboo,zombie
This method only is async in order to allow callers to wait for a process switch
triggered by the call to `loadURI` to be finished before resolving. With
DocumentChannel, we should never trigger a process switch eagerly like this
again, so we don't need any of the async behaviour here anymore.

This part is largely mechanical changes to tests, removing the `await` calls on
`loadURI`, and a follow-up part will remove the actual async logic from
`BrowserTestUtils.loadURI`.

Differential Revision: https://phabricator.services.mozilla.com/D94641
2020-11-12 18:01:03 +00:00

53 lines
1.7 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
const { TabStateFlusher } = ChromeUtils.import(
"resource:///modules/sessionstore/TabStateFlusher.jsm"
);
add_task(async function test_blank() {
await BrowserTestUtils.withNewTab(
{ gBrowser, url: "about:blank" },
async function(browser) {
BrowserTestUtils.loadURI(browser, "http://example.com");
await BrowserTestUtils.browserLoaded(browser);
ok(!gBrowser.canGoBack, "about:blank wasn't added to session history");
}
);
});
add_task(async function test_newtab() {
await BrowserTestUtils.withNewTab(
{ gBrowser, url: "about:blank" },
async function(browser) {
// Can't load it directly because that'll use a preloaded tab if present.
let stopped = BrowserTestUtils.browserStopped(browser, "about:newtab");
BrowserTestUtils.loadURI(browser, "about:newtab");
await stopped;
stopped = BrowserTestUtils.browserStopped(browser, "http://example.com/");
BrowserTestUtils.loadURI(browser, "http://example.com/");
await stopped;
// This makes sure the parent process has the most up-to-date notion
// of the tab's session history.
await TabStateFlusher.flush(browser);
let tab = gBrowser.getTabForBrowser(browser);
let tabState = JSON.parse(SessionStore.getTabState(tab));
Assert.equal(
tabState.entries.length,
2,
"We should have 2 entries in the session history."
);
Assert.equal(
tabState.entries[0].url,
"about:newtab",
"about:newtab should be the first entry."
);
Assert.ok(gBrowser.canGoBack, "Should be able to browse back.");
}
);
});