| <!DOCTYPE html> |
| <head> |
| <meta http-equiv="Content-Security-Policy" content="img-src 'self'"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| </head> |
| <body> |
| <script> |
| var t1 = async_test("First image should be blocked"); |
| var t2 = async_test("Second image should be blocked"); |
| window.onmessage = t1.step_func_done(function(e) { |
| if (e.data == "img blocked") { |
| frames[0].frames[0].frameElement.srcdoc = |
| `<script> |
| window.addEventListener('securitypolicyviolation', function(e) { |
| if (e.violatedDirective == 'img-src') { |
| top.postMessage('img blocked', '*'); |
| } |
| }) |
| </scr` + `ipt> |
| <img src='/content-security-policy/support/fail.png' |
| onload='top.postMessage("img loaded", "*")'/>`; |
| window.onmessage = t2.step_func_done(function(e) { |
| if (e.data != "img blocked") |
| assert_true(false, "The second image should have been blocked"); |
| }); |
| } else { |
| assert_true(false, "The first image should have been blocked"); |
| } |
| }); |
| </script> |
| <iframe src="support/srcdoc-child-frame.html"></iframe> |
| </body> |
| </html> |