tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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>