<html>
<head>
    <title>http://bugs.webkit.org/show_bug.cgi?id=9929</title>
    <script>
        if (window.testRunner) {
            testRunner.waitUntilDone();
            testRunner.dumpAsText();
        }

        var reloaded = false;
        function frameLoaded()
        {
            if (!reloaded) {
                reloaded = true;
                frames[0].location.reload();
            } else {
                if (window.testRunner) {
                    alert("SUCCESS");
                    testRunner.notifyDone();
                }
            }
        }
    </script>
</head>
<frameset cols="*">
    <frame src="resources/onload-remove-iframe-crash-2.html">
</frameset>
</html>
