<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 loads an insecure image.  We should trigger a
mixed content callback because the main frame in the window is HTTPS but is
displaying insecure content.</p>
<script>
onload = function() {
    window.open("https://127.0.0.1:8443/security/mixedContent/resources/frame-with-insecure-image.html");
}
</script>
</body>
</html>
