<!DOCTYPE html>
<title>Prerendering cannot invoke the Screen Capture API</title>
<meta name="variant" content="?target_hint=_self">
<meta name="variant" content="?target_hint=_blank">
<meta name="timeout" content="long">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/utils.js"></script>
<script src="../resources/utils.js"></script>
<script src="resources/utils.js"></script>

<body>
<script>
setup(() => assertSpeculationRulesIsSupported());

promise_test(async t => {
  const uid = token();
  const bc = new PrerenderChannel('prerender-channel', uid);

  const gotMessage = new Promise(resolve => {
    bc.addEventListener('message', e => {
      resolve(e.data);
    }, {
      once: true
    });
  });

  // Start prerendering a page that attempts to invoke the Screen Capture API.
  // This API is activated-gated so it's expected to fail:
  // https://wicg.github.io/nav-speculation/prerendering.html#implicitly-restricted
  const rule_extras = {'target_hint': getTargetHint()};
  startPrerendering(
      `resources/screen-capture.https.html?uid=${uid}`, rule_extras);
  const result = await gotMessage;
  assert_equals(result, 'InvalidStateError');
  bc.close();
}, `prerendering pages should not be able to invoke the Screen Capture API`);
</script>
