diff options
Diffstat (limited to 'testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read')
10 files changed, 207 insertions, 0 deletions
diff --git a/testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-disabled-by-feature-policy.tentative.https.sub.html b/testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-disabled-by-feature-policy.tentative.https.sub.html new file mode 100644 index 0000000000..7af2b8944e --- /dev/null +++ b/testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-disabled-by-feature-policy.tentative.https.sub.html @@ -0,0 +1,40 @@ +<!doctype html> +<body> +<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="/feature-policy/resources/featurepolicy.js"></script> +<script> +'use strict'; + +const same_origin_src = + '/feature-policy/resources/feature-policy-clipboard-read.html'; +const cross_origin_src = + 'https://{{domains[www]}}:{{ports[https][0]}}' + same_origin_src; + +promise_test(async t => { + await test_driver.set_permission({ name: 'clipboard-read' }, 'granted'); + return promise_rejects_dom(t, 'NotAllowedError', + navigator.clipboard.readText('test text')); +}, 'Feature-Policy header clipboard-read "none" disallows the top-level document.'); + +async_test(t => { + test_feature_availability( + 'navigator.clipboard.readText()', + t, + same_origin_src, + expect_feature_unavailable_default + ); +}, 'Feature-Policy header clipboard-read "none" disallows same-origin iframes.'); + +async_test(t => { + test_feature_availability( + 'navigator.clipboard.readText()', + t, + cross_origin_src, + expect_feature_unavailable_default + ); +}, 'Feature-Policy header clipboard-read "none" disallows cross-origin iframes.'); +</script> +</body> diff --git a/testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-disabled-by-feature-policy.tentative.https.sub.html.headers b/testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-disabled-by-feature-policy.tentative.https.sub.html.headers new file mode 100644 index 0000000000..ee9a2b6fb6 --- /dev/null +++ b/testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-disabled-by-feature-policy.tentative.https.sub.html.headers @@ -0,0 +1 @@ +Feature-Policy: clipboard-read 'none' diff --git a/testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-enabled-by-feature-policy-attribute-cross-origin-tentative.https.sub.html b/testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-enabled-by-feature-policy-attribute-cross-origin-tentative.https.sub.html new file mode 100644 index 0000000000..367d033d0f --- /dev/null +++ b/testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-enabled-by-feature-policy-attribute-cross-origin-tentative.https.sub.html @@ -0,0 +1,31 @@ +<!doctype html> +<body>Body needed for test_driver.click()</body> +<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="/feature-policy/resources/featurepolicy.js"></script> +<script src="../../resources/user-activation.js"></script> +<script> +'use strict'; + +const same_origin_src = + '/feature-policy/resources/feature-policy-clipboard-read.html'; +const cross_origin_src = + 'https://{{domains[www]}}:{{ports[https][0]}}' + same_origin_src; + +// TODO(https://github.com/whatwg/html/issues/5493, https://crbug.com/1074482): +// In Chrome and Firefox, Cross-origin focus requires user gesture. In Chrome +// only, cross-origin focus is asynchronous. Implement WPT support for +// cross-origin focus. +promise_test(async t => { + await waitForUserActivation(); + test_feature_availability( + 'navigator.clipboard.readText()', + t, + cross_origin_src, + expect_feature_available_default, + 'clipboard-read' + ); +}, 'Feature policy "clipboard-read" can be enabled in cross-origin iframe using allow="clipboard-read" attribute'); +</script> diff --git a/testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-enabled-by-feature-policy-attribute-tentative.https.sub.html b/testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-enabled-by-feature-policy-attribute-tentative.https.sub.html new file mode 100644 index 0000000000..e812854b4c --- /dev/null +++ b/testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-enabled-by-feature-policy-attribute-tentative.https.sub.html @@ -0,0 +1,25 @@ +<!doctype html> +<body>Body needed for test_driver.click()</body> +<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="/feature-policy/resources/featurepolicy.js"></script> +<script src="../../resources/user-activation.js"></script> +<script> +'use strict'; + +const same_origin_src = + '/feature-policy/resources/feature-policy-clipboard-read.html'; + +promise_test(async t => { + await waitForUserActivation(); + test_feature_availability( + 'navigator.clipboard.readText()', + t, + same_origin_src, + expect_feature_available_default, + 'clipboard-read' + ); +}, 'Feature policy "clipboard-read" can be enabled in same-origin iframe using allow="clipboard-read" attribute'); +</script> diff --git a/testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-enabled-by-feature-policy-cross-origin-tentative.https.sub.html b/testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-enabled-by-feature-policy-cross-origin-tentative.https.sub.html new file mode 100644 index 0000000000..c371ea3b41 --- /dev/null +++ b/testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-enabled-by-feature-policy-cross-origin-tentative.https.sub.html @@ -0,0 +1,30 @@ +<!doctype html> +<body>Body needed for test_driver.click()</body> +<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="/feature-policy/resources/featurepolicy.js"></script> +<script src="../../resources/user-activation.js"></script> +<script> +'use strict'; + +const same_origin_src = + '/feature-policy/resources/feature-policy-clipboard-read.html'; +const cross_origin_src = + 'https://{{domains[www]}}:{{ports[https][0]}}' + same_origin_src; + +// TODO(https://github.com/whatwg/html/issues/5493, https://crbug.com/1074482): +// In Chrome and Firefox, Cross-origin focus requires user gesture. In Chrome +// only, cross-origin focus is asynchronous. Implement WPT support for +// cross-origin focus. +promise_test(async t => { + await waitForUserActivation(); + test_feature_availability( + 'navigator.clipboard.readText()', + t, + cross_origin_src, + expect_feature_available_default + ); +}, 'Feature-Policy header clipboard-read "*" allows cross-origin iframes.'); +</script> diff --git a/testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-enabled-by-feature-policy-cross-origin.tentative.https.sub.html.headers b/testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-enabled-by-feature-policy-cross-origin.tentative.https.sub.html.headers new file mode 100644 index 0000000000..a147e2a64f --- /dev/null +++ b/testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-enabled-by-feature-policy-cross-origin.tentative.https.sub.html.headers @@ -0,0 +1 @@ +Feature-Policy: clipboard-read * diff --git a/testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-enabled-by-feature-policy.tentative.https.sub.html b/testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-enabled-by-feature-policy.tentative.https.sub.html new file mode 100644 index 0000000000..552183cc67 --- /dev/null +++ b/testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-enabled-by-feature-policy.tentative.https.sub.html @@ -0,0 +1,32 @@ +<!doctype html> +<body>Body needed for test_driver.click()</body> +<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="/feature-policy/resources/featurepolicy.js"></script> +<script src="../../resources/user-activation.js"></script> +<script> +'use strict'; + +const same_origin_src = + '/feature-policy/resources/feature-policy-clipboard-read.html'; +const cross_origin_src = + 'https://{{domains[www]}}:{{ports[https][0]}}' + same_origin_src; + +promise_test(async t => { + await test_driver.set_permission({ name: 'clipboard-read' }, 'granted'); + await waitForUserActivation(); + await navigator.clipboard.readText('test text'); +}, 'Feature-Policy header clipboard-read "*" allows the top-level document.'); + +promise_test(async t => { + await waitForUserActivation(); + test_feature_availability( + 'navigator.clipboard.readText()', + t, + same_origin_src, + expect_feature_available_default + ); +}, 'Feature-Policy header clipboard-read "*" allows same-origin iframes.'); +</script> diff --git a/testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-enabled-by-feature-policy.tentative.https.sub.html.headers b/testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-enabled-by-feature-policy.tentative.https.sub.html.headers new file mode 100644 index 0000000000..a147e2a64f --- /dev/null +++ b/testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-enabled-by-feature-policy.tentative.https.sub.html.headers @@ -0,0 +1 @@ +Feature-Policy: clipboard-read * diff --git a/testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-enabled-on-self-origin-by-feature-policy.tentative.https.sub.html b/testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-enabled-on-self-origin-by-feature-policy.tentative.https.sub.html new file mode 100644 index 0000000000..17dc3628a7 --- /dev/null +++ b/testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-enabled-on-self-origin-by-feature-policy.tentative.https.sub.html @@ -0,0 +1,45 @@ +<!doctype html> +<body>Body needed for test_driver.click()</body> +<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="/feature-policy/resources/featurepolicy.js"></script> +<script src="../../resources/user-activation.js"></script> +<script> +'use strict'; + +const same_origin_src = + '/feature-policy/resources/feature-policy-clipboard-read.html'; +const cross_origin_src = + 'https://{{domains[www]}}:{{ports[https][0]}}' + same_origin_src; + +promise_test(async t => { + await test_driver.set_permission({ name: 'clipboard-read' }, 'granted'); + await waitForUserActivation(); + await navigator.clipboard.readText('test text'); +}, 'Feature-Policy header clipboard-read "self" allows the top-level document.'); + +promise_test(async t => { + await waitForUserActivation(); + test_feature_availability( + 'navigator.clipboard.readText()', + t, + same_origin_src, + expect_feature_available_default + ); +}, 'Feature-Policy header clipboard-read "self" allows same-origin iframes.'); + +// TODO(https://github.com/whatwg/html/issues/5493, https://crbug.com/1074482): +// In Chrome and Firefox, Cross-origin focus requires user gesture. In Chrome +// only, cross-origin focus is asynchronous. Implement WPT support for +// cross-origin focus. +promise_test(async t => { + test_feature_availability( + 'navigator.clipboard.readText()', + t, + cross_origin_src, + expect_feature_unavailable_default + ); +}, 'Feature-Policy header clipboard-read "self" disallows cross-origin iframes.'); +</script> diff --git a/testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-enabled-on-self-origin-by-feature-policy.tentative.https.sub.html.headers b/testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-enabled-on-self-origin-by-feature-policy.tentative.https.sub.html.headers new file mode 100644 index 0000000000..752d7faff4 --- /dev/null +++ b/testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-enabled-on-self-origin-by-feature-policy.tentative.https.sub.html.headers @@ -0,0 +1 @@ +Feature-Policy: clipboard-read 'self' |