tor-browser

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

controlled-install-sw.js (772B)


      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 externally from controlled-install.html
     19 // by sending a message event to the worker
     20 let canInstall = false;
     21 self.addEventListener("message", event => {
     22  if (event.data === "install-service-worker") {
     23    canInstall = true;
     24  }
     25 });
     26 
     27 self.addEventListener("install", event => {
     28  event.waitUntil(waitUntil(() => canInstall));
     29 });