Index: third_party/WebKit/LayoutTests/external/wpt/content-security-policy/securitypolicyviolation/upgrade-insecure-requests-reporting.https.html |
diff --git a/third_party/WebKit/LayoutTests/external/wpt/content-security-policy/securitypolicyviolation/upgrade-insecure-requests-reporting.https.html b/third_party/WebKit/LayoutTests/external/wpt/content-security-policy/securitypolicyviolation/upgrade-insecure-requests-reporting.https.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5a0bc7c8e7aa2e2c952dcdc0bd2f083934fc55ee |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/external/wpt/content-security-policy/securitypolicyviolation/upgrade-insecure-requests-reporting.https.html |
@@ -0,0 +1,60 @@ |
+<!doctype html> |
+<script src="/resources/testharness.js"></script> |
+<script src="/resources/testharnessreport.js"></script> |
+<script src="/upgrade-insecure-requests/support/testharness-helper.sub.js"></script> |
+<body></body> |
+<script> |
+ function waitForViolation(el, effective_directive) { |
+ return new Promise(resolve => { |
+ el.addEventListener('securitypolicyviolation', e => { |
+ if (e.effectiveDirective == effective_directive) |
+ resolve(e); |
+ }); |
+ }); |
+ } |
+ |
+ async_test(t => { |
+ var url = generateURL(Host.SAME_ORIGIN, Protocol.INSECURE, ResourceType.IMAGE).url; |
+ var i = document.createElement('img'); |
+ var loaded = false; |
+ var reported = false; |
+ waitForViolation(window, "img-src") |
+ .then(t.step_func(e => { |
+ reported = true; |
+ if (loaded) |
+ t.done(); |
+ })); |
+ i.onload = t.step_func(_ => { |
+ loaded = true; |
+ if (reported) |
+ t.done(); |
+ }); |
+ i.onerror = t.unreached_func(url + " should load successfully."); |
+ i.src = url; |
+ document.body.appendChild(i); |
+ }, "Upgraded image is reported"); |
+ |
+ async_test(t => { |
+ var url = generateURL(Host.SAME_ORIGIN, Protocol.INSECURE, ResourceType.FRAME).url; |
+ var i = document.createElement('iframe'); |
+ var loaded = false; |
+ var reported = false; |
+ waitForViolation(window, "frame-src") |
+ .then(t.step_func(e => { |
+ reported = true; |
+ if (loaded) |
+ t.done(); |
+ })); |
+ window.addEventListener("message", t.step_func(e => { |
+ if (e.source == i.contentWindow) { |
+ i.remove(); |
+ loaded = true; |
+ if (reported) |
+ t.done(); |
+ } |
+ })); |
+ i.src = url; |
+ document.body.appendChild(i); |
+ }, "Upgraded iframe is reported"); |
+</script> |
+</html> |