var name = "refresherCache";

self.addEventListener("install", function (event) {
  event.waitUntil(
    Promise.all([
      caches.open(name),
      fetch("./sw_clients/refresher_cached.html"),
      fetch("./sw_clients/refresher_cached_compressed.html"),
    ]).then(function (results) {
      var cache = results[0];
      var response = results[1];
      var compressed = results[2];
      return Promise.all([
        cache.put("./sw_clients/refresher.html", response),
        cache.put("./sw_clients/refresher_compressed.html", compressed),
      ]);
    })
  );
});

self.addEventListener("fetch", function (event) {
  event.respondWith(
    caches
      .open(name)
      .then(function (cache) {
        return cache.match(event.request);
      })
      .then(function (response) {
        // If this is one of our primary cached responses, then the window
        // must have generated the request via a normal window reload.  That
        // should be detectable in the event.request.cache attribute.
        if (response && event.request.cache !== "no-cache") {
          dump(
            '### ### FetchEvent.request.cache is "' +
              event.request.cache +
              '" instead of expected "no-cache"\n'
          );
          return Response.error();
        }
        return response || fetch(event.request);
      })
  );
});
