Source code

Revision control

Copy as Markdown

Other Tools

// This file should be loaded alongside with utils.js.
//
// This file is loaded by:
// - embedder-no-coep.https.html
// - embedder-require-corp.https.html
// Make input list to be used as a wptserve pipe
// e.g.
// args: ['content-type,text/plain','Age,0']
// return: 'header(content-type,text/plain)|header(Age,0)'
function generateHeader(headers) {
return headers.map((h) => {
return 'header(' + h + ')';
}).join('|');
}
// Setup a fenced frame for embedder-* WPTs.
async function setupTest(test_type, uuid, hostname='') {
let headers = ["Supports-Loading-Mode,fenced-frame"];
switch (test_type) {
case "coep:require-corp":
headers.push("cross-origin-embedder-policy,require-corp");
headers.push("cross-origin-resource-policy,same-origin");
break;
case "no coep":
break;
default:
assert_unreachable("unknown test_type:" + test_type);
break;
}
const tmp_url = new URL('resources/embeddee.html', location.href);
if (hostname) {
tmp_url.hostname = hostname;
}
tmp_url.searchParams.append("pipe", generateHeader(headers));
const url = generateURL(tmp_url.toString(), [uuid]);
return attachFencedFrame(url);
}