reporting-worker.js (460B)
1 function run({script, port}) { 2 const observer = new ReportingObserver((rs) => { 3 for (const r of rs) { 4 port.postMessage(r.toJSON()); 5 } 6 }); 7 observer.observe(); 8 9 // This eval call may generate some reports. 10 eval(script); 11 } 12 13 // For DedicatedWorker and ServiceWorker 14 self.addEventListener('message', (e) => run(e.data)); 15 16 // For SharedWorker 17 self.addEventListener('connect', (e) => { 18 e.ports[0].onmessage = (ev) => run(ev.data); 19 });