tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

client-url-of-blob-url-worker.html (795B)


      1 <!DOCTYPE html>
      2 <html>
      3 <script>
      4 
      5 // Return a URL of a client when it's successful.
      6 function createAndFetchFromBlobWorker() {
      7  const fetchURL = new URL('get-worker-client-url.txt', window.location).href;
      8  const workerScript =
      9    `self.onmessage = async (e) => {
     10      const response = await fetch(e.data.url);
     11      const text = await response.text();
     12      self.postMessage({"result": text, "expected": self.location.href});
     13    };`;
     14  const blob = new Blob([workerScript], { type: 'text/javascript' });
     15  const blobUrl = URL.createObjectURL(blob);
     16 
     17  const worker = new Worker(blobUrl);
     18  return new Promise((resolve, reject) => {
     19    worker.onmessage = e => resolve(e.data);
     20    worker.onerror = e => reject(e.message);
     21    worker.postMessage({"url": fetchURL});
     22  });
     23 }
     24 
     25 </script>
     26 </html>