tor-browser

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

shared-worker-cookies.py (1379B)


      1 from cookies.resources.helpers import makeCookieHeader, readCookies, 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    cookies = readCookies(request)
      8    message = b"ReadOnLoad:"
      9    if b"samesite_strict" in cookies:
     10        message += b"Strict"
     11    if b"samesite_lax" in cookies:
     12        message += b"Lax"
     13    if b"samesite_none" in cookies:
     14        message += b"None"
     15    document = b"""
     16 let connection_count = 0;
     17 self.onconnect = (e) => {
     18    connection_count++;
     19    fetch("/storage-access-api/resources/get_cookies.py", {credentials: 'include'}).then((resp) => {
     20        resp.json().then((cookies) => {
     21            let message = \"""" + message + b""",ReadOnFetch:";
     22            if (cookies.hasOwnProperty("samesite_strict")) {
     23                message += "Strict";
     24            }
     25            if (cookies.hasOwnProperty("samesite_lax")) {
     26                message += "Lax";
     27            }
     28            if (cookies.hasOwnProperty("samesite_none")) {
     29                message += "None";
     30            }
     31            message += ",ConnectionsMade:" + connection_count;
     32            e.ports[0].postMessage(message);
     33        });
     34    });
     35 }
     36 """
     37    return headers, document