<body onload="test()">
<script>
    function overflowChanged()
    {
        document.getElementById("result").innerText = "PASS";
    }

    function test()
    {
        if (window.testRunner)
            testRunner.waitUntilDone();

        document.body.offsetTop;
        var bottomBox = document.getElementById("bottomBox");
        bottomBox.parentNode.removeChild(bottomBox);
        document.addEventListener("overflowchanged", overflowChanged, true, true);
    }

    function iframeResized()
    {
        document.body.appendChild(document.createElement("div"));
        if (window.testRunner)
            testRunner.dumpAsText();

        setTimeout(finish, 50);
    }

    function finish()
    {
        document.getElementById("tallBox").style.height = "50px";
        setTimeout(function () {
            if (window.testRunner)
                testRunner.notifyDone();
        }, 50);
    }
</script>
<p>
    Test for <i><a href="http://bugs.webkit.org/show_bug.cgi?id=16490">http://bugs.webkit.org/show_bug.cgi?id=16490</a>
    ASSERT in ~FrameView while viewing/reloading WICD test case</i>.
</p>
<div>
    <iframe style="width: 100%;" src="resources/paused-event-dispatch-iframe.html"></iframe>
</div>
<div id="bottomBox" style="position: absolute; left: 0; top: 5000px; height: 10px; width: 10px;"></div>
<div style="height: 100px; width: 100px; overflow: auto;" id="overflow">
    <div style="height: 200px;" id="tallBox"></div>
</div>
<div id="result">FAIL</div>
</body>
