<!DOCTYPE html>
<meta name="timeout" content="long">
<script src="/common/utils.js"></script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../resources/utils.js"></script>
<script src="resources/utils.js"></script>

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

promise_test(async t => {
  // The key used for storing a test result in the server.
  const key = token();

  // Open the test runner in a popup - it will prerender itself, record the
  // test results, and send them back to this harness.
  const url =
    `resources/csp-script-src-inline-speculation-rules.html?key=${key}`;
  window.open(url, '_blank', 'noopener');

  // Wait until the test sends us the results.
  const result = await nextValueFromServer(key);

  assert_equals(result, "true", "initial document.prerendering");
}, 'Test if CSP script-src inline-speculation-rules permits inline speculationrules.');
</script>
