navigation-timing-worker-extended.js (804B)
1 importScripts("/resources/testharness.js"); 2 const timings = {} 3 4 const DELAY_ACTIVATION = 500 5 6 self.addEventListener('activate', event => { 7 event.waitUntil(new Promise(resolve => { 8 timings.activateWorkerStart = performance.now() + performance.timeOrigin; 9 10 // This gives us enough time to ensure activation would delay fetch handling 11 step_timeout(resolve, DELAY_ACTIVATION); 12 }).then(() => timings.activateWorkerEnd = performance.now() + performance.timeOrigin)); 13 }) 14 15 self.addEventListener('fetch', event => { 16 timings.handleFetchEvent = performance.now() + performance.timeOrigin; 17 event.respondWith(Promise.resolve(new Response(new Blob([` 18 <script> 19 parent.postMessage(${JSON.stringify(timings)}, "*") 20 </script> 21 `])))); 22 });