self.addEventListener('install', event => { // Activate immediately to simplify the test. event.waitUntil(self.skipWaiting()); }); self.addEventListener('activate', event => { // Make sure the very next navigation is controlled by this SW. event.waitUntil(self.clients.claim()); }); self.addEventListener('fetch', event => { // Only handle top-level navigations within our scope. if (event.request.mode === 'navigate') { const html = ` SW Intercepted Page

SW-synthesized page

This page was served by a Service Worker via respondWith().

`; event.respondWith(new Response(html, { headers: { 'Content-Type': 'text/html; charset=utf-8' } })); } // Otherwise, fall through to network. });