Index: third_party/WebKit/LayoutTests/external/wpt/content-security-policy/securitypolicyviolation/style-sample-no-opt-in.html |
diff --git a/third_party/WebKit/LayoutTests/external/wpt/content-security-policy/securitypolicyviolation/style-sample-no-opt-in.html b/third_party/WebKit/LayoutTests/external/wpt/content-security-policy/securitypolicyviolation/style-sample-no-opt-in.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..05caaaa41464c96e2360711f00b747cfb36269ce |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/external/wpt/content-security-policy/securitypolicyviolation/style-sample-no-opt-in.html |
@@ -0,0 +1,39 @@ |
+<!doctype html> |
+<meta http-equiv="Content-Security-Policy" content="style-src 'nonce-abc'"> |
+<script nonce="abc" src="/resources/testharness.js"></script> |
+<script nonce="abc" src="/resources/testharnessreport.js"></script> |
+<body> |
+<script nonce="abc"> |
+ function waitForViolation(el) { |
+ return new Promise(resolve => { |
+ el.addEventListener('securitypolicyviolation', e => resolve(e)); |
+ }); |
+ } |
+ |
+ async_test(t => { |
+ var s = document.createElement('style'); |
+ s.innerText = "p { omg: yay !important; }"; |
+ |
+ waitForViolation(s) |
+ .then(t.step_func_done(e => { |
+ assert_equals(e.blockedURI, "inline"); |
+ assert_equals(e.sample, ""); |
+ })); |
+ |
+ document.head.append(s); |
+ }, "Inline style blocks should not have a sample."); |
+ |
+ async_test(t => { |
+ var p = document.createElement('p'); |
+ p.setAttribute("style", "omg: yay !important;"); |
+ p.innerText = "Yay!"; |
+ |
+ waitForViolation(p) |
+ .then(t.step_func_done(e => { |
+ assert_equals(e.blockedURI, "inline"); |
+ assert_equals(e.sample, ""); |
+ })); |
+ |
+ document.head.append(p); |
+ }, "Inline style attributes should not have a sample."); |
+</script> |