| <!DOCTYPE html> |
| <title>Test of Web Bluetooth API</title> |
| <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="resources/utils.js"></script> |
| <script src="/common/utils.js"></script> |
| <script src="/common/dispatcher/dispatcher.js"></script> |
| <script src="/resources/testdriver-actions.js"></script> |
| |
| <body> |
| |
| <script> |
| promise_test(async () => { |
| const frame = attachFencedFrameContext(); |
| await multiClick(10, 10, frame.element); |
| const result = await frame.execute(async () => { |
| try { |
| await navigator.hid.getDevices(); |
| return 'HID getDevice succeeded'; |
| } catch(e) { |
| if (e.name == 'SecurityError' && |
| e.message.includes( |
| 'Access to the feature "hid" is disallowed by permissions policy.')) { |
| return 'HID getDevice failed'; |
| } else { |
| return `HID getDevice failed with unknown error - ${e.name}: ${e.message}`; |
| } |
| } |
| }); |
| assert_equals(result, 'HID getDevice failed', |
| 'HID getDevice must fail in a fenced frame.'); |
| }, 'HID getDevice must fail in a fenced frame'); |
| </script> |
| |
| </body> |