tor-browser

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

display-override-member-media-feature-service-worker.js (2241B)


      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  "display-override-member-app-region-window-controls-overlay-manual.tentative.html",
     10  "display-override-member-css-environment-variables-window-controls-overlay-manual.tentative.html",
     11  "display-override-member-media-feature-browser-manual.tentative.html",
     12  "display-override-member-media-feature-fullscreen-manual.tentative.html",
     13  "display-override-member-media-feature-minimal-ui-manual.tentative.html",
     14  "display-override-member-media-feature-standalone-manual.tentative.html",
     15  "display-override-member-media-feature-standalone-overrides-browser-manual.tentative.html",
     16  "display-override-member-media-feature-window-controls-overlay-overrides-browser-manual.tentative.html",
     17  "display-override-member-media-feature-service-worker.js",
     18  "resources/display-override-member-media-feature-manual.js",
     19  "resources/icon.png",
     20 ];
     21 
     22 // Load all resources for this service worker.
     23 const precache = async () => {
     24  const cache = await caches.open(CACHE_NAME);
     25  await cache.addAll(resources);
     26 };
     27 
     28 // Get a resource from the cache.
     29 const fromCache = async request => {
     30  const cache = await caches.open(CACHE_NAME);
     31  return await cache.match(request.url);
     32 };
     33 
     34 // Attempt to get resources from the network first, fallback to the cache if we're
     35 // offline.
     36 const networkFallbackToCache = async request => {
     37  try {
     38    const response = await fetch(request);
     39    if (response.ok) return response;
     40  } catch (err) {}
     41  return await fromCache(request);
     42 };
     43 
     44 // When we have a new service worker, update the caches and swap immediately.
     45 self.addEventListener("install", e => {
     46  e.waitUntil(precache().then(() => self.skipWaiting()));
     47 });
     48 
     49 // Claim existing clients.
     50 self.addEventListener("activate", e => {
     51  e.waitUntil(self.clients.claim());
     52 });
     53 
     54 // When a resource need to be fetched, check whether it is
     55 // contained in the cache and return the cached version, otherwise
     56 // get it from the network.
     57 self.addEventListener("fetch", e => {
     58  e.respondWith(networkFallbackToCache(e.request));
     59 });