Source code

Revision control

Copy as Markdown

Other Tools

<!DOCTYPE html>
<meta charset="utf-8"/>
<script>
async function onLoad() {
const params = new URLSearchParams(self.location.search);
const scope = self.origin + params.get('scopepath');
const script = './fetch-rewrite-worker.js';
const reg = await navigator.serviceWorker.register(script, { scope: scope });
// In nested cases we may be impacted by partitioning or not depending on
// the browser. With partitioning we will be installing a new worker here,
// but without partitioning the worker will already exist. Handle both cases.
if (reg.installing) {
await new Promise(resolve => {
const worker = reg.installing;
worker.addEventListener('statechange', evt => {
if (worker.state === 'activated') {
resolve();
}
});
});
if (reg.navigationPreload) {
await reg.navigationPreload.enable();
}
}
if (window.opener) {
window.opener.postMessage({ type: 'SW-REGISTERED' }, '*');
} else {
window.top.postMessage({ type: 'SW-REGISTERED' }, '*');
}
}
self.addEventListener('load', onLoad);
</script>