<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
   <head>
       <title></title>
       <style type="text/css">
           h1
           {
               /* required for crash */
               position: relative;
           }
           
           h1:before
           {
               /* required for crash */
               content: "";
               position: absolute;
               
               /* Width and height so we can drag over it, values not important */
               height: 200px;
               width: 200px;
               
               /* border so we can see it */
               border: 1px solid red;
           }       
        </style>
        <script type="text/javascript">
            function finishTest()
            {
                eventSender.mouseUp();
                layoutTestController.notifyDone();
            }

            function test()
            {
                if (!window.layoutTestController)
                    return;
                layoutTestController.waitUntilDone();
                eventSender.dragMode = false;
                eventSender.mouseMoveTo(1, 1);
                eventSender.mouseDown();
                // Start autoscroll.
                eventSender.mouseMoveTo(2, 2);
                // Move into position.
                eventSender.mouseMoveTo(50, 50);
                // Wait for the autoscroll timer to fire.
                setTimeout(finishTest, 200);
            }
        </script>
   </head>
   <body onload="test()">
       <h1 id="heading">Webpage test</h1>
   </body>
</html>
