summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/fenced-frame/resources/embedder-policy.js
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/fenced-frame/resources/embedder-policy.js')
-rw-r--r--testing/web-platform/tests/fenced-frame/resources/embedder-policy.js39
1 files changed, 39 insertions, 0 deletions
diff --git a/testing/web-platform/tests/fenced-frame/resources/embedder-policy.js b/testing/web-platform/tests/fenced-frame/resources/embedder-policy.js
new file mode 100644
index 0000000000..8c96afafce
--- /dev/null
+++ b/testing/web-platform/tests/fenced-frame/resources/embedder-policy.js
@@ -0,0 +1,39 @@
+// 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);
+}