<!DOCTYPE html>
<title>Permission API in fenced frames should always return denied</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>

<body>
  <script>
    // See https://cs.chromium.org/chromium/src/third_party/blink/renderer/modules/permissions/permission_descriptor.idl for valid permission names.
    standard_permission_list =
      ['geolocation',
        'notifications',
        'push',
        'midi',
        'camera',
        'microphone',
        'background-fetch',
        'background-sync',
        'persistent-storage',
        'ambient-light-sensor',
        'accelerometer',
        'gyroscope',
        'magnetometer',
        'screen-wake-lock',
        'nfc',
        'display-capture'];

    standard_permission_list.forEach(function (permission_name) {
      promise_test(async t => {
        const permission_key = token();

        attachFencedFrame(generateURL(
          'resources/permission-api-denied-inner.html',
          [permission_key, permission_name]));
        const actual_result = await nextValueFromServer(permission_key);
        assert_equals(
          actual_result, 'result: denied',
          'permission API should return denied for ' + permission_name +
          ' in fenced frames.');
      });
    });
  </script>
</body>
