window_websocket_wss.html (2089B)
1 <html><body> 2 Creating WebSocket 3 <iframe id="frame" sandbox="allow-scripts"></iframe> 4 <script type="application/javascript"> 5 6 function cleanup() { 7 window.document.getElementById("frame").removeAttribute("src"); 8 window.document.getElementById("frame").remove(); 9 } 10 11 onmessage = function(e) { 12 cleanup(); 13 window.opener.postMessage(e.data, '*'); 14 } 15 16 // Mixed content blocker will prevent loading iframes via http, so in that case pass back the error 17 window.document.getElementById("frame").onerror = function() { 18 cleanup(); 19 window.opener.postMessage("Error - iframe not loaded", '*'); 20 } 21 22 // Load one of the iframe variants? 23 if (location.search == '?https_iframe_wss') { 24 window.document.getElementById("frame").src = "https://example.com/tests/dom/websocket/tests/iframe_websocket_wss.html"; 25 } else if (location.search == '?https_iframe_ws') { 26 window.document.getElementById("frame").src = "https://example.com/tests/dom/websocket/tests/iframe_websocket_wss.html?insecure"; 27 } else if (location.search == '?http_iframe_wss' || location.search == '?http_iframe_ws') { 28 let iFrameUrl = "http://example.com/tests/dom/websocket/tests/iframe_websocket_wss.html"; 29 if (location.search == '?http_iframe_ws') { 30 iFrameUrl += "?insecure"; 31 } 32 window.document.getElementById("frame").src = iFrameUrl; 33 } 34 else { 35 try { 36 let socket; 37 if (location.search == '?insecure') { 38 socket = new WebSocket('ws://mochi.test:8888/tests/dom/websocket/tests/file_websocket_hello'); 39 } 40 else { 41 socket = new WebSocket('wss://example.com/tests/dom/websocket/tests/file_websocket_hello'); 42 } 43 socket.onerror = function() { 44 cleanup(); 45 window.opener.postMessage("WS onerror", "*"); 46 }; 47 socket.onopen = function() { 48 socket.close(); 49 cleanup(); 50 window.opener.postMessage("WS onopen", "*"); 51 }; 52 } 53 catch(e) { 54 if (e.name == 'SecurityError') { 55 cleanup(); 56 window.opener.postMessage("SecurityError", "*"); 57 } else { 58 cleanup(); 59 window.opener.postMessage("Test Throws", "*"); 60 } 61 } 62 } 63 64 </script> 65 </body></html>