<!DOCTYPE html>
<meta name="timeout" content="long">
<meta name="variant" content="?target_hint=_self">
<meta name="variant" content="?target_hint=_blank">
<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}&target_hint=${getTargetHint()}`;
  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>
