1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
content / test / data / back_forward_cache / service_worker_post_message.html [blame]
<html>
<title>service worker post message</title>
<script>
let clients;
async function register(worker_url, scope) {
try {
const init = scope ? {scope} : {};
await navigator.serviceWorker.register(worker_url, init);
await navigator.serviceWorker.ready;
return 'DONE';
} catch (error) {
return `${error}`;
}
}
async function executeCommandOnServiceWorker(command) {
const registration = await navigator.serviceWorker.ready;
return new Promise(resolve => {
const channel = new MessageChannel();
channel.port1.onmessage = e => { resolve(e.data); };
registration.active.postMessage({command}, [channel.port2]);
})
}
</script>
</html>