Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Errors

"use strict";
const TEST_URI =
getRootDirectory(gTestPath).replace(
) + "dummy_page.html";
const TEST_URI_2 =
getRootDirectory(gTestPath).replace(
) + "file_replace_state_during_navigation.html";
add_setup(async function () {
await SpecialPowers.pushPrefEnv({
set: [["browser.navigation.requireUserInteraction", true]],
});
});
add_task(async () => {
await BrowserTestUtils.withNewTab(TEST_URI, async browser => {
// Add user interaction to the first page.
await BrowserTestUtils.synthesizeMouseAtCenter("body", {}, browser);
// Follow link to the next page.
await followLink(TEST_URI_2);
// Navigate, causing a hashchange event to fire and call history.replaceState
let loaded = BrowserTestUtils.waitForLocationChange(
gBrowser,
TEST_URI_2 + "#1"
);
await BrowserTestUtils.synthesizeMouseAtCenter("#link", {}, browser);
await loaded;
await assertMenulist([TEST_URI_2 + "#1", TEST_URI_2, TEST_URI]);
});
});