importScripts('/common/get-host-info.sub.js'); importScripts('test-helpers.sub.js'); importScripts('/resources/testharness.js'); const storedResponse = new Response(new Blob(['a simple text file'])) const absolultePath = `${base_path()}/simple.txt` self.addEventListener('fetch', event => { const search = new URLSearchParams(new URL(event.request.url).search.substr(1)) const variant = search.get('variant') const delay = search.get('delay') if (!variant) return switch (variant) { case 'forward': event.respondWith(fetch(event.request.url)) break case 'redirect': event.respondWith(fetch(`/xhr/resources/redirect.py?location=${base_path()}/simple.txt`)) break case 'delay-before-fetch': event.respondWith( new Promise(resolve => { step_timeout(() => fetch(event.request.url).then(resolve), delay) })) break case 'delay-after-fetch': event.respondWith(new Promise(resolve => { fetch(event.request.url) .then(response => step_timeout(() => resolve(response), delay)) })) break } });