tor-browser

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

echo-cookie-worker.py (700B)


      1 def main(request, response):
      2    headers = [(b"Content-Type", b"text/javascript")]
      3 
      4    values = []
      5    for key in request.cookies:
      6        for cookie in request.cookies.get_list(key):
      7            values.append(b'"%s": "%s"' % (key, cookie.value))
      8 
      9    # Update the counter to change the script body for every request to trigger
     10    # update of the service worker.
     11    key = request.GET[b'key']
     12    counter = request.server.stash.take(key)
     13    if counter is None:
     14        counter = 0
     15    counter += 1
     16    request.server.stash.put(key, counter)
     17 
     18    body = b"""
     19 // %d
     20 self.addEventListener('message', e => {
     21  e.source.postMessage({%s})
     22 });""" % (counter, b','.join(values))
     23 
     24    return headers, body