diff options
Diffstat (limited to 'testing/web-platform/tests/workers/modules/resources/postmessage-referrer-checker.py')
-rw-r--r-- | testing/web-platform/tests/workers/modules/resources/postmessage-referrer-checker.py | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/testing/web-platform/tests/workers/modules/resources/postmessage-referrer-checker.py b/testing/web-platform/tests/workers/modules/resources/postmessage-referrer-checker.py new file mode 100644 index 0000000000..699af684a2 --- /dev/null +++ b/testing/web-platform/tests/workers/modules/resources/postmessage-referrer-checker.py @@ -0,0 +1,16 @@ +# Returns a worker script that posts the request's referrer header. +def main(request, response): + referrer = request.headers.get(b"referer", b"") + + response_headers = [(b"Content-Type", b"text/javascript"), + (b"Access-Control-Allow-Origin", b"*")] + + return (200, response_headers, + b"if ('DedicatedWorkerGlobalScope' in self &&" + + b" self instanceof DedicatedWorkerGlobalScope) {" + + b" postMessage('"+referrer+b"');" + + b"} else if (" + + b" 'SharedWorkerGlobalScope' in self &&" + + b" self instanceof SharedWorkerGlobalScope) {" + + b" onconnect = e => e.ports[0].postMessage('"+referrer+b"');" + + b"}") |