<html>
<body>
<script>
if (window.testRunner) {
    testRunner.waitUntilDone();
    testRunner.dumpAsText();
    testRunner.setCanOpenWindows();
    testRunner.setCloseRemainingWindowsWhenComplete(true);
    testRunner.overridePreference("WebKitStrictMixedContentChecking", 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 not
trigger a mixed content callback even though the main frame in the window
is HTTPS and is displaying insecure content, because we've set the preference
to block this.</p>
<script>
window.open("https://127.0.0.1:8443/security/mixedContent/resources/frame-preloads-insecure-image.html");
</script>
</body>
</html>
