<!DOCTYPE html>
<div>
Move the mouse over the input element and click and drag upwards to
outside the bounds of the input element. If this does not crash, the
test passed.
</div>

<style>
input::-webkit-textfield-decoration-container {
    display: none;
}
</style>
<input type="search">
<script>
if (window.testRunner)
    testRunner.dumpAsText();

if (window.eventSender) {
    var input = document.querySelector('input');
    var x = input.offsetLeft + input.offsetWidth / 2;
    var y = input.offsetTop + input.offsetHeight / 2;
    eventSender.mouseMoveTo(x, y);
    eventSender.mouseDown();
    eventSender.leapForward(20);
    eventSender.mouseMoveTo(x, 0);
    eventSender.mouseUp();
    document.write('PASS');
}
</script>
