<html>
<head>
    <title>Test for http://bugs.webkit.org/show_bug.cgi?id=12479</title>
    <script>
        if (window.layoutTestController) {
            layoutTestController.waitUntilDone();
            layoutTestController.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.layoutTestController) {
                    alert("SUCCESS");
                    layoutTestController.notifyDone();
                }
            }
        }
    </script>
</head>
<frameset cols="*">
    <frame src="resources/simultaneous-reloads-assert-frame.html">
</frameset>
</html>
