blob: 557f417dc7afe9ea8686fe1fbd511fdd71d25062 [file] [log] [blame]
<html>
<head>
<script src="resources/sw-test-pre.js"></script>
</head>
<body>
<script>
let initialController = null;
function listenForControllerChange(frame)
{
frame.contentWindow.navigator.serviceWorker.addEventListener("controllerchange", function() {
log("PASS: controllerchange event has been fired");
let newController = frame.contentWindow.navigator.serviceWorker.controller;
if (newController != null && newController != initialController)
log("PASS: controller has been updated");
else
log("FAIL: controller has not been updated");
finishSWTest();
});
}
async function test() {
let scopeURL = "/workers/service/resources/";
let registration = await registerAndWaitForActive("resources/updating-fetch-worker.php", scopeURL);
let frame = await withFrame(scopeURL);
initialController = frame.contentWindow.navigator.serviceWorker.controller;
if (initialController === null) {
log("FAIL: frame does not have a controller");
finishSWTest();
return;
}
log("PASS: frame has a controller");
listenForControllerChange(frame);
registration.update();
}
test();
</script>
</body>
</html>