accept_ch_delegation_to_none.sub.https.html (1897B)
1 <!doctype html> 2 <meta charset=utf-8> 3 <title>Client Hints: Delegation of hints to cross-origin frames and resources for none</title> 4 <script src="/resources/testharness.js"></script> 5 <script src="/resources/testharnessreport.js"></script> 6 <body> 7 <script> 8 // Here's the set-up for this test: 9 // Step 1. (Site 1 Window) verify ch-device-memory availability. 10 // Step 2. (Site 1 Window) set up listener and embed Site 2 Frame. 11 // Step 3. (Site 2 Frame) verify ch-device-memory availability. 12 // Step 4. (Site 2 Frame) embeds Site 1 Frame. 13 // Step 5. (Site 3 Frame) verify ch-device-memory availability. 14 // Step 6. (Site 1 Window) exit. 15 16 promise_test(async (t) => { 17 // Step 1 18 let r = await fetch("/client-hints/inner-delegation/resources/was-sec-ch-device-memory-received.py"); 19 assert_equals(r.status, 400, "Site 1 fetching Site 1 did recieve sec-ch-device-memory"); 20 r = await fetch("https://{{hosts[alt][]}}:{{ports[https][0]}}/client-hints/inner-delegation/resources/was-sec-ch-device-memory-received.py"); 21 assert_equals(r.status, 400, "Site 1 fetching Site 2 did recieve sec-ch-device-memory"); 22 r = await fetch("https://{{domains[www2]}}:{{ports[https][0]}}/client-hints/inner-delegation/resources/was-sec-ch-device-memory-received.py"); 23 assert_equals(r.status, 400, "Site 1 fetching Site 3 did recieve sec-ch-device-memory"); 24 // Step 2 25 const site2Frame = document.createElement("iframe"); 26 site2Frame.src = "https://{{hosts[alt][]}}:{{ports[https][0]}}/client-hints/inner-delegation/resources/accept_ch_delegation_to_none_iframe.sub.https.html"; 27 document.body.appendChild(site2Frame); 28 // Step 6 29 return new Promise(resolve => { 30 window.addEventListener("message", resolve); 31 }).then(e => { 32 assert_equals(e.data, "ch-device-memory is available as expected for none"); 33 }); 34 }, "postMessage: First-Party to Third-Party, Cross-Partition, Same-Origin"); 35 </script> 36 </body>