forked from mirrors/gecko-dev
With the privileged about content process enabled, we do a process flip when navigating between about:newtab and http://example.com/, which means that we might see the initial about:blank of the new DocShell load after the process flip and interpret that as http://example.com/ loading. This refactoring does two things: 1. Adds more documentation to E10SUtils.shouldLoadURIInBrowser, since it was being used kind of incorrectly in the test. 2. Makes it more explicit that we want http://example.com/ to load, and not any old page (like about:blank). Differential Revision: https://phabricator.services.mozilla.com/D67388 --HG-- extra : moz-landing-system : lando
53 lines
1.7 KiB
JavaScript
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");
|
|
await BrowserTestUtils.loadURI(browser, "about:newtab");
|
|
await stopped;
|
|
|
|
stopped = BrowserTestUtils.browserStopped(browser, "http://example.com/");
|
|
await 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.");
|
|
}
|
|
);
|
|
});
|