mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-28 23:31:56 +00:00
aff6666c68
Depends on D160827 Differential Revision: https://phabricator.services.mozilla.com/D160828
88 lines
2.8 KiB
JavaScript
88 lines
2.8 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
var gTestRoot = getRootDirectory(gTestPath).replace(
|
|
"chrome://mochitests/content/",
|
|
"http://mochi.test:8888/"
|
|
);
|
|
|
|
async function refresh() {
|
|
EventUtils.synthesizeKey("R", { accelKey: true });
|
|
}
|
|
|
|
async function forceRefresh() {
|
|
EventUtils.synthesizeKey("R", { accelKey: true, shiftKey: true });
|
|
}
|
|
|
|
async function done() {
|
|
// unregister window actors
|
|
ChromeUtils.unregisterWindowActor("ForceRefresh");
|
|
let tab = gBrowser.selectedTab;
|
|
let tabBrowser = gBrowser.getBrowserForTab(tab);
|
|
await ContentTask.spawn(tabBrowser, null, async function() {
|
|
const swr = await content.navigator.serviceWorker.getRegistration();
|
|
await swr.unregister();
|
|
});
|
|
|
|
BrowserTestUtils.removeTab(tab);
|
|
executeSoon(finish);
|
|
}
|
|
|
|
function test() {
|
|
waitForExplicitFinish();
|
|
SpecialPowers.pushPrefEnv(
|
|
{
|
|
set: [
|
|
["dom.serviceWorkers.enabled", true],
|
|
["dom.serviceWorkers.exemptFromPerDomainMax", true],
|
|
["dom.serviceWorkers.testing.enabled", true],
|
|
["dom.caches.enabled", true],
|
|
["browser.cache.disk.enable", false],
|
|
["browser.cache.memory.enable", false],
|
|
],
|
|
},
|
|
async function() {
|
|
// create ForceRefreseh window actor
|
|
const { ForceRefreshParent } = ChromeUtils.importESModule(
|
|
getRootDirectory(gTestPath) + "ForceRefreshParent.sys.mjs"
|
|
);
|
|
|
|
// setup helper functions for ForceRefreshParent
|
|
ForceRefreshParent.SimpleTest = SimpleTest;
|
|
ForceRefreshParent.refresh = refresh;
|
|
ForceRefreshParent.forceRefresh = forceRefresh;
|
|
ForceRefreshParent.done = done;
|
|
|
|
// setup window actor options
|
|
let windowActorOptions = {
|
|
parent: {
|
|
esModuleURI:
|
|
getRootDirectory(gTestPath) + "ForceRefreshParent.sys.mjs",
|
|
},
|
|
child: {
|
|
esModuleURI:
|
|
getRootDirectory(gTestPath) + "ForceRefreshChild.sys.mjs",
|
|
events: {
|
|
"base-register": { capture: true, wantUntrusted: true },
|
|
"base-sw-ready": { capture: true, wantUntrusted: true },
|
|
"base-load": { capture: true, wantUntrusted: true },
|
|
"cached-load": { capture: true, wantUntrusted: true },
|
|
"cached-failure": { capture: true, wantUntrusted: true },
|
|
},
|
|
},
|
|
allFrames: true,
|
|
};
|
|
|
|
// register ForceRefresh window actors
|
|
ChromeUtils.registerWindowActor("ForceRefresh", windowActorOptions);
|
|
|
|
// create a new tab and load test url
|
|
var url = gTestRoot + "browser_base_force_refresh.html";
|
|
var tab = BrowserTestUtils.addTab(gBrowser);
|
|
var tabBrowser = gBrowser.getBrowserForTab(tab);
|
|
gBrowser.selectedTab = tab;
|
|
BrowserTestUtils.loadURI(gBrowser, url);
|
|
}
|
|
);
|
|
}
|