106 lines
4.3 KiB
HTML
106 lines
4.3 KiB
HTML
<!DOCTYPE html>
|
|
<meta charset="utf-8" />
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="/resources/testdriver.js"></script>
|
|
<script src="/resources/testdriver-vendor.js"></script>
|
|
<script src="/permissions-policy/resources/permissions-policy.js"></script>
|
|
<script src="/common/get-host-info.sub.js"></script>
|
|
<body></body>
|
|
<script type="module">
|
|
import { makeGetOptions } from "./support/helper.js";
|
|
const { HTTPS_REMOTE_ORIGIN } = get_host_info();
|
|
const get_same_origin_src =
|
|
"/permissions-policy/resources/digital-credentials-get.html";
|
|
const get_cross_origin_src = new URL(get_same_origin_src, HTTPS_REMOTE_ORIGIN).href;
|
|
|
|
const create_same_origin_src =
|
|
"/permissions-policy/resources/digital-credentials-create.html";
|
|
const create_cross_origin_src = new URL(create_same_origin_src, HTTPS_REMOTE_ORIGIN).href;
|
|
|
|
promise_test(async (test) => {
|
|
await test_driver.bless("user activation");
|
|
await promise_rejects_js(
|
|
test,
|
|
TypeError,
|
|
navigator.credentials.get(makeGetOptions([]))
|
|
);
|
|
}, "Permissions-Policy header digital-credentials-get=(self) allows the top-level document.");
|
|
|
|
promise_test(async (test) => {
|
|
await test_feature_availability({
|
|
feature_description: "Digital Credential API",
|
|
test,
|
|
src: get_same_origin_src,
|
|
expect_feature_available: expect_feature_available_default,
|
|
is_promise_test: true,
|
|
needs_focus: true,
|
|
});
|
|
}, "Permissions-Policy header digital-credentials-get=(self) allows same-origin iframes.");
|
|
|
|
promise_test(async (test) => {
|
|
await test_feature_availability({
|
|
feature_description: "Digital Credential API",
|
|
test,
|
|
src: get_cross_origin_src,
|
|
expect_feature_available: expect_feature_unavailable_default,
|
|
is_promise_test: true,
|
|
needs_focus: true,
|
|
});
|
|
}, "Permissions-Policy header digital-credentials-get=(self) disallows cross-origin iframes.");
|
|
|
|
promise_test(async (test) => {
|
|
await test_feature_availability({
|
|
feature_description: "Digital Credential API",
|
|
test,
|
|
src: get_cross_origin_src,
|
|
expect_feature_available: expect_feature_unavailable_default,
|
|
feature_name: "digital-credentials-get",
|
|
is_promise_test: true,
|
|
needs_focus: true,
|
|
});
|
|
}, "Permissions-Policy header explicitly set to digital-credentials-get=(self) cannot be overridden by allow attribute.");
|
|
|
|
promise_test(async (test) => {
|
|
await test_driver.bless("user activation");
|
|
await promise_rejects_js(
|
|
test,
|
|
TypeError,
|
|
navigator.credentials.create(makeCreateOptions([]))
|
|
);
|
|
}, "Permissions-Policy header digital-credentials-create=(self) allows the top-level document.");
|
|
|
|
promise_test(async (test) => {
|
|
await test_feature_availability({
|
|
feature_description: "Digital Credential API",
|
|
test,
|
|
src: create_same_origin_src,
|
|
expect_feature_available: expect_feature_available_default,
|
|
is_promise_test: true,
|
|
needs_focus: true,
|
|
});
|
|
}, "Permissions-Policy header digital-credentials-create=(self) allows same-origin iframes.");
|
|
|
|
promise_test(async (test) => {
|
|
await test_feature_availability({
|
|
feature_description: "Digital Credential API",
|
|
test,
|
|
src: create_cross_origin_src,
|
|
expect_feature_available: expect_feature_unavailable_default,
|
|
is_promise_test: true,
|
|
needs_focus: true,
|
|
});
|
|
}, "Permissions-Policy header digital-credentials-create=(self) disallows cross-origin iframes.");
|
|
|
|
promise_test(async (test) => {
|
|
await test_feature_availability({
|
|
feature_description: "Digital Credential API",
|
|
test,
|
|
src: create_cross_origin_src,
|
|
expect_feature_available: expect_feature_unavailable_default,
|
|
feature_name: "digital-credentials-create",
|
|
is_promise_test: true,
|
|
needs_focus: true,
|
|
});
|
|
}, "Permissions-Policy header explicitly set to digital-credentials-create=(self) cannot be overridden by allow attribute.");
|
|
</script>
|