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>