fetch-variants-worker.js (1242B)
1 importScripts('/common/get-host-info.sub.js'); 2 importScripts('test-helpers.sub.js'); 3 importScripts('/resources/testharness.js'); 4 5 const storedResponse = new Response(new Blob(['a simple text file'])) 6 const absolultePath = `${base_path()}/simple.txt` 7 8 self.addEventListener('fetch', event => { 9 const search = new URLSearchParams(new URL(event.request.url).search.substr(1)) 10 const variant = search.get('variant') 11 const delay = search.get('delay') 12 if (!variant) 13 return 14 15 switch (variant) { 16 case 'forward': 17 event.respondWith(fetch(event.request.url)) 18 break 19 case 'redirect': 20 event.respondWith(fetch(`/xhr/resources/redirect.py?location=${base_path()}/simple.txt`)) 21 break 22 case 'delay-before-fetch': 23 event.respondWith( 24 new Promise(resolve => { 25 step_timeout(() => fetch(event.request.url).then(resolve), delay) 26 })) 27 break 28 case 'delay-after-fetch': 29 event.respondWith(new Promise(resolve => { 30 fetch(event.request.url) 31 .then(response => step_timeout(() => resolve(response), delay)) 32 })) 33 break 34 } 35 });