<!DOCTYPE html>
<title>Verify that Compute Pressure API from a fenced frame is blocked</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({
    headers: [["Permissions-Policy", "compute-pressure=*"]]
  });
  const result = await frame.execute(async () => {
    try {
      const observer = new PressureObserver(() => {});
      await observer.observe('cpu');
      return 'observation succeeded';
    } catch (e) {
      if (e.name == 'NotAllowedError' &&
          e.message.includes(`Access to the feature "compute pressure" is `
          + "disallowed by permissions policy.")) {
        return 'observation failed';
      } else {
        return `observation failed with unknown error - ${e.name}: ${e.message}`;
      }
    }
  });
  assert_equals(result, 'observation failed',
                'PressureObserver.observe() fails in a fenced frame.');
}, 'PressureObserver.observe() fails in a fenced frame.');
</script>
</body>
