referrer-policies.sub.html (3821B)
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>Referrers with JSON module requests</title> 5 <script src="/resources/testharness.js"></script> 6 <script src="/resources/testharnessreport.js"></script> 7 </head> 8 <body> 9 <script type="module"> 10 // "name" parameter is necessary for bypassing the module map. 11 import referrerSame from "./referrer-checker.py?name=sameNoReferrerPolicy" with { type: "json"}; 12 import referrerRemote from "http://{{domains[www1]}}:{{ports[http][0]}}/html/semantics/scripting-1/the-script-element/json-module/referrer-checker.py?name=remoteNoReferrerPolicy" with { type: "json"}; 13 14 const origin = (new URL(location.href)).origin + "/"; 15 const originUrl = location.href; 16 17 test(t => { 18 assert_equals( 19 referrerSame.referrer, originUrl, 20 "Referrer URL should be sent for the same-origin top-level script."); 21 }, "Importing a same-origin top-level script with the default referrer policy."); 22 23 test(t => { 24 assert_equals( 25 referrerRemote.referrer, origin, 26 "Referrer origin should be sent for the remote-origin top-level script."); 27 }, "Importing a remote-origin top-level script with the default referrer policy."); 28 </script> 29 <script type="module" referrerpolicy="origin"> 30 import referrerSame from "./referrer-checker.py?name=sameReferrerPolicyOrigin" with { type: "json"}; 31 import referrerRemote from "http://{{domains[www1]}}:{{ports[http][0]}}/html/semantics/scripting-1/the-script-element/json-module/referrer-checker.py?name=remoteReferrerPolicyOrigin" with { type: "json"}; 32 33 const origin = (new URL(location.href)).origin + "/"; 34 35 test(t => { 36 assert_equals( 37 referrerSame.referrer, origin, 38 "Referrer origin should be sent for the same-origin top-level script."); 39 }, "Importing a same-origin top-level script with the origin policy."); 40 41 test(t => { 42 assert_equals( 43 referrerRemote.referrer, origin, 44 "Referrer origin should be sent for the remote-origin top-level script."); 45 }, "Importing a remote-origin top-level script with the origin policy."); 46 47 </script> 48 <script type="module" referrerpolicy="no-referrer"> 49 import referrerSame from "./referrer-checker.py?name=sameReferrerPolicyNoReferrer" with { type: "json"}; 50 import referrerRemote from "http://{{domains[www1]}}:{{ports[http][0]}}/html/semantics/scripting-1/the-script-element/json-module/referrer-checker.py?name=remoteReferrerPolicyNoReferrer" with { type: "json"}; 51 52 test(t => { 53 assert_equals( 54 referrerSame.referrer, "", 55 "No referrer should be sent for the same-origin top-level script."); 56 }, "Importing a same-origin top-level script with the no-referrer policy."); 57 58 test(t => { 59 assert_equals( 60 referrerRemote.referrer, "", 61 "No referrer should be sent for the remote-origin top-level script."); 62 }, "Importing a remote-origin top-level script with the no-referrer policy."); 63 64 </script> 65 <script type="module" referrerpolicy="unsafe-url"> 66 import referrerSame from "./referrer-checker.py?name=sameNoReferrerPolicyUnsafeUrl" with { type: "json"}; 67 import referrerRemote from "http://{{domains[www1]}}:{{ports[http][0]}}/html/semantics/scripting-1/the-script-element/json-module/referrer-checker.py?name=remoteNoReferrerPolicyUnsafeUrl" with { type: "json"}; 68 69 const originUrl = location.href; 70 71 test(t => { 72 assert_equals( 73 referrerSame.referrer, originUrl, 74 "Referrer URL should be sent for the same-origin top-level script."); 75 }, "Importing a same-origin top-level script with the unsafe-url referrer policy."); 76 77 test(t => { 78 assert_equals( 79 referrerRemote.referrer, originUrl, 80 "Referrer URL should be sent for the remote-origin top-level script."); 81 }, "Importing a remote-origin top-level script with the unsafe-url referrer policy."); 82 </script> 83 </body> 84 </html>