mirror of
https://github.com/microsoft/playwright.git
synced 2025-06-26 21:40:17 +00:00
Fixes #15474. Notes: * page-level requests that are also handled by a SW's fetch handler, should not be interceptable at the page-level * `Network.requestWillBeSent` does not provide enough metadata for Playwright to fire the `request` event at that time, so it does it as soon as it gets to the end of the request lifecycle
20 lines
707 B
JavaScript
20 lines
707 B
JavaScript
self.addEventListener('fetch', event => {
|
|
if (event.request.url.endsWith('.html') || event.request.url.includes('passthrough')) {
|
|
event.respondWith(fetch(event.request));
|
|
return;
|
|
}
|
|
if (event.request.url.includes('error')) {
|
|
event.respondWith(Promise.reject(new Error('uh oh')));
|
|
return;
|
|
}
|
|
const slash = event.request.url.lastIndexOf('/');
|
|
const name = event.request.url.substring(slash + 1);
|
|
const blob = new Blob(["responseFromServiceWorker:" + name], {type : 'text/css'});
|
|
const response = new Response(blob, { "status" : 200 , "statusText" : "OK" });
|
|
event.respondWith(response);
|
|
});
|
|
|
|
self.addEventListener('activate', event => {
|
|
event.waitUntil(clients.claim());
|
|
});
|