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"}")