tor-browser

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

background-fetch-sw-inner.https.html (1240B)


      1 <!DOCTYPE html>
      2 <script src="/resources/testharness.js"></script>
      3 <script src="/resources/testharnessreport.js"></script>
      4 <script src="utils.js"></script>
      5 <title>Fenced frame content to report the result of background fetch in SW</title>
      6 
      7 <body>
      8  <script type="module">
      9      const [background_fetch_register_key, method] = parseKeylist();
     10 
     11      const getController = () => {
     12        if (navigator.serviceWorker.controller) {
     13          return navigator.serviceWorker.controller;
     14        }
     15        return new Promise(resolve => {
     16          navigator.serviceWorker.addEventListener('controllerchange', () => {
     17            resolve(navigator.serviceWorker.controller);
     18          });
     19        });
     20      };
     21 
     22      const sendMessageToServiceWorker = async () => {
     23        const ctrl = await getController();
     24        return new Promise(resolve => {
     25          ctrl.postMessage(method);
     26          navigator.serviceWorker.onmessage = e => {
     27            resolve(e.data);
     28          }
     29        });
     30      };
     31 
     32      await navigator.serviceWorker.register(
     33        "background-fetch-sw.js", { scope: location.href });
     34      const data = await sendMessageToServiceWorker();
     35 
     36      writeValueToServer(background_fetch_register_key, data);
     37  </script>
     38 </body>