| <!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> |