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

window.addEventListener("message", function (e) {
    if (e.data == "done")
        alert("should not have loaded insecure content");
    if (window.testRunner)
        testRunner.notifyDone();
}, false);

</script>
<p>This test opens a window that loads an insecure iframe (via a tricky
redirect).  We should trigger a mixed content callback because the main frame
in the window is HTTPS but is displaying content that can be controlled by an
active network attacker.</p>
<script>
onload = function() {
    window.open("https://127.0.0.1:8443/security/mixedContent/resources/frame-with-redirect-http-to-https-frame.html");
}
</script>
</body>
</html>
