<html>
<body>
<script>
if (window.testRunner) {
    testRunner.waitUntilDone();
    testRunner.dumpAsText();
    testRunner.setCanOpenWindows();
    testRunner.setCloseRemainingWindowsWhenComplete(true);
    testRunner.overridePreference("WebKitAllowRunningInsecureContent", false);
    testRunner.setAllowRunningOfInsecureContent(true);
}

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

</script>
<p>This test opens a window that loads an insecure iframe.  We should trigger
a mixed content callback even though we've set the preference to block this,
because we've overriden the preference via a web permission client callback.</p>
<script>
window.open("https://127.0.0.1:8443/security/mixedContent/resources/frame-with-insecure-iframe.html");
</script>
</body>
</html>
