73 lines
2.3 KiB
JavaScript
73 lines
2.3 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
add_task(async function() {
|
|
// (1) Load one page with bfcache disabled and another one with bfcache enabled.
|
|
// (2) Check that BrowsingContext.getCurrentTopByBrowserId(browserId) returns
|
|
// the expected browsing context both in the parent process and in the child process.
|
|
// (3) Go back and then forward
|
|
// (4) Run the same checks as in step 2 again.
|
|
|
|
let url1 = "data:text/html,<body onunload='/* disable bfcache */'>";
|
|
let url2 = "data:text/html,page2";
|
|
await BrowserTestUtils.withNewTab(
|
|
{
|
|
gBrowser,
|
|
url: url1,
|
|
},
|
|
async function(browser) {
|
|
info("Initial load");
|
|
|
|
let loaded = BrowserTestUtils.browserLoaded(browser);
|
|
BrowserTestUtils.loadURI(browser, url2);
|
|
await loaded;
|
|
info("Second page loaded");
|
|
|
|
let browserId = browser.browserId;
|
|
ok(!!browser.browsingContext, "Should have a BrowsingContext. (1)");
|
|
is(
|
|
BrowsingContext.getCurrentTopByBrowserId(browserId),
|
|
browser.browsingContext,
|
|
"Should get the correct browsingContext(1)"
|
|
);
|
|
|
|
await ContentTask.spawn(browser, browserId, async function(browserId) {
|
|
Assert.ok(
|
|
BrowsingContext.getCurrentTopByBrowserId(browserId) ==
|
|
docShell.browsingContext
|
|
);
|
|
Assert.ok(docShell.browsingContext.browserId == browserId);
|
|
});
|
|
|
|
let awaitPageShow = BrowserTestUtils.waitForContentEvent(
|
|
browser,
|
|
"pageshow"
|
|
);
|
|
browser.goBack();
|
|
await awaitPageShow;
|
|
info("Back");
|
|
|
|
awaitPageShow = BrowserTestUtils.waitForContentEvent(browser, "pageshow");
|
|
browser.goForward();
|
|
await awaitPageShow;
|
|
info("Forward");
|
|
|
|
ok(!!browser.browsingContext, "Should have a BrowsingContext. (2)");
|
|
is(
|
|
BrowsingContext.getCurrentTopByBrowserId(browserId),
|
|
browser.browsingContext,
|
|
"Should get the correct BrowsingContext. (2)"
|
|
);
|
|
|
|
await ContentTask.spawn(browser, browserId, async function(browserId) {
|
|
Assert.ok(
|
|
BrowsingContext.getCurrentTopByBrowserId(browserId) ==
|
|
docShell.browsingContext
|
|
);
|
|
Assert.ok(docShell.browsingContext.browserId == browserId);
|
|
});
|
|
}
|
|
);
|
|
});
|