document-referrer.https.html (2089B)
1 <!DOCTYPE html> 2 <title>Test document.referrer referrer</title> 3 <script src="/resources/testharness.js"></script> 4 <script src="/resources/testharnessreport.js"></script> 5 <script src="/common/dispatcher/dispatcher.js"></script> 6 <script src="/common/utils.js"></script> 7 <script src="resources/utils.js"></script> 8 9 <body> 10 11 <script> 12 promise_test(async () => { 13 const fenced_frame = attachFencedFrameContext(); 14 15 // Test the value of `document.referrer` inside a top-level fenced frame. 16 const fenced_frame_url = await fenced_frame.execute(() => { 17 assert_equals(document.referrer, "", 18 "The top-level fenced frame's document.referrer is censored"); 19 return location.href; 20 }); 21 22 // Test an iframe nested inside a fenced frame. 23 await fenced_frame.execute(async () => { 24 const nested_iframe = attachIFrameContext(); 25 await nested_iframe.execute((expected_referrer) => { 26 assert_equals(document.referrer, expected_referrer, 27 `The document.referrer of the iframe inside the fenced 28 frame is not censored`); 29 }, [location.href]); 30 }); 31 32 // Test a nested fenced frame. 33 await fenced_frame.execute(async () => { 34 const nested_fenced_frame = attachFencedFrameContext(); 35 await nested_fenced_frame.execute(() => { 36 assert_equals(document.referrer, "", 37 `The document.referrer of the nested fenced frame is 38 censored`); 39 }); 40 }); 41 42 // Test a top-level fenced frame after it navigates itself. 43 // Navigate the fenced frame. (Refresh it, so we can still send it scripts.) 44 await fenced_frame.execute(() => { 45 window.executor.suspend(() => { 46 location.href = location.href; 47 }); 48 }); 49 50 // Check that it now sees its original URL as the referrer. 51 await fenced_frame.execute((expected_referrer) => { 52 assert_equals(document.referrer, expected_referrer, 53 `The document.referrer of a fenced frame after it navigates 54 itself is not censored.`); 55 }, [fenced_frame_url]); 56 57 }, "document.referrer"); 58 </script> 59 60 </body>