diff options
Diffstat (limited to 'testing/web-platform/tests/fenced-frame/mediaDevices-setCaptureHandle.https.html')
-rw-r--r-- | testing/web-platform/tests/fenced-frame/mediaDevices-setCaptureHandle.https.html | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/testing/web-platform/tests/fenced-frame/mediaDevices-setCaptureHandle.https.html b/testing/web-platform/tests/fenced-frame/mediaDevices-setCaptureHandle.https.html new file mode 100644 index 0000000000..fcc95a401f --- /dev/null +++ b/testing/web-platform/tests/fenced-frame/mediaDevices-setCaptureHandle.https.html @@ -0,0 +1,32 @@ +<!DOCTYPE html> +<title>Test MediaDevice navigator.mediaDevices.setCaptureHandleConfig()</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/common/utils.js"></script> +<script src="/common/dispatcher/dispatcher.js"></script> +<script src="resources/utils.js"></script> + +<body> +<script> +promise_test(async () => { + const frame = attachFencedFrameContext(); + await frame.execute(async () => { + // If capture handle is set inside the fenced frame, it should fail because + // it should not be the top-level browsing context. + // https://w3c.github.io/mediacapture-handle/identity/index.html#set-capture-handle-config + try { + navigator.mediaDevices.setCaptureHandleConfig({ + handle: 'dummyhandle', + permittedOrigins: ["*"], + }); + throw 'The setCaptureHandleConfig request should not succeed.'; + } catch (e) { + assert_equals(e.name, 'InvalidStateError'); + assert_equals(e.message, + "Failed to execute 'setCaptureHandleConfig' on 'MediaDevices': " + + 'Can only be called from the top-level document.'); + } + }); +}, 'navigator.mediaDevices.setCaptureHandleConfig'); +</script> +</body> |