tor-browser

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

embedded_worker.py (855B)


      1 from cookies.resources.helpers import setNoCacheAndCORSHeaders
      2 
      3 # This worker messages how many connections have been made and checks what cookies are available.
      4 def main(request, response):
      5    headers = setNoCacheAndCORSHeaders(request, response)
      6    headers[0] = (b"Content-Type", b"text/javascript")
      7    cookie_header = request.headers.get(b"Cookie", b"")
      8    document = b"""
      9 "use strict";
     10 
     11 self.onmessage = async (message) => {
     12  function reply(data) {
     13    self.postMessage({data});
     14  }
     15 
     16  switch (message.data.command) {
     17    case "fetch": {
     18      const response = await fetch(message.data.url, {mode: 'cors', credentials: 'include'})
     19        .then((resp) => resp.text());
     20      reply(response);
     21      break;
     22    }
     23    case "load": {
     24      reply(\"""" + cookie_header + b"""");
     25      break;
     26    }
     27    default:
     28  }
     29 };
     30 """
     31    return headers, document