39 lines
1.2 KiB
JavaScript
39 lines
1.2 KiB
JavaScript
// 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
|
|
// (https://web-platform-tests.org/writing-tests/server-pipes.html).
|
|
// 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);
|
|
}
|