tor-browser

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

sw-store-to-cache-storage.js (711B)


      1 self.addEventListener('activate', (e) => {
      2  e.waitUntil(clients.claim());
      3 });
      4 
      5 self.addEventListener('message', (e) => {
      6  e.waitUntil((async () => {
      7 
      8    const url = new URL(e.data.url);
      9    const request = new Request(url, {mode: e.data.mode});
     10    const cache = await caches.open('v1');
     11 
     12    let response;
     13    switch(e.data.source) {
     14      case "service-worker":
     15        response = new Response('foo');
     16        break;
     17 
     18      case "network":
     19        try {
     20          response = await fetch(request);
     21        } catch(error) {
     22          e.source.postMessage('not-stored');
     23          return;
     24        }
     25        break;
     26    }
     27 
     28    await cache.put(request, response);
     29    e.source.postMessage('stored');
     30  })());
     31 })