| <!DOCTYPE html> |
| <title>Test WebUSB navigator.usb.requestDevice()</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 () => { |
| // Request USB access inside the fenced frame. It should fail. |
| // https://github.com/shivanigithub/fenced-frame#security-considerations. |
| try { |
| await navigator.usb.requestDevice({ filters: [{ vendorId: 0}] }); |
| throw 'The USB request should not succeed.'; |
| } catch (e) { |
| assert_equals(e.name, 'SecurityError'); |
| assert_equals(e.message, |
| "Failed to execute 'requestDevice' on 'USB': " + |
| 'Access to the feature "usb" is disallowed by permissions policy.', |
| 'Fenced frame has the right error for usb.requestDevice.'); |
| } |
| }); |
| }, 'navigator.usb.requestDevice'); |
| </script> |
| </body> |