Fix javascript url COEP tests
Differential Revision: https://phabricator.services.mozilla.com/D74652
bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1636905
gecko-commit: 548e90039d8de11290a078e08f343d4937c11418
gecko-integration-branch: autoland
gecko-reviewers: annevk
diff --git a/html/cross-origin-embedder-policy/coep-frame-javascript.https.html b/html/cross-origin-embedder-policy/coep-frame-javascript.https.html
index d3e090b..089019d 100644
--- a/html/cross-origin-embedder-policy/coep-frame-javascript.https.html
+++ b/html/cross-origin-embedder-policy/coep-frame-javascript.https.html
@@ -18,7 +18,7 @@
frame.src = "resources/coep-frame.html";
frame.onload = t.step_func(() => {
frame.onload = null;
- frame.src = `javascript:'${createScript(window.origin, get_host_info().HTTPS_NOTSAMESITE_ORIGIN)}'`;
+ frame.src = `javascript:${encodeURIComponent(createScript(window.origin, get_host_info().HTTPS_NOTSAMESITE_ORIGIN))}`;
});
document.body.append(frame);
}, "Cross-Origin-Embedder-Policy frame and javascript: URLs");
diff --git a/html/cross-origin-embedder-policy/data.https.html b/html/cross-origin-embedder-policy/data.https.html
index c34f133..13c0cce 100644
--- a/html/cross-origin-embedder-policy/data.https.html
+++ b/html/cross-origin-embedder-policy/data.https.html
@@ -14,7 +14,7 @@
}));
const frame = document.createElement("iframe");
t.add_cleanup(() => frame.remove());
- frame.src = `data:text/html,${createScript("null", window.origin)}`;
+ frame.src = `data:text/html,<script>${createScript("null", window.origin)}<\/script>`;
document.body.append(frame);
}, "Cross-Origin-Embedder-Policy and data: URLs");
</script>
diff --git a/html/cross-origin-embedder-policy/javascript.https.html b/html/cross-origin-embedder-policy/javascript.https.html
index 9fe85db..60edf00 100644
--- a/html/cross-origin-embedder-policy/javascript.https.html
+++ b/html/cross-origin-embedder-policy/javascript.https.html
@@ -15,7 +15,7 @@
}));
const frame = document.createElement("iframe");
t.add_cleanup(() => frame.remove());
- frame.src = `javascript:'${createScript(window.origin, get_host_info().HTTPS_NOTSAMESITE_ORIGIN)}'`;
+ frame.src = `javascript:${encodeURIComponent(createScript(window.origin, get_host_info().HTTPS_NOTSAMESITE_ORIGIN))}`;
document.body.append(frame);
}, "Cross-Origin-Embedder-Policy and javascript: URLs");
</script>
diff --git a/html/cross-origin-embedder-policy/resources/blob-url-factory.html b/html/cross-origin-embedder-policy/resources/blob-url-factory.html
index 7d90aac..d203906 100644
--- a/html/cross-origin-embedder-policy/resources/blob-url-factory.html
+++ b/html/cross-origin-embedder-policy/resources/blob-url-factory.html
@@ -5,7 +5,7 @@
const id = query.get("id");
const variant = query.get("variant");
const parent = (variant === "subframe") ? "parent.parent" : "parent";
-const blob = new Blob([createScript(window.origin, query.get("crossOrigin"), parent, id)], { type: "text/html" });
+const blob = new Blob([`<script>${createScript(window.origin, query.get("crossOrigin"), parent, id)}<\/script>`], { type: "text/html" });
const blobURL = URL.createObjectURL(blob);
if (variant === "subframe") {
const frame = document.createElement("iframe");
diff --git a/html/cross-origin-embedder-policy/resources/script-factory.js b/html/cross-origin-embedder-policy/resources/script-factory.js
index ab7286e..ac7a1fd 100644
--- a/html/cross-origin-embedder-policy/resources/script-factory.js
+++ b/html/cross-origin-embedder-policy/resources/script-factory.js
@@ -1,8 +1,7 @@
// This creates a serialized <script> element that is useful for blob/data/srcdoc-style tests.
function createScript(sameOrigin, crossOrigin, type="parent", id="") {
- return `<script>
-const data = { id: "${id}",
+ return `const data = { id: "${id}",
opener: !!window.opener,
origin: window.origin,
sameOriginNoCORPSuccess: false,
@@ -27,6 +26,5 @@
} else {
window.${type}.postMessage(data, "*");
}
-});
-<\/script>`;
+});`;
}
diff --git a/html/cross-origin-embedder-policy/srcdoc.https.html b/html/cross-origin-embedder-policy/srcdoc.https.html
index 3fbba96..2937c13 100644
--- a/html/cross-origin-embedder-policy/srcdoc.https.html
+++ b/html/cross-origin-embedder-policy/srcdoc.https.html
@@ -15,7 +15,7 @@
}));
const frame = document.createElement("iframe");
t.add_cleanup(() => frame.remove());
- frame.srcdoc = createScript(window.origin, get_host_info().HTTPS_NOTSAMESITE_ORIGIN);
+ frame.srcdoc = `<script>${createScript(window.origin, get_host_info().HTTPS_NOTSAMESITE_ORIGIN)}<\/script>`;
document.body.append(frame);
}, "Cross-Origin-Embedder-Policy and srcdoc");
</script>
diff --git a/html/cross-origin-opener-policy/coep-blob-popup.https.html b/html/cross-origin-opener-policy/coep-blob-popup.https.html
index c317f6b..eb74bab 100644
--- a/html/cross-origin-opener-policy/coep-blob-popup.https.html
+++ b/html/cross-origin-opener-policy/coep-blob-popup.https.html
@@ -9,7 +9,7 @@
promise_test(t => {
const origins = get_host_info();
const id = `tut mir leid ${type}`;
- const blob = new Blob([createScript(origins.ORIGIN, origins.HTTPS_REMOTE_ORIGIN, "channel", id)], {type: "text/html"});
+ const blob = new Blob([`<script>${createScript(origins.ORIGIN, origins.HTTPS_REMOTE_ORIGIN, "channel", id)}<\/script>`], {type: "text/html"});
const blobURL = URL.createObjectURL(blob);
const bc = new BroadcastChannel(id);