connect-src-websocket-allowed.sub.html (1437B)
1 <!DOCTYPE html> 2 <html> 3 4 <head> 5 <!-- Programmatically converted from a WebKit Reftest, please forgive resulting idiosyncraciws.--> 6 <meta http-equiv="Content-Security-Policy" content="connect-src 'self' ws://{{domains[www1]}}:{{ports[ws][0]}}/echo; script-src 'self' 'unsafe-inline';"> 7 <title>connect-src-websocket-blocked</title> 8 <script src="/resources/testharness.js"></script> 9 <script src="/resources/testharnessreport.js"></script> 10 <script src='../support/logTest.sub.js?logs=["allowed"]'></script> 11 <script src="../support/alertAssert.sub.js?alerts=[]"></script> 12 </head> 13 14 <body> 15 <script> 16 window.addEventListener('securitypolicyviolation', function(e) { 17 log("violated-directive=" + e.violatedDirective); 18 }); 19 20 try { 21 var ws = new WebSocket("ws://{{domains[www1]}}:{{ports[ws][0]}}/echo"); 22 23 // Not all browsers fail the connection in a synchronous fashion. 24 if (ws.readyState == WebSocket.CONNECTING) { 25 setTimeout( function() { 26 ws.readyState != WebSocket.CLOSED ? log("allowed") : log("blocked"); 27 }, 1000); 28 } else if (ws.readyState == WebSocket.CLOSED) { 29 log("blocked"); 30 } else { 31 log("allowed"); 32 } 33 } catch (e) { 34 log("blocked"); 35 } 36 37 </script> 38 <div id="log"></div> 39 </body> 40 41 </html>