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
content / test / data / service_worker / navigation_preload_worker.js [blame]
// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
self.addEventListener('activate', event => {
event.waitUntil(self.registration.navigationPreload.enable());
});
self.addEventListener('fetch', event => {
const params = new URL(event.request.url).searchParams;
if (event.request.mode == 'navigate') {
if (params.has('navpreload_or_offline')) {
event.respondWith((async () => {
try {
return await event.preloadResponse;
} catch (e) {
return new Response("Hello Offline page");
}
})());
} else {
event.respondWith(event.preloadResponse);
}
}
});