Skip to content

Commit 5bcdd66

Browse files
committed
use preload navigation
1 parent 5c88450 commit 5bcdd66

1 file changed

Lines changed: 21 additions & 14 deletions

File tree

src/vs/workbench/contrib/resources/browser/resourceServiceWorkerMain.ts

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,23 +27,30 @@
2727
});
2828

2929
self.addEventListener('fetch', (event: any) => {
30-
event.respondWith(handlerPromise.then(handler => {
31-
return handler.handleFetchEvent(event).then(value => {
32-
if (value instanceof Response) {
33-
return value;
34-
} else {
35-
return fetch(event.request);
36-
}
37-
});
30+
event.respondWith(handlerPromise.then(async handler => {
31+
// try handler
32+
const value = await handler.handleFetchEvent(event);
33+
if (value instanceof Response) {
34+
return value;
35+
}
36+
// try the network (prefetch or fetch)
37+
const res = await event.preloadResponse;
38+
if (res) {
39+
return res;
40+
} else {
41+
return fetch(event.request);
42+
}
3843
}));
3944
});
40-
self.addEventListener('install', event => {
41-
//@ts-ignore
42-
event.waitUntil(self.skipWaiting());
45+
self.addEventListener('install', (event: any) => {
46+
event.waitUntil((self as any).skipWaiting());
4347
});
4448

45-
self.addEventListener('activate', event => {
46-
//@ts-ignore
47-
event.waitUntil(self.clients.claim()); // Become available to all pages
49+
self.addEventListener('activate', (event: any) => {
50+
51+
event.waitUntil((async () => {
52+
await (self as any).registration.navigationPreload.enable(); // Enable navigation preloads!
53+
await (self as any).clients.claim(); // Become available to all pages
54+
})());
4855
});
4956
})();

0 commit comments

Comments
 (0)