summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/content-security-policy/inside-worker/serviceworker-script-src.https.sub.html
blob: 5631786cc59e11e8f2c61686188ae6917ff91609 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<!-- Test the 'script-src' directive on service workers -->
<meta http-equiv="content-security-policy" content="script-src 'self' 'nonce-a' blob: filesystem:">
<script nonce="a">
  [ // Service worker do not inherit CSP.
    "./support/script-src-allow.sub.js",

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

    // Also check that script-src falls back to default-src.
    "./support/script-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}})"]
  .forEach(url => {
    promise_test(async t => {
      let r = await navigator.serviceWorker.register(
        url, {scope: "./support/blank.html"});
      t.add_cleanup(_ => r.unregister());
      let sw = r.active || r.installing || r.waiting;
      await fetch_tests_from_worker(sw);
    });
  });
</script>