mirror of
https://github.com/servo/servo.git
synced 2025-10-04 02:29:12 +01:00
44 lines
1.5 KiB
HTML
44 lines
1.5 KiB
HTML
<!doctype html>
|
|
<meta charset=utf-8>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="/common/get-host-info.sub.js"></script>
|
|
<script src="/common/utils.js"></script>
|
|
<div id=log></div>
|
|
<script>
|
|
const origins = get_host_info();
|
|
[
|
|
{
|
|
"origin": origins.HTTPS_ORIGIN,
|
|
"crossOrigin": origins.HTTPS_REMOTE_ORIGIN
|
|
},
|
|
{
|
|
"origin": origins.HTTPS_REMOTE_ORIGIN,
|
|
"crossOrigin": origins.HTTPS_NOTSAMESITE_ORIGIN
|
|
},
|
|
{
|
|
"origin": origins.HTTPS_NOTSAMESITE_ORIGIN,
|
|
"crossOrigin": origins.HTTPS_ORIGIN
|
|
}
|
|
].forEach(({ origin, crossOrigin }) => {
|
|
["subframe", "navigate"].forEach(variant => {
|
|
async_test(t => {
|
|
const id = token();
|
|
const frame = document.createElement("iframe");
|
|
t.add_cleanup(() => { frame.remove(); });
|
|
const path = new URL("resources/blob-url-factory.html", window.location).pathname;
|
|
frame.src = `${origin}${path}?id=${id}&variant=${variant}&crossOrigin=${crossOrigin}`;
|
|
window.addEventListener("message", t.step_func(({ data }) => {
|
|
if (data.id !== id) {
|
|
return;
|
|
}
|
|
assert_equals(data.origin, origin);
|
|
assert_true(data.sameOriginNoCORPSuccess, "Same-origin without CORP did not succeed");
|
|
assert_true(data.crossOriginNoCORPFailure, "Cross-origin without CORP did not fail");
|
|
t.done();
|
|
}));
|
|
document.body.append(frame);
|
|
}, `Cross-Origin-Embedder-Policy and blob: URL from ${origin} in subframe via ${variant}`);
|
|
});
|
|
});
|
|
</script>
|