tor-browser

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

register-service-worker.html (1432B)


      1 <!DOCTYPE html>
      2 <script src="/resources/testharness.js"></script>
      3 <script src="/resources/testharnessreport.js"></script>
      4 <script src="/service-workers/service-worker/resources/test-helpers.sub.js"></script>
      5 <script src="/speculation-rules/prerender/resources/utils.js"></script>
      6 <script src="/speculation-rules/prerender/resources/deferred-promise-utils.js"></script>
      7 <body>
      8 <script>
      9 const params = new URLSearchParams(location.search);
     10 const uid = params.get('uid');
     11 
     12 const SCOPE = './';
     13 const WORKER_URL = './do-nothing-worker.js';
     14 
     15 async function unregisterServiceWorker(scope) {
     16  const registration = await navigator.serviceWorker.getRegistration(scope);
     17  if (!registration)
     18    return;
     19  return registration.unregister();
     20 }
     21 
     22 // The main test page (register-service-worker.https.html) loads the
     23 // initiator page, then the initiator page will prerender itself with the
     24 // `prerendering` parameter.
     25 const isPrerendering = params.has('prerendering');
     26 
     27 if (!isPrerendering) {
     28  unregisterServiceWorker(SCOPE);
     29  loadInitiatorPage();
     30 } else {
     31  const prerenderEventCollector = new PrerenderEventCollector();
     32  const promise = navigator.serviceWorker.register(WORKER_URL, {scope: SCOPE})
     33      .then(registration => {
     34        prerenderEventCollector.addEvent('service worker registered');
     35        return registration.unregister();
     36      });
     37  prerenderEventCollector.start(promise, 'ServiceWorker.register');
     38 }
     39 
     40 </script>
     41 </body>