<!DOCTYPE html>
<script src="../../../../resources/testharness.js"></script>
<script src="../../../../resources/testharnessreport.js"></script>
<script src="../../../../resources/gesture-util.js"></script>
<style>
::-webkit-scrollbar {
background-color: #ccc;
/* fixed size for consistent touch adjustment behavior across platforms */
width: 15px;
}
::-webkit-scrollbar-button {
display: none;
}
::-webkit-scrollbar-thumb {
background-color: #777;
width: 15px;
}
body {
margin: 0;
}
.large {
height: 2000px;
width: 600px;
}
</style>
<div class="large"></div>
<script type="text/javascript">
promise_test (async () => {
await waitForCompositorCommit();
assert_greater_than(window.innerWidth - document.body.clientWidth, 5);
var scrollbarX = document.body.clientWidth + 5;
var scrollbarY = window.innerHeight / 2; // Trying to grab the thumb
// Scroll down to ensure we test the difference between content and client
// co-ordinate spaces.
window.scrollTo(0, 800);
assert_equals(window.scrollY, 800);
await smoothScroll(20, scrollbarX, scrollbarY, GestureSourceType.TOUCH_INPUT,
"up", SPEED_INSTANT);
// We don't know exactly how far draging the thumb will scroll. If we end
// up scrolling in the wrong direction it probably means hit tests are
// passing through the scrollbar and hitting the content.
await waitFor( () => { return window.scrollY >= 820;});
await smoothScroll(60, scrollbarX, scrollbarY, GestureSourceType.TOUCH_INPUT,
"up", SPEED_INSTANT);
await waitFor( () => { return window.scrollY >= 885;});
}, 'This tests scroll gesture events on main frame scroll bars The document ' +
'should be slightly scrolled down if successful.');
</script>