tor-browser

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

service-worker.js (1015B)


      1 const requests = new Set();
      2 
      3 addEventListener('install', evt => {
      4  evt.waitUntil(self.skipWaiting());
      5 });
      6 
      7 addEventListener('activate', evt => {
      8  evt.waitUntil(self.clients.claim());
      9 });
     10 
     11 addEventListener('message', evt => {
     12  evt.source.postMessage(requests);
     13 });
     14 
     15 addEventListener('fetch', evt => {
     16  const url = new URL(evt.request.url);
     17  const path = url.pathname;
     18  const search = url.search || "?";
     19  const params = new URLSearchParams(search);
     20  const type = params.get('type');
     21  if (path.includes('404')) {
     22    const dir = path.split('/');
     23    const request = dir[dir.length-1] + search;
     24    if (!requests.has(request)) {
     25      requests.add(request);
     26    }
     27    evt.respondWith(new Response("", {
     28      headers: {
     29        "Content-Type": type || "text/plain"
     30      }
     31    }));
     32  } else if (path.endsWith('resources.html')) {
     33    const html = params.get('html') || "";
     34    evt.respondWith(new Response(html, {
     35      headers: {
     36        "Content-Type": type || "text/html"
     37      }
     38    }));
     39  }
     40  return;
     41 });