<!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();
  const result = await frame.execute(async () => {
    await simulateGesture();
    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>
