| // 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); |
| } |