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

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-https-to-http-frame.html");
}
</script>

</body>
</html>
