| <!DOCTYPE html> |
| <html> |
| |
| <head> |
| <!-- Programmatically converted from a WebKit Reftest, please forgive resulting idiosyncracies.--> |
| <meta http-equiv="Content-Security-Policy" content="connect-src 'self' http://{{host}}:{{ports[http][0]}}; script-src 'self' 'unsafe-inline';"> |
| <title>connect-src-eventsource-allowed</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src='../support/logTest.sub.js?logs=["allowed"]'></script> |
| <script src="../support/alertAssert.sub.js?alerts=[]"></script> |
| </head> |
| |
| <body> |
| <script> |
| window.addEventListener('securitypolicyviolation', function(e) { |
| log("allowed"); |
| }); |
| |
| try { |
| var es = new EventSource("http://{{domains[www1]}}:{{ports[http][0]}}/content-security-policy/connect-src/resources/simple-event-stream"); |
| // Firefox and Chrome don't throw an exception and takes some time to close async |
| if (es.readyState == EventSource.CONNECTING) { |
| setTimeout( function() { |
| es.readyState != EventSource.CLOSED ? log("allowed") : log("blocked"); |
| }, 1000); |
| } else if (es.readyState == EventSource.CLOSED) { |
| log("blocked"); |
| } else { |
| log("allowed"); |
| } |
| } catch (e) { |
| log("blocked"); |
| } |
| </script> |
| <div id="log"></div> |
| </body> |
| |
| </html> |