|
| 1 | +/*! coi-serviceworker v0.1.7 - Guido Zuidhof and contributors, licensed under MIT */ |
| 2 | +/*! mini-coi - Andrea Giammarchi and contributors, licensed under MIT */ |
| 3 | +(({ document: d, navigator: { serviceWorker: s } }) => { |
| 4 | + if (d) { |
| 5 | + const { currentScript: c } = d; |
| 6 | + s.register(c.src, { scope: c.getAttribute('scope') || '.' }).then(r => { |
| 7 | + r.addEventListener('updatefound', () => location.reload()); |
| 8 | + if (r.active && !s.controller) location.reload(); |
| 9 | + }); |
| 10 | + } |
| 11 | + else { |
| 12 | + addEventListener('install', () => skipWaiting()); |
| 13 | + addEventListener('activate', e => e.waitUntil(clients.claim())); |
| 14 | + addEventListener('fetch', e => { |
| 15 | + const { request: r } = e; |
| 16 | + if (r.cache === 'only-if-cached' && r.mode !== 'same-origin') return; |
| 17 | + e.respondWith(fetch(r).then(r => { |
| 18 | + const { body, status, statusText } = r; |
| 19 | + if (!status || status > 399) return r; |
| 20 | + const h = new Headers(r.headers); |
| 21 | + h.set('Cross-Origin-Opener-Policy', 'same-origin'); |
| 22 | + h.set('Cross-Origin-Embedder-Policy', 'require-corp'); |
| 23 | + h.set('Cross-Origin-Resource-Policy', 'cross-origin'); |
| 24 | + return new Response(body, { status, statusText, headers: h }); |
| 25 | + })); |
| 26 | + }); |
| 27 | + } |
| 28 | +})(self); |
0 commit comments