iframe-src-change.html (1390B)
1 <!DOCTYPE html> 2 <script src="/resources/testharness.js"></script> 3 <script src="/resources/testharnessreport.js"></script> 4 <body> 5 <script> 6 function nextMessage() { 7 return new Promise((resolve, reject) => { 8 window.addEventListener('message', e => resolve(e.data), {once: true}); 9 }); 10 } 11 12 promise_test(async () => { 13 let iframe = document.createElement('iframe'); 14 iframe.setAttribute('src', '/common/security-features/subresource/document.py?first') 15 iframe.setAttribute('referrerpolicy', 'no-referrer'); 16 document.body.appendChild(iframe); 17 18 try { 19 { 20 let {referrer: documentReferrer, headers: {referer: httpReferrer}} = await nextMessage(); 21 assert_equals(httpReferrer, undefined, 'expected no HTTP Referer header on initial load'); 22 assert_equals(documentReferrer, undefined, 'expected no document.referrer on initial load'); 23 } 24 25 iframe.setAttribute('src', '/common/security-features/subresource/document.py?second'); 26 27 { 28 let {referrer: documentReferrer, headers: {referer: httpReferrer}} = await nextMessage(); 29 assert_equals(httpReferrer, undefined, 'expected no HTTP Referer header on src change'); 30 assert_equals(documentReferrer, undefined, 'expected no document.referrer on src change'); 31 } 32 } finally { 33 iframe.remove(); 34 } 35 }, "Checks that referrerpolicy is respected when an iframe's src changes."); 36 </script> 37 </body>