tor-browser

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

controlled-sw.worker.js (1081B)


      1 /* Any copyright is dedicated to the Public Domain.
      2   http://creativecommons.org/publicdomain/zero/1.0/ */
      3 
      4 "use strict";
      5 
      6 // Copied from shared-head.js
      7 function waitUntil(predicate, interval = 10) {
      8  if (predicate()) {
      9    return Promise.resolve(true);
     10  }
     11  return new Promise(resolve => {
     12    setTimeout(function () {
     13      waitUntil(predicate, interval).then(() => resolve(true));
     14    }, interval);
     15  });
     16 }
     17 
     18 // This flag will be flipped from controlled-sw.html::installServiceWorker()
     19 let canInstall = false;
     20 self.addEventListener("message", function (event) {
     21  if (event.data === "install-service-worker") {
     22    canInstall = true;
     23  }
     24  if (event.data === "install-service-worker-and-pause") {
     25    canInstall = true;
     26    // eslint-disable-next-line no-debugger
     27    debugger;
     28  }
     29 });
     30 
     31 // Wait for the canInstall flag to be flipped before completing the install.
     32 self.addEventListener("install", function (event) {
     33  event.waitUntil(waitUntil(() => canInstall));
     34  // Log an early message to check cached log messages in tests.
     35  console.log("service worker installed");
     36 });