tor-browser

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

postmessage-credentials.py (905B)


      1 def main(request, response):
      2    cookie = request.cookies.first(b"COOKIE_NAME", None)
      3 
      4    response_headers = [(b"Content-Type", b"text/javascript"),
      5                        (b"Access-Control-Allow-Credentials", b"true")]
      6 
      7    origin = request.headers.get(b"Origin", None)
      8    if origin:
      9        response_headers.append((b"Access-Control-Allow-Origin", origin))
     10 
     11    cookie_value = b'';
     12    if cookie:
     13        cookie_value = cookie.value;
     14    return (200, response_headers,
     15            b"if ('DedicatedWorkerGlobalScope' in self &&" +
     16            b"    self instanceof DedicatedWorkerGlobalScope) {" +
     17            b"  postMessage('"+cookie_value+b"');" +
     18            b"} else if (" +
     19            b"    'SharedWorkerGlobalScope' in self &&" +
     20            b"    self instanceof SharedWorkerGlobalScope) {" +
     21            b"  onconnect = e => e.ports[0].postMessage('"+cookie_value+b"');" +
     22            b"}")