summaryrefslogtreecommitdiffstats
path: root/devtools/client/debugger/test/mochitest/examples/service-worker.sjs
blob: b48bb9e9076a2dad08f69e59bfd081288c92ec55 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */

"use strict";

const body = `
dump("Starting\\n");

self.addEventListener("activate", event => {
  dump("Activate\\n");
  event.waitUntil(self.clients.claim());
});

self.addEventListener("fetch", event => {
  const url = event.request.url;
  dump("Fetch: " + url + "\\n");
  if (url.includes("whatever")) {
    const response = new Response("Service worker response STATUS", { statusText: "OK" });
    event.respondWith(response);
  }
});

self.addEventListener("install", event => {
  dump("Install\\n");
});
`;

function handleRequest(request, response) {
  response.setHeader("Content-Type", "text/javascript");

  const arr = /setStatus=(.*)/.exec(request.queryString);
  if (arr) {
    setState("status", arr[1]);
  }

  const status = getState("status");
  response.write(body.replace("STATUS", status));
}