<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>ServiceWorkerFencedFrameBrowserTest helper page</title>
<script>
async function RegisterServiceWorker() {
await navigator.serviceWorker.register('fenced_frame_service_worker.js');
return 'ok - service worker registered';
}
async function backgroundFetchFromServiceWorker() {
const controllerChangePromise = new Promise(resolve => {
if (navigator.serviceWorker.controller) {
resolve();
return;
}
navigator.serviceWorker.addEventListener('controllerchange', resolve);
});
const sendMessageToServiceWorker = () => {
const ctrl = navigator.serviceWorker.controller;
return new Promise(resolve => {
ctrl.postMessage({
type: 'fetch',
id: 'bg-feth-id',
resource: [ '/service_worker/hello-from-sw.txt' ],
options: { title: 'Background Fetch' }
});
navigator.serviceWorker.onmessage = e => {
resolve(e.data);
};
});
};
await controllerChangePromise;
const data = await sendMessageToServiceWorker()
return data;
}
</script>
</head>
<body>
</body>
</html>