summaryrefslogtreecommitdiffstats
path: root/dom/serviceworkers/test/sw_with_navigationPreload.js
blob: 75e06787cd31daa545aacbc53fa8b80cf4b52765 (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
addEventListener("activate", event => {
  event.waitUntil(self.registration.navigationPreload.enable());
});

async function post_to_page(data) {
  let cs = await self.clients.matchAll();
  for (const client of cs) {
    client.postMessage(data);
  }
}

addEventListener("fetch", event => {
  if (event.request.url.includes("navigationPreload_page.html")) {
    event.respondWith(
      new Response("<!DOCTYPE html>", {
        headers: { "Content-Type": "text/html; charset=utf-8" },
      })
    );

    event.waitUntil(
      (async function() {
        let preloadResponse = await event.preloadResponse;
        let text = await preloadResponse.text();
        await post_to_page(text);
      })()
    );
  }
});