| <!DOCTYPE html> | |
| <!-- | |
| Copyright 2023 The Cobalt Authors. All Rights Reserved. | |
| Licensed under the Apache License, Version 2.0 (the "License"); | |
| you may not use this file except in compliance with the License. | |
| You may obtain a copy of the License at | |
| http://www.apache.org/licenses/LICENSE-2.0 | |
| Unless required by applicable law or agreed to in writing, software | |
| distributed under the License is distributed on an "AS IS" BASIS, | |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| See the License for the specific language governing permissions and | |
| limitations under the License. | |
| --> | |
| <head> | |
| <title>Verify that service worker registration correctly follow CSP</title> | |
| <script src='black_box_js_test_utils.js'></script> | |
| </head> | |
| <body> | |
| <script> | |
| h5vcc.storage.clearServiceWorkerCache(); | |
| var window_onerror_count = 0; | |
| window.onerror = (message, filename, lineno, colno, error) => { | |
| ++window_onerror_count; | |
| // Note: Worker execution errors currently don't pass line or column | |
| // number in the error message. | |
| assertIncludes('SecurityError', message); | |
| assertIncludes('worker_csp_test.js', filename); | |
| } | |
| // This worker attempts to do an XHR request that is blocked by CSP. | |
| navigator.serviceWorker.register( | |
| 'worker_csp_test.js', { scope: './' }) | |
| .then(registration => { | |
| notReached(); | |
| }) | |
| .catch(error => { | |
| console.log(`Registration failed: ${error}`); | |
| assertIncludes('TypeError', error); | |
| }); | |
| window.setTimeout( | |
| () => { | |
| assertEqual(0, window_onerror_count); | |
| onEndTest(); | |
| }, 250); | |
| </script> | |
| </body> |