tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

accept_ch_delegation_to_all.sub.https.html (1943B)


      1 <!doctype html>
      2 <meta charset=utf-8>
      3 <title>Client Hints: Delegation of hints to cross-origin frames and resources for *</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, 200, "Site 1 fetching Site 1 didn't 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, 200, "Site 1 fetching Site 2 didn't 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, 200, "Site 1 fetching Site 3 didn't 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_all_iframe.sub.https.html";
     27  site2Frame.allow = "ch-device-memory *"
     28  document.body.appendChild(site2Frame);
     29  // Step 6
     30  return new Promise(resolve => {
     31    window.addEventListener("message", resolve);
     32  }).then(e => {
     33    assert_equals(e.data, "ch-device-memory is available as expected for all");
     34  });
     35 }, "postMessage: First-Party to Third-Party, Cross-Partition, Same-Origin");
     36 </script>
     37 </body>