embedder-policy.js (1257B)
1 // This file should be loaded alongside with utils.js. 2 // 3 // This file is loaded by: 4 // - embedder-no-coep.https.html 5 // - embedder-require-corp.https.html 6 7 // Make input list to be used as a wptserve pipe 8 // (https://web-platform-tests.org/writing-tests/server-pipes.html). 9 // e.g. 10 // args: ['content-type,text/plain','Age,0'] 11 // return: 'header(content-type,text/plain)|header(Age,0)' 12 function generateHeader(headers) { 13 return headers.map((h) => { 14 return 'header(' + h + ')'; 15 }).join('|'); 16 } 17 18 // Setup a fenced frame for embedder-* WPTs. 19 async function setupTest(test_type, uuid, hostname='') { 20 let headers = ["Supports-Loading-Mode,fenced-frame"]; 21 switch (test_type) { 22 case "coep:require-corp": 23 headers.push("cross-origin-embedder-policy,require-corp"); 24 headers.push("cross-origin-resource-policy,same-origin"); 25 break; 26 case "no coep": 27 break; 28 default: 29 assert_unreachable("unknown test_type:" + test_type); 30 break; 31 } 32 const tmp_url = new URL('resources/embeddee.html', location.href); 33 if (hostname) { 34 tmp_url.hostname = hostname; 35 } 36 tmp_url.searchParams.append("pipe", generateHeader(headers)); 37 const url = generateURL(tmp_url.toString(), [uuid]); 38 return attachFencedFrame(url); 39 }