<html>
<body>
<script>
if (window.testRunner) {
    testRunner.waitUntilDone();
    testRunner.dumpAsText();
}
window.addEventListener("message", function (e) {
    if (window.testRunner)
        testRunner.notifyDone();
}, false);
</script>
<p>This test loads a secure frame with insecure content that tries to access geolocation before loading insecure content.  Access to insecure content is blocked over secure connections when geolocation is accessed.</p>
<script>
onload = function() {
    window.open("https://127.0.0.1:8443/security/resources/geolocation-over-mixed-content-block.html");
}
</script>
</body>
</html>
