summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/fetch/api/resources/sw-intercept-abort.js
blob: 19d4b189d8594e44077755e5e88e596f059199a9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
async function messageClient(clientId, message) {
  const client = await clients.get(clientId);
  client.postMessage(message);
}

addEventListener('fetch', event => {
  let resolve;
  const promise = new Promise(r => resolve = r);

  function onAborted() {
     messageClient(event.clientId, event.request.signal.reason);
     resolve();
  }

  messageClient(event.clientId, 'fetch event has arrived');

  event.respondWith(promise.then(() => new Response('hello')));
  event.request.signal.addEventListener('abort', onAborted);
});