<html>
<body>
<script>
if (window.testRunner) {
    testRunner.waitUntilDone();
    testRunner.dumpAsText();
    testRunner.setCanOpenWindows();
    testRunner.setCloseRemainingWindowsWhenComplete(true);
}

window.addEventListener("message", function (e) {
  if (window.testRunner)
      testRunner.notifyDone();
}, false);

</script>
<p>This test opens a window that connects to an insecure ws:// WebSocket.  We
should block the connection and trigger a mixed content callback because the
main frame is HTTPS, but the data sent over the socket could be recorded or
controlled by an attacker.</p>
<script>
onload = function() {
    window.open("https://127.0.0.1:8443/security/mixedContent/resources/frame-with-insecure-websocket.html");
}
</script>
</body>
</html>
