gecko-dev/docshell/test/browser/browser_bug1347823.js
Kris Maglione 94e3b0bd8d Bug 1596918: Part 3a - Scripted rewrite of most ContentTask.spawn calls to SpecialPowers.spawn calls. r=mccr8,remote-protocol-reviewers,ato
This is generally pretty straightforward, and rewrites nearly all calls. It
skips the ones that it can detect using frame script globals like
`sendAsyncMessage`, though.

Differential Revision: https://phabricator.services.mozilla.com/D53740

--HG--
extra : moz-landing-system : lando
2019-12-13 20:36:16 +00:00

77 lines
2.3 KiB
JavaScript

/**
* Test that session history's expiration tracker would remove bfcache on
* expiration.
*/
// With bfcache not expired.
add_task(async function testValidCache() {
// Make an unrealistic large timeout.
await SpecialPowers.pushPrefEnv({
set: [["browser.sessionhistory.contentViewerTimeout", 86400]],
});
await BrowserTestUtils.withNewTab(
{ gBrowser, url: "data:text/html;charset=utf-8,page1" },
async function(browser) {
// Make a simple modification for bfcache testing.
await SpecialPowers.spawn(browser, [], () => {
content.document.body.textContent = "modified";
});
// Load a random page.
BrowserTestUtils.loadURI(browser, "data:text/html;charset=utf-8,page2");
await BrowserTestUtils.browserLoaded(browser);
// Go back and verify text content.
let awaitPageShow = BrowserTestUtils.waitForContentEvent(
browser,
"pageshow"
);
browser.goBack();
await awaitPageShow;
await SpecialPowers.spawn(browser, [], () => {
is(content.document.body.textContent, "modified");
});
}
);
});
// With bfcache expired.
add_task(async function testExpiredCache() {
// Make bfcache timeout in 1 sec.
await SpecialPowers.pushPrefEnv({
set: [["browser.sessionhistory.contentViewerTimeout", 1]],
});
await BrowserTestUtils.withNewTab(
{ gBrowser, url: "data:text/html;charset=utf-8,page1" },
async function(browser) {
// Make a simple modification for bfcache testing.
await SpecialPowers.spawn(browser, [], () => {
content.document.body.textContent = "modified";
});
// Load a random page.
BrowserTestUtils.loadURI(browser, "data:text/html;charset=utf-8,page2");
await BrowserTestUtils.browserLoaded(browser);
// Wait for 3 times of expiration timeout, hopefully it's evicted...
await SpecialPowers.spawn(browser, [], () => {
return new Promise(resolve => {
content.setTimeout(resolve, 3000);
});
});
// Go back and verify text content.
let awaitPageShow = BrowserTestUtils.waitForContentEvent(
browser,
"pageshow"
);
browser.goBack();
await awaitPageShow;
await SpecialPowers.spawn(browser, [], () => {
is(content.document.body.textContent, "page1");
});
}
);
});