blob: 361739f283ecaca46e809d9c94adb6a8e26ed3b7 [file] [log] [blame]
// META: script=/common/get-host-info.sub.js
// META: script=/common/utils.js
// META: script=/common/dispatcher/dispatcher.js
// META: script=./resources/common.js
const http = get_host_info().HTTP_ORIGIN;
const https = get_host_info().HTTPS_ORIGIN;
let crossOriginIsolatedTest = (
description,
origin ,
headers,
expect_crossOriginIsolated) => {
promise_test_parallel(async test => {
const w_token = token();
const w_url = origin + executor_path + headers + `&uuid=${w_token}`;
const w = window.open(w_url)
add_completion_callback(() => w.close());
const this_token = token();
send(w_token, `
if (window.crossOriginIsolated)
send("${this_token}", "crossOriginIsolated");
else
send("${this_token}", "not isolated")
`);
assert_equals(await receive(this_token), expect_crossOriginIsolated);
}, description);
}
crossOriginIsolatedTest("Main crossOriginIsolated case:",
https, coop_same_origin +
coep_credentialless, "crossOriginIsolated");
crossOriginIsolatedTest("Missing HTTPS:",
http, coop_same_origin +
coep_credentialless, "not isolated");
crossOriginIsolatedTest("Missing COOP:same-origin:",
https, coep_credentialless, "not isolated");
crossOriginIsolatedTest("Report-only:",
https, coop_same_origin +
coep_report_only_credentialless, "not isolated");
crossOriginIsolatedTest("Report-only + enforced:",
https, coop_same_origin +
coep_credentialless +
coep_report_only_credentialless, "crossOriginIsolated");