tor-browser

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

intercepted-referrer-sw.js (1124B)


      1 self.addEventListener('install', event => {
      2  // Activate immediately to simplify the test.
      3  event.waitUntil(self.skipWaiting());
      4 });
      5 
      6 self.addEventListener('activate', event => {
      7  // Make sure the very next navigation is controlled by this SW.
      8  event.waitUntil(self.clients.claim());
      9 });
     10 
     11 self.addEventListener('fetch', event => {
     12  // Only handle top-level navigations within our scope.
     13  if (event.request.mode === 'navigate') {
     14    const html = `<!doctype html>
     15      <meta charset="utf-8">
     16      <title>SW Intercepted Page</title>
     17      <script>
     18        // Post the referrer observed by this new Document.
     19        window.addEventListener('load', () => {
     20          parent.postMessage({
     21            source: 'sw-intercepted',
     22            referrer: document.referrer,
     23            url: location.href
     24          }, '*');
     25        });
     26      </script>
     27      <h1>SW-synthesized page</h1>
     28      <p>This page was served by a Service Worker via respondWith().</p>`;
     29 
     30    event.respondWith(new Response(html, {
     31      headers: { 'Content-Type': 'text/html; charset=utf-8' }
     32    }));
     33  }
     34  // Otherwise, fall through to network.
     35 });