| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <!-- Programmatically converted from a WebKit Reftest, please forgive resulting idiosyncracies.--> | |
| <title>scriptnonce-basic-blocked</title> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <script nonce='noncynonce'> | |
| function log(msg) { | |
| test(function() { | |
| assert_unreached(msg) | |
| }); | |
| } | |
| </script> | |
| <script nonce='noncynonce'> | |
| var t_alert = async_test('Expecting alerts: ["PASS (1/2)","PASS (2/2)"]'); | |
| var expected_alerts = ["PASS (1/2)", "PASS (2/2)"]; | |
| function alert_assert(msg) { | |
| t_alert.step(function() { | |
| if (msg.match(/^FAIL/i)) { | |
| assert_unreached(msg); | |
| t_alert.done(); | |
| } | |
| for (var i = 0; i < expected_alerts.length; i++) { | |
| if (expected_alerts[i] == msg) { | |
| assert_true(expected_alerts[i] == msg); | |
| expected_alerts.splice(i, 1); | |
| if (expected_alerts.length == 0) { | |
| t_alert.done(); | |
| } | |
| return; | |
| } | |
| } | |
| assert_unreached('unexpected alert: ' + msg); | |
| t_log.done(); | |
| }); | |
| } | |
| </script> | |
| <!-- enforcing policy: | |
| script-src 'self' 'unsafe-inline' 'nonce-noncynonce'; connect-src 'self'; | |
| --> | |
| <script nonce="noncynonce"> | |
| alert_assert('PASS (1/2)'); | |
| </script> | |
| <script nonce=" noncynonce "> | |
| alert_assert('PASS (2/2)'); | |
| </script> | |
| <script nonce="noncynonce noncynonce"> | |
| alert_assert('FAIL (1/3)'); | |
| </script> | |
| <script> | |
| alert_assert('FAIL (2/3)'); | |
| </script> | |
| <script nonce="noncynonceno?"> | |
| alert_assert('FAIL (3/3)'); | |
| </script> | |
| </head> | |
| <body> | |
| <p> | |
| This tests the effect of a valid script-nonce value. It passes if a CSP violation is generated, and the two PASS alerts are executed. | |
| </p> | |
| <div id="log"></div> | |
| <script async defer src="../support/checkReport.sub.js?reportExists=true&reportField=violated-directive&reportValue=script-src%20'nonce-noncynonce'"></script> | |
| </body> | |
| </html> |