summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/workers/modules/resources/postmessage-referrer-checker.py
diff options
context:
space:
mode:
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.py16
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"}")