<html>
<script>
if (window.testRunner) {
    testRunner.dumpAsText()
    testRunner.waitUntilDone();
}

function runTest()
{
    var f = document.getElementById('theFrame');
    var r = document.getElementById('result');

    // Due to <rdar://problem/6925892> we sometimes end up with an odd string like "about:blanklocalhost/" here,
    // so we verify only that the URL starts with about:blank rather than that it is equal to it.
    if (f.contentDocument.URL.match(/^about:blank/))
        r.innerHTML = "SUCCESS: Did not crash and loaded about:blank correctly";
    else
        r.innerHTML = "FAILED: Did not crash but did not load about:blank correctly";
        
    if (window.testRunner)
        testRunner.notifyDone();
}
</script>
<body onload="runTest()">
<iframe id="theFrame" src="resources/redirect-to-about-blank.php"></iframe>
<div>This tests that loading a main resource that redirects to about:blank does not cause a crash (and that the load is done correctly).
<div id="result"></div>
</html>
