@@ -29,6 +29,7 @@ namespace $ {
2929 self . addEventListener ( 'fetch' , ( event : any ) => {
3030
3131 const request = event . request as Request
32+ // console.log( 'FETCH', request.mode, request.cache, request.url )
3233
3334 if ( blacklist . has ( request . url . replace ( / ^ h t t p s ? : / , '' ) ) ) {
3435 return event . respondWith (
@@ -47,20 +48,9 @@ namespace $ {
4748 if ( / \? / . test ( request . url ) ) return
4849 if ( request . cache === 'no-store' ) return
4950
50- const fetch_data = ( ) => fetch ( request ) . then ( response => {
51+ const fetch_data = ( ) => fetch ( new Request ( request , { credentials : 'omit' } ) ) . then ( response => {
5152 if ( response . status !== 200 ) return response
5253
53- const headers = new Headers ( response . headers )
54- headers . set ( "Cross-Origin-Embedder-Policy" , "require-corp" )
55- headers . set ( "Cross-Origin-Opener-Policy" , "same-origin" )
56- headers . set ( "$mol_offline" , "" )
57-
58- response = new Response ( response . body , {
59- status : response . status ,
60- statusText : response . statusText ,
61- headers,
62- } ) ;
63-
6454 event . waitUntil (
6555 caches . open ( '$mol_offline' ) . then (
6656 cache => cache . put ( request , response )
@@ -70,9 +60,28 @@ namespace $ {
7060 return response . clone ( )
7161 } )
7262
63+ const enrich = ( response : Response ) => {
64+
65+ // console.log( 'ENRICH', response.status, response.url )
66+ if ( ! response . status ) return response
67+
68+ const headers = new Headers ( response . headers )
69+ headers . set ( "$mol_offline" , "" )
70+ headers . set ( "Cross-Origin-Embedder-Policy" , "credentialless" )
71+ headers . set ( "Cross-Origin-Resource-Policy" , "cross-origin" )
72+ headers . set ( "Cross-Origin-Opener-Policy" , "same-origin" )
73+
74+ return new Response ( response . body , {
75+ status : response . status ,
76+ statusText : response . statusText ,
77+ headers,
78+ } ) ;
79+
80+ }
81+
7382 const fresh = request . cache === 'force-cache' ? null : fetch_data ( )
7483
75- if ( fresh ) event . waitUntil ( fresh )
84+ if ( fresh ) event . waitUntil ( fresh . then ( enrich ) )
7685
7786 event . respondWith (
7887 caches . match ( request ) . then (
@@ -92,10 +101,10 @@ namespace $ {
92101 cloned . headers . set ( '$mol_offline_remote_status' , message )
93102 return cloned
94103 } )
95- : fresh
104+ : fresh !
96105 )
97106 : ( cached || fresh || fetch_data ( ) )
98- )
107+ ) . then ( enrich )
99108 )
100109
101110 } )
0 commit comments