// META: script=/common/utils.js const TEST_PAGE = "http://{{host}}:{{ports[http][0]}}/cors/resources/preflight-cache-partitioning.sub.html"; const TEST_ANOTHER_PAGE = "http://{{hosts[alt][]}}:{{ports[http][0]}}/cors/resources/preflight-cache-partitioning.sub.html"; promise_test(async t => { let uuid_token = token(); const TEST_PAGES = [TEST_PAGE, TEST_ANOTHER_PAGE]; // We will load the same page with different top-level origins to check if the // CORS preflight cache is partitioned. The page will load the iframe with one // origin and trigger the CORS preflight through fetching a cross-origin // resources in the iframe. for (let test_page of TEST_PAGES) { let win; await new Promise(resolve => { window.onmessage = (e) => { if (e.data.type === "loaded") { resolve(); } }; win = window.open(test_page); }); await new Promise(resolve => { win.postMessage({ type: "run", token: uuid_token }, "*"); window.onmessage = (e) => { assert_equals(e.data.type, "pass", e.data.msg); resolve(); }; }); win.close(); } }, "The preflight cache should be partitioned");