| <!DOCTYPE HTML> |
| <html> |
| <head> |
| <title>default-src should cascade to img-src directive</title> |
| <meta http-equiv="Content-Security-Policy" content="default-src 'self' 'unsafe-inline';"> |
| <script src='/resources/testharness.js'></script> |
| <script src='/resources/testharnessreport.js'></script> |
| <script src='../support/siblingPath.js'></script> |
| </head> |
| <body> |
| <h1>default-src should cascade to img-src directive</h1> |
| <div id='log'></div> |
| |
| <script> |
| var imgsrc = async_test("Verify cascading of default-src to img-src policy"); |
| var onerrorFired = false; |
| var t_spv = async_test("Should fire violation events for every failed violation"); |
| |
| window.addEventListener("securitypolicyviolation", t_spv.step_func_done(function(e) { |
| assert_equals(e.violatedDirective, "img-src"); |
| })); |
| </script> |
| |
| <img id='imgfail' src='' |
| onload='imgsrc.step(function() { assert_unreached("Image load was not blocked."); });' |
| onerror='onerrorFired = true;'> |
| <img src='../support/pass.png' |
| onload='imgsrc.step(function() { assert_true(true, "Image load was blocked."); });'> |
| |
| <script> |
| document.getElementById('imgfail').src = buildSiblingPath('www1', '../support/fail.png'); |
| onload = function() { |
| imgsrc.step(function() { assert_true(onerrorFired, "onerror handler for blocked img didn't fire");}); |
| imgsrc.done(); |
| } |
| </script> |
| </body> |
| </html> |