| Index: third_party/WebKit/LayoutTests/http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-blocked.html
|
| diff --git a/third_party/WebKit/LayoutTests/http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-blocked.html b/third_party/WebKit/LayoutTests/http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-blocked.html
|
| index 57c6b084df9ba1dfae5a300b537e1f383ec8be8a..1afa679f2a960c821acd170add18a87100c4c46d 100644
|
| --- a/third_party/WebKit/LayoutTests/http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-blocked.html
|
| +++ b/third_party/WebKit/LayoutTests/http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-blocked.html
|
| @@ -1,28 +1,63 @@
|
| <!DOCTYPE html>
|
| -<html>
|
| -<head>
|
| -<meta http-equiv="Content-Security-Policy" content="connect-src http://127.0.0.1:8000">
|
| +<meta http-equiv="Content-Security-Policy" content="connect-src 'self'">
|
| +<script src="/resources/testharness.js"></script>
|
| +<script src="/resources/testharnessreport.js"></script>
|
| <script>
|
| -if (window.testRunner)
|
| - testRunner.dumpAsText();
|
| -</script>
|
| -</head>
|
| -<body>
|
| -<pre id="console"></pre>
|
| -<script>
|
| -function log(msg)
|
| -{
|
| - document.getElementById("console").appendChild(document.createTextNode(msg + "\n"));
|
| -}
|
| -
|
| -try {
|
| - var xhr = new XMLHttpRequest;
|
| - xhr.open("GET", "http://localhost:8000/xmlhttprequest/resources/get.txt", true);
|
| - log("Fail");
|
| -} catch(e) {
|
| - log("Pass");
|
| -}
|
| + async_test(t => {
|
| + var eventsSeen = 0;
|
| +
|
| + var xhr = new XMLHttpRequest;
|
| + xhr.open("GET", "http://example.test:8000/xmlhttprequest/resources/get.txt");
|
| + xhr.onload = t.unreached_func("Load should not fire.");
|
| + xhr.onerror = t.step_func(e => {
|
| + assert_equals(xhr.readyState, XMLHttpRequest.DONE);
|
| +
|
| + eventsSeen++;
|
| + if (eventsSeen == 2)
|
| + t.done();
|
| + });
|
| +
|
| + document.addEventListener("securitypolicyviolation", t.step_func(e => {
|
| + if (e.blockedURI != "http://example.test:8000/xmlhttprequest/resources/get.txt")
|
| + return;
|
| +
|
| + assert_equals(xhr.readyState, XMLHttpRequest.DONE);
|
| + assert_equals(e.violatedDirective, "connect-src");
|
| +
|
| + eventsSeen++;
|
| + if (eventsSeen == 2)
|
| + t.done();
|
| + }));
|
| +
|
| + xhr.send();
|
| + }, "XHR should fire onerror.");
|
| +
|
| + async_test(t => {
|
| + var eventsSeen = 0;
|
| +
|
| + var xhr = new XMLHttpRequest;
|
| + xhr.open("GET", "/resources/redirect.php?code=307&cors_allow_origin=*&url=http://example.test:8080/xmlhttprequest/resources/get.txt");
|
| + xhr.onload = t.unreached_func("Load should not fire.");
|
| + xhr.onerror = t.step_func(e => {
|
| + assert_equals(xhr.readyState, XMLHttpRequest.DONE);
|
| +
|
| + eventsSeen++;
|
| + if (eventsSeen == 2)
|
| + t.done();
|
| + });
|
| +
|
| + document.addEventListener("securitypolicyviolation", t.step_func(e => {
|
| + if (e.blockedURI != "http://example.test:8080")
|
| + return;
|
| +
|
| + assert_equals(xhr.readyState, XMLHttpRequest.DONE);
|
| + assert_equals(e.violatedDirective, "connect-src");
|
| +
|
| + eventsSeen++;
|
| + if (eventsSeen == 2)
|
| + t.done();
|
| + }));
|
|
|
| + xhr.send();
|
| + }, "XHR should fire onerror after a redirect.");
|
| </script>
|
| -</body>
|
| -</html>
|
|
|