tor-browser

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

unrecognized-member-service-worker.js (1552B)


      1 // Some user agents only offer app installation if there is a SW and it handles
      2 // offline requests.
      3 
      4 const cacheVersion = "1.2";
      5 const CACHE_NAME = `cache-v${cacheVersion}`;
      6 
      7 // The resources cached by this service worker.
      8 const resources = [
      9  "unrecognized-member-manual.html",
     10  "unrecognized-member-service-worker.js",
     11  "resources/unrecognized-member-manual.js",
     12  "resources/icon.png"
     13 ];
     14 
     15 // Load all resources for this service worker.
     16 const precache = async () => {
     17  const cache = await caches.open(CACHE_NAME);
     18  await cache.addAll(resources);
     19 };
     20 
     21 // Get a resource from the cache.
     22 const fromCache = async request => {
     23  const cache = await caches.open(CACHE_NAME);
     24  return await cache.match(request.url);
     25 };
     26 
     27 // Attempt to get resources from the network first, fallback to the cache if we're
     28 // offline.
     29 const networkFallbackToCache = async request => {
     30  try {
     31    const response = await fetch(request);
     32    if (response.ok) return response;
     33  } catch (err) {}
     34  return await fromCache(request);
     35 };
     36 
     37 // When we have a new service worker, update the caches and swap immediately.
     38 self.addEventListener("install", e => {
     39  e.waitUntil(precache().then(() => self.skipWaiting()));
     40 });
     41 
     42 // Claim existing clients.
     43 self.addEventListener("activate", e => {
     44  e.waitUntil(self.clients.claim());
     45 });
     46 
     47 // When a resource need to be fetched, check whether it is
     48 // contained in the cache and return the cached version, otherwise
     49 // get it from the network.
     50 self.addEventListener("fetch", e => {
     51  e.respondWith(networkFallbackToCache(e.request));
     52 });