tor-browser

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

opaque_intercept_worker.js (1006B)


      1 var name = "opaqueInterceptCache";
      2 
      3 // Cross origin request to ensure that an opaque response is used
      4 var prefix = "http://example.com/tests/dom/serviceworkers/test/";
      5 
      6 var testReady = new Promise(resolve => {
      7  self.addEventListener(
      8    "message",
      9    m => {
     10      resolve();
     11    },
     12    { once: true }
     13  );
     14 });
     15 
     16 self.addEventListener("install", function (event) {
     17  var request = new Request(prefix + "notify_loaded.js", { mode: "no-cors" });
     18  event.waitUntil(
     19    Promise.all([caches.open(name), fetch(request), testReady]).then(
     20      function (results) {
     21        var cache = results[0];
     22        var response = results[1];
     23        return cache.put("./sw_clients/does_not_exist.js", response);
     24      }
     25    )
     26  );
     27 });
     28 
     29 self.addEventListener("fetch", function (event) {
     30  event.respondWith(
     31    caches
     32      .open(name)
     33      .then(function (cache) {
     34        return cache.match(event.request);
     35      })
     36      .then(function (response) {
     37        return response || fetch(event.request);
     38      })
     39  );
     40 });