34 lines
1.2 KiB
HTML
34 lines
1.2 KiB
HTML
<!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>
|