tor-browser

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

static-router-sw.js (1100B)


      1 'use strict';
      2 
      3 import {routerRules, cacheName} from './router-rules.js';
      4 import {
      5  recordRequest,
      6  recordError,
      7  getRecords,
      8  resetRecords } from './static-router-sw.sub.js';
      9 
     10 import './imported-sw.js';
     11 
     12 self.addEventListener('install', async e => {
     13  e.waitUntil(caches.open(cacheName).then(
     14      cache => {cache.put('cache.txt', new Response('From cache'))}));
     15 
     16  const params = new URLSearchParams(location.search);
     17  const key = params.get('key');
     18  try {
     19    await e.addRoutes(routerRules[key]);
     20  } catch (e) {
     21    recordError(e);
     22  }
     23  self.skipWaiting();
     24 });
     25 
     26 self.addEventListener('activate', e => {
     27  e.waitUntil(clients.claim());
     28 });
     29 
     30 self.addEventListener('fetch', function(event) {
     31  recordRequest(event.request);
     32  const url = new URL(event.request.url);
     33  const nonce = url.searchParams.get('nonce');
     34  event.respondWith(new Response(nonce));
     35 });
     36 
     37 self.addEventListener('message', function(event) {
     38  if (event.data.reset) {
     39    resetRecords();
     40  }
     41  if (event.data.port) {
     42    const {requests, errors} = getRecords();
     43    event.data.port.postMessage({requests, errors});
     44  }
     45 });