<html>
    <head>
        <script>
            function hideDiv() {
                var dv = document.getElementById('dv');
                dv.style.display = "none";
            }
            function test() {
                if (window.layoutTestController)
                    layoutTestController.dumpAsText();
                if (window.eventSender) {
                    eventSender.dragMode = false;
                    eventSender.mouseMoveTo(100, 50);
                    eventSender.mouseDown();
                    eventSender.mouseMoveTo(100, 55);
                    eventSender.mouseUp();
                }
            }
        </script>
    </head>
    <body onload="test()">
        This tests that clicking on a scrollbar does not crash, even if there's an event handler that causes the scrollbar to go away during the process.<br>
        <div id="dv" style="overflow: auto; width: 100px; height: 100px;" onmousedown="hideDiv()">
            <div style="height: 200px"></div>
        </div>
    </body>
</html>
