tor-browser

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

test-partitioned-parent-writer-and-different-origin-window-reader-iframe.https.sub.html (2867B)


      1 <!--
      2  Any copyright is dedicated to the Public Domain.
      3  http://creativecommons.org/publicdomain/zero/1.0/
      4 -->
      5 <html>
      6  <head>
      7    <meta charset="utf-8" />
      8    <meta name="timeout" content="long" />
      9    <script src="/resources/testharness.js"></script>
     10    <script src="/resources/testharnessreport.js"></script>
     11    <script src="testHelpers.js"></script>
     12    <iframe id="write-frame-window"></iframe>
     13    <iframe id="write-frame-worker"></iframe>
     14    <script>
     15      const messageHub = createMotherListener();
     16 
     17      async function runTests() {
     18        const params = new URL(window.location.href).searchParams;
     19        const api = params.get("api");
     20        assert_true(!!api);
     21        console.log("Tested API " + api);
     22 
     23        const testIdWindow = "WriteIFrameReadDifferentOriginWindowWith" + api;
     24        const testIdWorker = "Worker" + testIdWindow;
     25 
     26        const writeWindows = new Map();
     27 
     28        const writeFrameWindow = document.getElementById("write-frame-window");
     29        writeWindows.set(testIdWindow, writeFrameWindow.contentWindow);
     30 
     31        const writeFrameWorker = document.getElementById("write-frame-worker");
     32        writeWindows.set(testIdWorker, writeFrameWorker.contentWindow);
     33 
     34        const readWindowURL =
     35          "https://{{hosts[][www2]}}:{{ports[https][0]}}/_mozilla/dom/quota/support/test-read-and-notify-wrapper.https.sub.html";
     36 
     37        const readWindows = new Map();
     38 
     39        messageHub.registerReadWindow(testIdWindow);
     40        readWindows.set(
     41          testIdWindow,
     42          window.open(readWindowURL + "?id=" + testIdWindow)
     43        );
     44 
     45        messageHub.registerReadWindow(testIdWorker);
     46        readWindows.set(
     47          testIdWorker,
     48          window.open(readWindowURL + "?id=" + testIdWorker)
     49        );
     50 
     51        const setup = { readWindows, writeWindows };
     52 
     53        await messageHub.getReadWindow(testIdWindow);
     54        async_test(t => {
     55          messageHub.registerWindow(t, testIdWindow, api, "allow", setup);
     56 
     57          writeFrameWindow.src =
     58            "https://{{hosts[alt][www1]}}:{{ports[https][0]}}/_mozilla/dom/quota/support/test-write-and-notify.https.html?id=" +
     59            testIdWindow;
     60        }, "iframe of origin A in the parent window can read data written by iframe of origin A in a child window of origin B " + api);
     61 
     62        await messageHub.getReadWindow(testIdWorker);
     63        async_test(t => {
     64          messageHub.registerWorker(t, testIdWorker, api, "allow", setup);
     65 
     66          writeFrameWorker.src =
     67            "https://{{hosts[alt][www1]}}:{{ports[https][0]}}/_mozilla/dom/quota/support/test-write-and-notify-worker.https.html?id=" +
     68            testIdWorker;
     69        }, "worker in an iframe of origin A in the parent window can read data written by iframe of origin A in a child window of origin B " + api);
     70      }
     71    </script>
     72  </head>
     73  <body onload="runTests();"></body>
     74 </html>