create-blob-url-worker.js (657B)
1 const childWorkerScript = ` 2 self.onmessage = async (e) => { 3 const response = await fetch(e.data); 4 const text = await response.text(); 5 self.postMessage(text); 6 }; 7 `; 8 const blob = new Blob([childWorkerScript], { type: 'text/javascript' }); 9 const blobUrl = URL.createObjectURL(blob); 10 const childWorker = new Worker(blobUrl); 11 12 // When a message comes from the parent frame, sends a resource url to the child 13 // worker. 14 self.onmessage = (e) => { 15 childWorker.postMessage(e.data); 16 }; 17 18 // When a message comes from the child worker, sends a content of fetch() to the 19 // parent frame. 20 childWorker.onmessage = (e) => { 21 self.postMessage(e.data); 22 };