tor-browser

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

iframe_with_service_worker.html (912B)


      1 <!DOCTYPE html>
      2 <meta charset="utf-8">
      3 
      4 Iframe loading a stylesheet via a service worker
      5 <script>
      6 "use strict";
      7 
      8 function waitForActive(swr) {
      9  const sw = swr.installing || swr.waiting || swr.active;
     10  return new Promise(resolve => {
     11    if (sw.state === "activated") {
     12      resolve(swr);
     13      return;
     14    }
     15    sw.addEventListener("statechange", function onStateChange() {
     16      if (sw.state === "activated") {
     17        sw.removeEventListener("statechange", onStateChange);
     18        resolve(swr);
     19      }
     20    });
     21  });
     22 }
     23 
     24 navigator.serviceWorker.register("iframe_service_worker.js", {scope: "."})
     25  .then(registration => waitForActive(registration))
     26  .then(() => {
     27    const link = document.createElement("link");
     28    link.setAttribute("rel", "stylesheet");
     29    link.setAttribute("type", "text/css");
     30    link.setAttribute("href", "sheet.css");
     31    document.documentElement.appendChild(link);
     32  });
     33 </script>