tor-browser

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

postmessage-referrer-checker.py (736B)


      1 # Returns a worker script that posts the request's referrer header.
      2 def main(request, response):
      3    referrer = request.headers.get(b"referer", b"")
      4 
      5    response_headers = [(b"Content-Type", b"text/javascript"),
      6                        (b"Access-Control-Allow-Origin", b"*")]
      7 
      8    return (200, response_headers,
      9            b"if ('DedicatedWorkerGlobalScope' in self &&" +
     10            b"    self instanceof DedicatedWorkerGlobalScope) {" +
     11            b"  postMessage('"+referrer+b"');" +
     12            b"} else if (" +
     13            b"    'SharedWorkerGlobalScope' in self &&" +
     14            b"    self instanceof SharedWorkerGlobalScope) {" +
     15            b"  onconnect = e => e.ports[0].postMessage('"+referrer+b"');" +
     16            b"}")