<html>
<body>
<script>
if (window.testRunner && window.internals) {
    testRunner.waitUntilDone();
    testRunner.dumpAsText();
    testRunner.setCanOpenWindows();
    testRunner.setCloseRemainingWindowsWhenComplete(true);
    internals.settings.setAllowRunningOfInsecureContent(false);
}
window.addEventListener("message", function (e) {
  if (window.testRunner)
      testRunner.notifyDone();
}, false);
</script>
<p>This test opens a window that loads a data: iframe that loads an
insecure script, and that the script is still blocked. Although the
data: frame has a separate origin, the script can still navigate top.
</p>
<script>
window.open("https://127.0.0.1:8443/security/mixedContent/resources/frame-with-data-url-frame-with-script.html");
</script>
</body>
</html>