summaryrefslogtreecommitdiffstats
path: root/dom/workers/test/serviceworkers/opaque_intercept_worker.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/workers/test/serviceworkers/opaque_intercept_worker.js')
-rw-r--r--dom/workers/test/serviceworkers/opaque_intercept_worker.js25
1 files changed, 25 insertions, 0 deletions
diff --git a/dom/workers/test/serviceworkers/opaque_intercept_worker.js b/dom/workers/test/serviceworkers/opaque_intercept_worker.js
new file mode 100644
index 000000000..d593be783
--- /dev/null
+++ b/dom/workers/test/serviceworkers/opaque_intercept_worker.js
@@ -0,0 +1,25 @@
+var name = 'opaqueInterceptCache';
+
+// Cross origin request to ensure that an opaque response is used
+var prefix = 'http://example.com/tests/dom/workers/test/serviceworkers/'
+
+self.addEventListener('install', function(event) {
+ var request = new Request(prefix + 'notify_loaded.js', { mode: 'no-cors' });
+ event.waitUntil(
+ Promise.all([caches.open(name), fetch(request)]).then(function(results) {
+ var cache = results[0];
+ var response = results[1];
+ return cache.put('./sw_clients/does_not_exist.js', response);
+ })
+ );
+});
+
+self.addEventListener('fetch', function (event) {
+ event.respondWith(
+ caches.open(name).then(function(cache) {
+ return cache.match(event.request);
+ }).then(function(response) {
+ return response || fetch(event.request);
+ })
+ );
+});