gecko-dev/dom/serviceworkers/test/test_bug1408734.html
Perry Jiang df5283bd56 Bug 1557244 - Remove waitForControlled(win) testing utility r=asuth
`postMessage('claim')` followed by `waitForControlled(win)` was used instead of
calling `clients.claim()` in a Service Worker's `activate` event handler; this
invocation of the event handler was not reliable due to resurrection
(resurrected active workers won't receive an `activate` event). This is no
longer necessary with resurrection removed.

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

--HG--
extra : moz-landing-system : lando
2019-07-26 18:40:12 +00:00

53 lines
1.6 KiB
HTML

<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1408734</title>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
<script src="/tests/SimpleTest/SimpleTest.js"></script>
<script src="error_reporting_helpers.js"></script>
<script src="utils.js"></script>
</head>
<body>
<p id="display"></p>
<div id="content" style="display: none"></div>
<pre id="test"></pre>
<script class="testbody" type="text/javascript">
// setup prefs
add_task(() => {
return SpecialPowers.pushPrefEnv({"set": [
["dom.serviceWorkers.enabled", true],
["dom.serviceWorkers.testing.enabled", true],
]});
});
// test for bug 1408734
add_task(async () => {
// register a service worker
let registration = await navigator.serviceWorker.register("fetch.js",
{scope: "./"});
// wait for service worker be activated
await waitForState(registration.installing, "activated");
// get the ServiceWorkerRegistration we just register through GetRegistration
registration = await navigator.serviceWorker.getRegistration("./");
ok(registration, "should get the registration under scope './'");
// call unregister()
await registration.unregister();
// access registration.updateViaCache to trigger the bug
// we really care that we don't crash. In the future we will fix
is(registration.updateViaCache, "imports",
"registration.updateViaCache should work after unregister()");
});
</script>
</pre>
</body>
</html>