summaryrefslogtreecommitdiffstats
path: root/dom/serviceworkers/test/fetch.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/serviceworkers/test/fetch.js')
-rw-r--r--dom/serviceworkers/test/fetch.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/dom/serviceworkers/test/fetch.js b/dom/serviceworkers/test/fetch.js
new file mode 100644
index 0000000000..bf1bb4acb3
--- /dev/null
+++ b/dom/serviceworkers/test/fetch.js
@@ -0,0 +1,33 @@
+function get_query_params(url) {
+ var search = new URL(url).search;
+ if (!search) {
+ return {};
+ }
+ var ret = {};
+ var params = search.substring(1).split("&");
+ params.forEach(function (param) {
+ var element = param.split("=");
+ ret[decodeURIComponent(element[0])] = decodeURIComponent(element[1]);
+ });
+ return ret;
+}
+
+addEventListener("fetch", function (event) {
+ if (event.request.url.includes("fail.html")) {
+ event.respondWith(fetch("hello.html", { integrity: "abc" }));
+ } else if (event.request.url.includes("fake.html")) {
+ event.respondWith(fetch("hello.html"));
+ } else if (event.request.url.includes("file_js_cache")) {
+ event.respondWith(fetch(event.request));
+ } else if (event.request.url.includes("redirect")) {
+ let param = get_query_params(event.request.url);
+ let url = param.url;
+ let mode = param.mode;
+
+ event.respondWith(fetch(url, { mode }));
+ }
+});
+
+addEventListener("activate", function (event) {
+ event.waitUntil(clients.claim());
+});