-
Notifications
You must be signed in to change notification settings - Fork 3.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added srcdoc iframe inheritance test
Added a test for behavior around srcdoc iframes CSP inheritance. This tests the current specified behavior of always inheriting the parent CSP for srcdoc iframes. Bug: 694525 Change-Id: I049ef8c5a9e75c052dc2767ea2d523f54cca497f Reviewed-on: https://chromium-review.googlesource.com/c/1350889 Reviewed-by: Mike West <[email protected]> Commit-Queue: Andy Paicu <[email protected]> Cr-Commit-Position: refs/heads/master@{#611638}
- Loading branch information
1 parent
7970633
commit ea03863
Showing
2 changed files
with
53 additions
and
0 deletions.
There are no files selected for viewing
34 changes: 34 additions & 0 deletions
34
content-security-policy/inheritance/iframe-srcdoc-inheritance.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
<!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> |
19 changes: 19 additions & 0 deletions
19
content-security-policy/inheritance/support/srcdoc-child-frame.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
<head> | ||
<meta http-equiv="Content-Security-Policy" content="img-src 'none'"> | ||
</head> | ||
<body> | ||
<script> | ||
var i = document.createElement('iframe'); | ||
i.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", "*")'/>`; | ||
i.id = "srcdoc-frame"; | ||
document.body.appendChild(i); | ||
</script> | ||
</body> |