referrer-policy.sub.https.html (1742B)
1 <!doctype html> 2 <meta charset=utf-8> 3 <meta name=timeout content=long> 4 <meta name=variant content="?method=a"> 5 <meta name=variant content="?method=a&noreferrer"> 6 <meta name=variant content="?method=img"> 7 <meta name=variant content="?method=img&noreferrer"> 8 <meta name=variant content="?method=open"> 9 <meta name=variant content="?method=open&noreferrer"> 10 <meta name=variant content="?method=script"> 11 <meta name=variant content="?method=script&noreferrer"> 12 <script src="/resources/testdriver.js"></script> 13 <script src="/resources/testdriver-vendor.js"></script> 14 <script src="/resources/testharness.js"></script> 15 <script src="/resources/testharnessreport.js"></script> 16 <script src="resources/helpers.js"></script> 17 <body> 18 <script> 19 const waitForRequest = async () => { 20 const url = blankURL(); 21 url.searchParams.set('get-requests', 'true'); 22 23 for (let i = 0; i < 20; i++) { 24 const resp = await fetch(url); 25 const payload = await resp.json(); 26 if (payload !== null && payload.length > 0) { 27 return payload; 28 } 29 await delay(100); 30 } 31 throw new Error('Timeout polling requests'); 32 }; 33 34 const searchParams = new URLSearchParams(location.search); 35 36 promise_test(async t => { 37 const noreferrer = searchParams.has('noreferrer'); 38 39 registerAttributionSrc({ 40 method: 'variant', 41 extraQueryParams: {'store-request': 'true'}, 42 referrerPolicy: noreferrer ? 'no-referrer' : '', 43 }); 44 45 const requests = await waitForRequest(); 46 assert_equals(requests.length, 1); 47 48 if (noreferrer) { 49 assert_not_own_property(requests[0], 'referer'); 50 } else { 51 assert_own_property(requests[0], 'referer'); 52 assert_equals(requests[0].referer, location.toString()); 53 } 54 55 }, 'attributionsrc referrer policy is propagated.'); 56 </script>