<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<!-- Test the 'connect-src' directive on shared workers -->
<meta http-equiv="content-security-policy" content="connect-src 'self'">
<script>
  promise_test(async () => {
    // Shared workers do not inherit CSP.
    await fetch_tests_from_worker(
      new SharedWorker("./support/connect-src-allow.sub.js"));

    // Shared workers honor CSP received in their response headers.
    await fetch_tests_from_worker(
      new SharedWorker(
        "./support/connect-src-self.sub.js?id={{$id1:uuid()}}" +
          "&test-name=connect-src 'self'" +
          "&pipe=sub|header(Content-Security-Policy," +
          "connect-src 'self' ; report-uri " +
          "/reporting/resources/report.py?op=put%26reportID={{$id1}})"));

    // Also test that connect-src falls back to default-src.
    await fetch_tests_from_worker(
      new SharedWorker(
        "./support/connect-src-self.sub.js?id={{$id2:uuid()}}" +
          "&test-name=default-src 'self'" +
          "&pipe=sub|header(Content-Security-Policy," +
          "default-src 'self' ; report-uri " +
          "/reporting/resources/report.py?op=put%26reportID={{$id2}})"));
  });
</script>
