<html>
<head>
    <title>Test for http://bugs.webkit.org/show_bug.cgi?id=12479</title>
    <script>
        if (window.testRunner) {
            testRunner.waitUntilDone();
            testRunner.dumpAsText();
            alert("If you do not hit an assertion failure when running this test with a debug build and you get a SUCCESS message, then you pass the test.");
        }

        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/simultaneous-reloads-assert-frame.html">
</frameset>
</html>
