forked from CanadaHonk/shadow
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsw.js
26 lines (20 loc) · 914 Bytes
/
sw.js
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
self.addEventListener('install', () => self.skipWaiting());
self.addEventListener('activate', e => e.waitUntil(self.clients.claim()));
const handleFetch = async request => {
const r = await fetch(request.mode === 'no-cors' ? new Request(request, { credentials: 'omit' }) : request).catch(e => console.error(e));
if (r.status === 0) {
return r;
}
const headers = new Headers(r.headers);
headers.set('Cross-Origin-Embedder-Policy', 'credentialless');
headers.set('Cross-Origin-Opener-Policy', 'same-origin');
// headers.set('Cross-Origin-Resource-Policy', 'cross-origin');
return new Response(r.body, { status: r.status, statusText: r.statusText, headers });
};
self.addEventListener('fetch', e => {
const { request } = e;
if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') {
return;
}
e.respondWith(handleFetch(request).catch(e => console.error(e)));
});