diff options
Diffstat (limited to 'testing/web-platform/tests/referrer-policy/generic/inheritance/workers.html')
-rw-r--r-- | testing/web-platform/tests/referrer-policy/generic/inheritance/workers.html | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/testing/web-platform/tests/referrer-policy/generic/inheritance/workers.html b/testing/web-platform/tests/referrer-policy/generic/inheritance/workers.html new file mode 100644 index 0000000000..0bd75a1d15 --- /dev/null +++ b/testing/web-platform/tests/referrer-policy/generic/inheritance/workers.html @@ -0,0 +1,47 @@ +<html> + <head> + <title>Referrer Policy: local scheme workers inherit from creator</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/common/get-host-info.sub.js"></script> + <meta name="referrer" content="no-referrer"> + </head> + <script> + let cross_origin = get_host_info().REMOTE_ORIGIN; + + let generateFetchString = postmessage => ` + fetch("${cross_origin}/common/security-features/subresource/xhr.py", + {referrer: "${location.href}/custom"}) + .then(r => r.json()) + .then(j => ${postmessage}({referrer: j.headers.referer})) + .catch(e => ${postmessage}({referrer: "FAILURE"}));` + + async_test(t => { + let blob = new Blob([generateFetchString("postMessage")], + {type : 'application/javascript'}); + let blob_url = URL.createObjectURL(blob); + let worker = new Worker(blob_url); + worker.onmessage = t.step_func_done(msg => { + assert_equals(msg.data.referrer, undefined); + }); + }, "Dedicated worker with local scheme inherits referrer policy " + + "from the creating document."); + + async_test(t => { + let script = ` + onconnect = e => { + let port = e.ports[0]; + port.start(); + ${generateFetchString("port.postMessage")} + };` + let blob = new Blob([script], {type : 'application/javascript'}); + let blob_url = URL.createObjectURL(blob); + let shared_worker = new SharedWorker(blob_url); + shared_worker.port.start(); + shared_worker.port.onmessage = t.step_func_done(msg => { + assert_equals(msg.data.referrer, undefined); + }); + }, "Shared worker with local scheme inherits referrer policy " + + "from the creating document."); + </script> +</html> |