tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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 });