<!DOCTYPE html>
<body>
<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="/feature-policy/resources/featurepolicy.js"></script>
<script>
  "use strict";

  const same_origin_src =
    "/feature-policy/resources/feature-policy-screen-wakelock.html";
  const cross_origin_src =
    "https://{{domains[www]}}:{{ports[https][0]}}" + same_origin_src;

  promise_test(async t => {
    await test_driver.set_permission(
        { name: 'screen-wake-lock' }, 'granted', false);
    await navigator.wakeLock.request('screen').then(lock => lock.release());
  }, 'Feature-Policy header {"screen-wake-lock" : ["*"]} allows the top-level document.');

  async_test(t => {
    test_feature_availability(
      'navigator.wakeLock.request("screen")',
      t,
      same_origin_src,
      expect_feature_available_default
    );
  }, 'Feature-Policy header {"screen-wake-lock" : ["*"]} allows same-origin iframes.');

  // Set allow="screen-wake-lock" on iframe element to delegate
  // 'screen-wake-lock' to cross origin subframe.
  async_test(t => {
    test_feature_availability(
      'navigator.wakeLock.request("screen")',
      t,
      cross_origin_src,
      expect_feature_available_default,
      'screen-wake-lock'
    );
  }, 'Feature-Policy header {"screen-wake-lock" : ["*"]} allows cross-origin iframes.');

</script>
</body>
