| Index: third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/navigation-preload/resources/redirect-worker.js
|
| diff --git a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/navigation-preload/resources/redirect-worker.js b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/navigation-preload/resources/redirect-worker.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..f7479edef9290c98c574a2dc72bc37fbd1f9b177
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/navigation-preload/resources/redirect-worker.js
|
| @@ -0,0 +1,32 @@
|
| +self.addEventListener('activate', event => {
|
| + event.waitUntil(
|
| + self.registration.navigationPreload.enable());
|
| + });
|
| +
|
| +function get_response_info(r) {
|
| + var info = {
|
| + type: r.type,
|
| + url: r.url,
|
| + status: r.status,
|
| + ok: r.ok,
|
| + statusText: r.statusText,
|
| + headers: []
|
| + };
|
| + r.headers.forEach((value, name) => { info.headers.push([value, name]); });
|
| + return info;
|
| +}
|
| +
|
| +function post_to_page(data) {
|
| + return self.clients.matchAll()
|
| + .then(clients => clients.forEach(client => client.postMessage(data)));
|
| +}
|
| +
|
| +self.addEventListener('fetch', event => {
|
| + event.respondWith(
|
| + event.preloadResponse
|
| + .then(
|
| + res => {
|
| + return post_to_page(get_response_info(res)).then(_ => res);
|
| + },
|
| + err => new Response(err.toString())));
|
| + });
|
|
|