coep-navigate-popup.https.html (2558B)
1 <!doctype html> 2 <title>Cross-Origin-Opener-Policy and Cross-Origin-Embedder-Policy: a navigating popup</title> 3 <meta name=timeout content=long> 4 <meta name=variant content=?0-1> 5 <meta name=variant content=?2-3> 6 <meta name=variant content=?4-last> 7 <script src=/resources/testharness.js></script> 8 <script src=/resources/testharnessreport.js></script> 9 <script src=/common/subset-tests.js></script> 10 <script src=/common/get-host-info.sub.js></script> 11 <script src=/common/utils.js></script> 12 <script src=resources/common.js></script> 13 <script src=/common/dispatcher/dispatcher.js></script> 14 <script> 15 [ 16 { 17 "title": "coop/coep", 18 "coop": "same-origin", 19 "coep": "require-corp", 20 "opener": true 21 }, 22 { 23 "title": "no coop/coep", 24 "coop": "", 25 "coep": "require-corp", 26 "opener": false 27 }, 28 { 29 "title": "coop/no coep", 30 "coop": "same-origin", 31 "coep": "", 32 "opener": false 33 }, 34 { 35 "title": "no coop/no coep", 36 "coop": "", 37 "coep": "", 38 "opener": false 39 }, 40 { 41 "title": "coop unsafe-none/coep", 42 "coop": "unsafe-none", 43 "coep": "require-corp", 44 "opener": false 45 }, 46 { 47 "title": "coop unsafe-none/no coep", 48 "coop": "unsafe-none", 49 "coep": "", 50 "opener": false 51 } 52 ].forEach((variant, i) => { 53 // Only run specified variants 54 if (!shouldRunSubTest(i)) { 55 return; 56 } 57 58 ["same-origin", "same-site"].forEach(site => { 59 const title = `Popup navigating to ${site} with ${variant.title}`; 60 const responseToken = token(); 61 const iframeToken = token(); 62 const navigateHost = site === "same-origin" ? SAME_ORIGIN : SAME_SITE; 63 const navigateURL = `${navigateHost.origin}/html/cross-origin-opener-policy/resources/coop-coep.py?coop=${variant.coop}&coep=${variant.coep}&responseToken=${responseToken}&iframeToken=${iframeToken}`; 64 const opener = site === "same-origin" ? variant.opener : false; 65 66 promise_test(t => { 67 // For each test we open a COOP: same-origin/COEP: require-corp document in a popup and then 68 // navigate that to either a same-origin (site=="same-origin") or same-site (site=="same-site") 69 // document whose COOP and COEP are set as per the top-most array. We then verify that this 70 // document has the correct opener for its specific setup. 71 return dispatcher_url_test(t, `${SAME_ORIGIN.origin}/html/cross-origin-opener-policy/resources/coop-coep.py?coop=same-origin&coep=require-corp&navigate=${encodeURIComponent(navigateURL)}`, responseToken, iframeToken, opener, undefined, () => t.done()); 72 }, title); 73 }); 74 }); 75 </script>