summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/platform/widget/input/input_handler_proxy_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/platform/widget/input/input_handler_proxy_unittest.cc')
-rw-r--r--chromium/third_party/blink/renderer/platform/widget/input/input_handler_proxy_unittest.cc186
1 files changed, 79 insertions, 107 deletions
diff --git a/chromium/third_party/blink/renderer/platform/widget/input/input_handler_proxy_unittest.cc b/chromium/third_party/blink/renderer/platform/widget/input/input_handler_proxy_unittest.cc
index 1598191b4d9..c355ef625f5 100644
--- a/chromium/third_party/blink/renderer/platform/widget/input/input_handler_proxy_unittest.cc
+++ b/chromium/third_party/blink/renderer/platform/widget/input/input_handler_proxy_unittest.cc
@@ -112,6 +112,8 @@ class MockInputHandler : public cc::InputHandler {
cc::ScrollBeginThreadState state));
MOCK_METHOD1(RecordScrollEnd, void(ui::ScrollInputType type));
MOCK_METHOD0(ScrollingShouldSwitchtoMainThread, bool());
+ MOCK_METHOD1(HitTest,
+ cc::PointerResultType(const gfx::PointF& mouse_position));
MOCK_METHOD2(MouseDown,
cc::InputHandlerPointerResult(const gfx::PointF& mouse_position,
const bool shift_modifier));
@@ -260,9 +262,11 @@ const cc::InputHandler::ScrollStatus kRequiresMainThreadHitTestState(
cc::MainThreadScrollingReason::kNotScrollingOnMain,
/*needs_main_thread_hit_test=*/true);
+constexpr auto kSampleMainThreadScrollingReason =
+ cc::MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects;
const cc::InputHandler::ScrollStatus kMainThreadScrollState(
cc::InputHandler::ScrollThread::SCROLL_ON_MAIN_THREAD,
- cc::MainThreadScrollingReason::kHandlingScrollFromMainThread);
+ kSampleMainThreadScrollingReason);
const cc::InputHandler::ScrollStatus kScrollIgnoredScrollState(
cc::InputHandler::ScrollThread::SCROLL_IGNORED,
@@ -609,6 +613,8 @@ TEST_P(InputHandlerProxyTest, NestedGestureBasedScrollsDifferentSourceDevice) {
cc::InputHandlerPointerResult pointer_down_result;
pointer_down_result.type = cc::PointerResultType::kScrollbarScroll;
pointer_down_result.scroll_offset = gfx::ScrollOffset(0, 1);
+ EXPECT_CALL(mock_input_handler_, HitTest(_))
+ .WillOnce(testing::Return(pointer_down_result.type));
EXPECT_CALL(mock_input_handler_, MouseDown(_, _))
.WillOnce(testing::Return(pointer_down_result));
@@ -663,7 +669,7 @@ TEST_P(InputHandlerProxyTest, MouseWheelNoListener) {
}
TEST_P(InputHandlerProxyTest, MouseWheelPassiveListener) {
- expected_disposition_ = InputHandlerProxy::DID_HANDLE_NON_BLOCKING;
+ expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE_NON_BLOCKING;
EXPECT_CALL(mock_input_handler_, HasBlockingWheelEventHandlerAt(_))
.WillRepeatedly(testing::Return(false));
EXPECT_CALL(mock_input_handler_,
@@ -731,7 +737,7 @@ TEST_P(InputHandlerProxyTest, MouseWheelEventOutsideBlockingListener) {
TEST_P(InputHandlerProxyTest,
MouseWheelEventOutsideBlockingListenerWithPassiveListener) {
- expected_disposition_ = InputHandlerProxy::DID_HANDLE_NON_BLOCKING;
+ expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE_NON_BLOCKING;
EXPECT_CALL(mock_input_handler_,
HasBlockingWheelEventHandlerAt(
testing::Property(&gfx::Point::y, testing::Gt(10))))
@@ -780,6 +786,8 @@ TEST_P(InputHandlerProxyTest, ScrollbarScrollEndOnDeviceChange) {
cc::InputHandlerPointerResult pointer_down_result;
pointer_down_result.type = cc::PointerResultType::kScrollbarScroll;
pointer_down_result.scroll_offset = gfx::ScrollOffset(0, 1);
+ EXPECT_CALL(mock_input_handler_, HitTest(_))
+ .WillOnce(testing::Return(pointer_down_result.type));
EXPECT_CALL(mock_input_handler_, MouseDown(_, _))
.WillOnce(testing::Return(pointer_down_result));
EXPECT_EQ(InputHandlerProxy::DID_NOT_HANDLE,
@@ -1399,7 +1407,7 @@ TEST_P(InputHandlerProxyTest,
TEST_P(InputHandlerProxyTest, HitTestTouchEventNonNullTouchAction) {
// One of the touch points is on a touch-region. So the event should be sent
// to the main thread.
- expected_disposition_ = InputHandlerProxy::DID_HANDLE_NON_BLOCKING;
+ expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE_NON_BLOCKING;
VERIFY_AND_RESET_MOCKS();
EXPECT_CALL(mock_input_handler_,
@@ -1460,6 +1468,8 @@ TEST_F(InputHandlerProxyEventQueueTest,
cc::InputHandlerPointerResult pointer_down_result;
pointer_down_result.type = cc::PointerResultType::kScrollbarScroll;
pointer_down_result.scroll_offset = gfx::ScrollOffset(0, 1);
+ EXPECT_CALL(mock_input_handler_, HitTest(_))
+ .WillOnce(testing::Return(pointer_down_result.type));
EXPECT_CALL(mock_input_handler_, MouseDown(_, _))
.WillOnce(testing::Return(pointer_down_result));
@@ -1506,6 +1516,8 @@ TEST_F(InputHandlerProxyEventQueueTest,
EXPECT_CALL(mock_input_handler_, RecordScrollEnd(_)).Times(1);
EXPECT_CALL(mock_input_handler_, ScrollEnd(true)).Times(1);
+ EXPECT_CALL(mock_input_handler_, HitTest(_))
+ .WillOnce(testing::Return(pointer_down_result.type));
EXPECT_CALL(mock_input_handler_, MouseDown(_, _))
.WillOnce(testing::Return(pointer_down_result));
// A mousedown occurs on the scrollbar *before* the GSE is dispatched.
@@ -1754,7 +1766,7 @@ TEST_P(InputHandlerProxyTest, MultiTouchPointHitTestNegative) {
TEST_P(InputHandlerProxyTest, MultiTouchPointHitTestPositive) {
// One of the touch points is on a touch-region. So the event should be sent
// to the main thread.
- expected_disposition_ = InputHandlerProxy::DID_HANDLE_NON_BLOCKING;
+ expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE_NON_BLOCKING;
VERIFY_AND_RESET_MOCKS();
EXPECT_CALL(mock_input_handler_,
@@ -1802,7 +1814,7 @@ TEST_P(InputHandlerProxyTest, MultiTouchPointHitTestPositive) {
TEST_P(InputHandlerProxyTest, MultiTouchPointHitTestPassivePositive) {
// One of the touch points is not on a touch-region. So the event should be
// sent to the impl thread.
- expected_disposition_ = InputHandlerProxy::DID_HANDLE_NON_BLOCKING;
+ expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE_NON_BLOCKING;
VERIFY_AND_RESET_MOCKS();
EXPECT_CALL(
@@ -1821,9 +1833,9 @@ TEST_P(InputHandlerProxyTest, MultiTouchPointHitTestPassivePositive) {
*touch_action = cc::TouchAction::kPanX;
return cc::InputHandler::TouchStartOrMoveEventListenerType::NO_HANDLER;
}));
- EXPECT_CALL(mock_client_,
- SetAllowedTouchAction(cc::TouchAction::kPanRight, 1,
- InputHandlerProxy::DID_HANDLE_NON_BLOCKING))
+ EXPECT_CALL(mock_client_, SetAllowedTouchAction(
+ cc::TouchAction::kPanRight, 1,
+ InputHandlerProxy::DID_NOT_HANDLE_NON_BLOCKING))
.WillOnce(testing::Return());
WebTouchEvent touch(WebInputEvent::Type::kTouchStart,
@@ -1849,7 +1861,7 @@ TEST_P(InputHandlerProxyTest, TouchStartPassiveAndTouchEndBlocking) {
// The touch start is not in a touch-region but there is a touch end handler
// so to maintain targeting we need to dispatch the touch start as
// non-blocking but drop all touch moves.
- expected_disposition_ = InputHandlerProxy::DID_HANDLE_NON_BLOCKING;
+ expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE_NON_BLOCKING;
VERIFY_AND_RESET_MOCKS();
EXPECT_CALL(
@@ -1866,9 +1878,9 @@ TEST_P(InputHandlerProxyTest, TouchStartPassiveAndTouchEndBlocking) {
*touch_action = cc::TouchAction::kNone;
return cc::InputHandler::TouchStartOrMoveEventListenerType::NO_HANDLER;
}));
- EXPECT_CALL(mock_client_,
- SetAllowedTouchAction(cc::TouchAction::kNone, 1,
- InputHandlerProxy::DID_HANDLE_NON_BLOCKING))
+ EXPECT_CALL(mock_client_, SetAllowedTouchAction(
+ cc::TouchAction::kNone, 1,
+ InputHandlerProxy::DID_NOT_HANDLE_NON_BLOCKING))
.WillOnce(testing::Return());
WebTouchEvent touch(WebInputEvent::Type::kTouchStart,
@@ -1907,11 +1919,8 @@ TEST_P(InputHandlerProxyTest, TouchMoveBlockingAddedAfterPassiveTouchStart) {
cc::InputHandler::TouchStartOrMoveEventListenerType::NO_HANDLER));
EXPECT_CALL(mock_client_, SetAllowedTouchAction(_, _, _))
.WillOnce(testing::Return());
-
- cc::InputHandlerPointerResult pointer_down_result;
- pointer_down_result.type = cc::PointerResultType::kUnhandled;
- EXPECT_CALL(mock_input_handler_, MouseDown(_, _))
- .WillOnce(testing::Return(pointer_down_result));
+ EXPECT_CALL(mock_input_handler_, HitTest(_))
+ .WillOnce(testing::Return(cc::PointerResultType::kUnhandled));
WebTouchEvent touch(WebInputEvent::Type::kTouchStart,
WebInputEvent::kNoModifiers,
@@ -1920,7 +1929,7 @@ TEST_P(InputHandlerProxyTest, TouchMoveBlockingAddedAfterPassiveTouchStart) {
touch.touch_start_or_first_touch_move = true;
touch.touches[0] =
CreateWebTouchPoint(WebTouchPoint::State::kStatePressed, 0, 0);
- EXPECT_EQ(InputHandlerProxy::DID_HANDLE_NON_BLOCKING,
+ EXPECT_EQ(InputHandlerProxy::DID_NOT_HANDLE_NON_BLOCKING,
HandleInputEventWithLatencyInfo(input_handler_.get(), touch));
EXPECT_CALL(mock_input_handler_, EventListenerTypeForTouchStartOrMoveAt(_, _))
@@ -1934,7 +1943,7 @@ TEST_P(InputHandlerProxyTest, TouchMoveBlockingAddedAfterPassiveTouchStart) {
touch.touch_start_or_first_touch_move = true;
touch.touches[0] =
CreateWebTouchPoint(WebTouchPoint::State::kStateMoved, 10, 10);
- EXPECT_EQ(InputHandlerProxy::DID_HANDLE_NON_BLOCKING,
+ EXPECT_EQ(InputHandlerProxy::DID_NOT_HANDLE_NON_BLOCKING,
HandleInputEventWithLatencyInfo(input_handler_.get(), touch));
VERIFY_AND_RESET_MOCKS();
}
@@ -2498,7 +2507,8 @@ TEST_F(InputHandlerProxyEventQueueTest,
cc::InputHandlerPointerResult pointer_down_result;
pointer_down_result.type = cc::PointerResultType::kScrollbarScroll;
pointer_down_result.scroll_offset = gfx::ScrollOffset(0, 1);
-
+ EXPECT_CALL(mock_input_handler_, HitTest(_))
+ .WillOnce(testing::Return(pointer_down_result.type));
EXPECT_CALL(mock_input_handler_, MouseDown(_, _))
.WillOnce(testing::Return(pointer_down_result));
HandleMouseEvent(WebInputEvent::Type::kMouseDown);
@@ -3382,9 +3392,10 @@ class InputHandlerProxyMainThreadScrollingReasonTest
if (reason == cc::MainThreadScrollingReason::kNotScrollingOnMain)
return 0;
- uint32_t bucket = 1;
- while ((reason = reason >> 1))
+ uint32_t bucket = 0;
+ while (reason >>= 1)
bucket++;
+ DCHECK_NE(bucket, 0u);
return bucket;
}
@@ -3396,6 +3407,19 @@ class InputHandlerProxyMainThreadScrollingReasonTest
WebGestureEvent gesture_scroll_end_;
};
+// Tests GetBucketSample() returns the corresponding values defined in
+// enums.xml, to ensure correctness of the tests using the function.
+TEST_P(InputHandlerProxyMainThreadScrollingReasonTest, ReasonToBucket) {
+ EXPECT_EQ(
+ 0, GetBucketSample(cc::MainThreadScrollingReason::kNotScrollingOnMain));
+ EXPECT_EQ(
+ 1,
+ GetBucketSample(
+ cc::MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects));
+ EXPECT_EQ(25, GetBucketSample(
+ cc::MainThreadScrollingReason::kTouchEventHandlerRegion));
+}
+
TEST_P(InputHandlerProxyMainThreadScrollingReasonTest,
GestureScrollNotScrollOnMain) {
// Touch start with passive event listener.
@@ -3412,13 +3436,10 @@ TEST_P(InputHandlerProxyMainThreadScrollingReasonTest,
.WillOnce(testing::Return(cc::EventListenerProperties::kPassive));
EXPECT_CALL(mock_client_, SetAllowedTouchAction(_, _, _))
.WillOnce(testing::Return());
+ EXPECT_CALL(mock_input_handler_, HitTest(_))
+ .WillOnce(testing::Return(cc::PointerResultType::kUnhandled));
- cc::InputHandlerPointerResult pointer_down_result;
- pointer_down_result.type = cc::PointerResultType::kUnhandled;
- EXPECT_CALL(mock_input_handler_, MouseDown(_, _))
- .WillOnce(testing::Return(pointer_down_result));
-
- expected_disposition_ = InputHandlerProxy::DID_HANDLE_NON_BLOCKING;
+ expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE_NON_BLOCKING;
EXPECT_EQ(expected_disposition_,
HandleInputEventAndFlushEventQueue(
mock_input_handler_, input_handler_.get(), touch_start_));
@@ -3464,13 +3485,10 @@ TEST_P(InputHandlerProxyMainThreadScrollingReasonTest,
HANDLER_ON_SCROLLING_LAYER));
EXPECT_CALL(mock_client_, SetAllowedTouchAction(_, _, _))
.WillOnce(testing::Return());
+ EXPECT_CALL(mock_input_handler_, HitTest(_))
+ .WillOnce(testing::Return(cc::PointerResultType::kUnhandled));
- cc::InputHandlerPointerResult pointer_down_result;
- pointer_down_result.type = cc::PointerResultType::kUnhandled;
- EXPECT_CALL(mock_input_handler_, MouseDown(_, _))
- .WillOnce(testing::Return(pointer_down_result));
-
- expected_disposition_ = InputHandlerProxy::DID_HANDLE_NON_BLOCKING;
+ expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE_NON_BLOCKING;
EXPECT_EQ(expected_disposition_,
HandleInputEventAndFlushEventQueue(
mock_input_handler_, input_handler_.get(), touch_start_));
@@ -3521,13 +3539,10 @@ TEST_P(InputHandlerProxyMainThreadScrollingReasonTest,
HANDLER_ON_SCROLLING_LAYER));
EXPECT_CALL(mock_client_, SetAllowedTouchAction(_, _, _))
.WillOnce(testing::Return());
+ EXPECT_CALL(mock_input_handler_, HitTest(_))
+ .WillOnce(testing::Return(cc::PointerResultType::kUnhandled));
- cc::InputHandlerPointerResult pointer_down_result;
- pointer_down_result.type = cc::PointerResultType::kUnhandled;
- EXPECT_CALL(mock_input_handler_, MouseDown(_, _))
- .WillOnce(testing::Return(pointer_down_result));
-
- expected_disposition_ = InputHandlerProxy::DID_HANDLE_NON_BLOCKING;
+ expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE_NON_BLOCKING;
EXPECT_EQ(expected_disposition_, HandleInputEventWithLatencyInfo(
input_handler_.get(), touch_start_));
@@ -3542,13 +3557,10 @@ TEST_P(InputHandlerProxyMainThreadScrollingReasonTest,
HandleInputEventWithLatencyInfo(input_handler_.get(),
gesture_scroll_begin_));
- EXPECT_THAT(
- histogram_tester().GetAllSamples(
- "Renderer4.MainThreadGestureScrollReason"),
- testing::ElementsAre(base::Bucket(
- GetBucketSample(
- cc::MainThreadScrollingReason::kHandlingScrollFromMainThread),
- 1)));
+ EXPECT_THAT(histogram_tester().GetAllSamples(
+ "Renderer4.MainThreadGestureScrollReason"),
+ testing::ElementsAre(base::Bucket(
+ GetBucketSample(kSampleMainThreadScrollingReason), 1)));
// Handle touch end event so that input handler proxy is out of the state of
// DID_NOT_HANDLE.
@@ -3580,13 +3592,10 @@ TEST_P(InputHandlerProxyMainThreadScrollingReasonTest,
.WillOnce(testing::Return());
EXPECT_CALL(mock_input_handler_, GetEventListenerProperties(_))
.WillRepeatedly(testing::Return(cc::EventListenerProperties::kPassive));
+ EXPECT_CALL(mock_input_handler_, HitTest(_))
+ .WillOnce(testing::Return(cc::PointerResultType::kUnhandled));
- cc::InputHandlerPointerResult pointer_down_result;
- pointer_down_result.type = cc::PointerResultType::kUnhandled;
- EXPECT_CALL(mock_input_handler_, MouseDown(_, _))
- .WillOnce(testing::Return(pointer_down_result));
-
- expected_disposition_ = InputHandlerProxy::DID_HANDLE_NON_BLOCKING;
+ expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE_NON_BLOCKING;
EXPECT_EQ(expected_disposition_, HandleInputEventWithLatencyInfo(
input_handler_.get(), touch_start_));
@@ -3601,13 +3610,10 @@ TEST_P(InputHandlerProxyMainThreadScrollingReasonTest,
HandleInputEventWithLatencyInfo(input_handler_.get(),
gesture_scroll_begin_));
- EXPECT_THAT(
- histogram_tester().GetAllSamples(
- "Renderer4.MainThreadGestureScrollReason"),
- testing::ElementsAre(base::Bucket(
- GetBucketSample(
- cc::MainThreadScrollingReason::kHandlingScrollFromMainThread),
- 1)));
+ EXPECT_THAT(histogram_tester().GetAllSamples(
+ "Renderer4.MainThreadGestureScrollReason"),
+ testing::ElementsAre(base::Bucket(
+ GetBucketSample(kSampleMainThreadScrollingReason), 1)));
expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE;
EXPECT_CALL(mock_input_handler_, RecordScrollEnd(_)).Times(1);
@@ -3626,37 +3632,7 @@ TEST_P(InputHandlerProxyMainThreadScrollingReasonTest, WheelScrollHistogram) {
input_handler_->RecordMainThreadScrollingReasonsForTest(
WebGestureDevice::kTouchpad,
cc::MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects |
- cc::MainThreadScrollingReason::kThreadedScrollingDisabled |
- cc::MainThreadScrollingReason::kFrameOverlay |
- cc::MainThreadScrollingReason::kHandlingScrollFromMainThread);
-
- EXPECT_THAT(
- histogram_tester().GetAllSamples("Renderer4.MainThreadWheelScrollReason"),
- testing::ElementsAre(
- base::Bucket(
- GetBucketSample(cc::MainThreadScrollingReason::
- kHasBackgroundAttachmentFixedObjects),
- 1),
- base::Bucket(
- GetBucketSample(
- cc::MainThreadScrollingReason::kThreadedScrollingDisabled),
- 1),
- base::Bucket(
- GetBucketSample(cc::MainThreadScrollingReason::kFrameOverlay),
- 1)));
-
- // We only want to record "Handling scroll from main thread" reason if it's
- // the only reason. If it's not the only reason, the "real" reason for
- // scrolling on main is something else, and we only want to pay attention to
- // that reason. So we should only include this reason in the histogram when
- // its on its own.
- EXPECT_CALL(
- mock_input_handler_,
- RecordScrollBegin(_, cc::ScrollBeginThreadState::kScrollingOnMain))
- .Times(1);
- input_handler_->RecordMainThreadScrollingReasonsForTest(
- WebGestureDevice::kTouchpad,
- cc::MainThreadScrollingReason::kHandlingScrollFromMainThread);
+ cc::MainThreadScrollingReason::kThreadedScrollingDisabled);
EXPECT_THAT(
histogram_tester().GetAllSamples("Renderer4.MainThreadWheelScrollReason"),
@@ -3668,12 +3644,6 @@ TEST_P(InputHandlerProxyMainThreadScrollingReasonTest, WheelScrollHistogram) {
base::Bucket(
GetBucketSample(
cc::MainThreadScrollingReason::kThreadedScrollingDisabled),
- 1),
- base::Bucket(
- GetBucketSample(cc::MainThreadScrollingReason::kFrameOverlay), 1),
- base::Bucket(
- GetBucketSample(
- cc::MainThreadScrollingReason::kHandlingScrollFromMainThread),
1)));
}
@@ -3689,7 +3659,7 @@ TEST_P(InputHandlerProxyMainThreadScrollingReasonTest,
EXPECT_CALL(mock_input_handler_,
GetEventListenerProperties(cc::EventListenerClass::kMouseWheel))
.WillOnce(testing::Return(cc::EventListenerProperties::kPassive));
- expected_disposition_ = InputHandlerProxy::DID_HANDLE_NON_BLOCKING;
+ expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE_NON_BLOCKING;
EXPECT_EQ(expected_disposition_, HandleInputEventWithLatencyInfo(
input_handler_.get(), wheel_event_));
@@ -3781,10 +3751,12 @@ TEST_P(InputHandlerProxyMainThreadScrollingReasonTest,
EXPECT_THAT(
histogram_tester().GetAllSamples("Renderer4.MainThreadWheelScrollReason"),
- testing::ElementsAre(base::Bucket(
- GetBucketSample(
- cc::MainThreadScrollingReason::kWheelEventHandlerRegion),
- 1)));
+ testing::ElementsAre(
+ base::Bucket(GetBucketSample(kSampleMainThreadScrollingReason), 1),
+ base::Bucket(
+ GetBucketSample(
+ cc::MainThreadScrollingReason::kWheelEventHandlerRegion),
+ 1)));
expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE;
EXPECT_CALL(mock_input_handler_, RecordScrollEnd(_)).Times(1);
@@ -3820,10 +3792,8 @@ TEST_P(InputHandlerProxyMainThreadScrollingReasonTest,
EXPECT_THAT(
histogram_tester().GetAllSamples("Renderer4.MainThreadWheelScrollReason"),
- testing::ElementsAre(base::Bucket(
- GetBucketSample(
- cc::MainThreadScrollingReason::kHandlingScrollFromMainThread),
- 1)));
+ testing::ElementsAre(
+ base::Bucket(GetBucketSample(kSampleMainThreadScrollingReason), 1)));
expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE;
EXPECT_CALL(mock_input_handler_, RecordScrollEnd(_)).Times(1);
@@ -3881,6 +3851,8 @@ TEST_P(InputHandlerProxyTouchScrollbarTest,
EXPECT_CALL(mock_client_, SetAllowedTouchAction(_, _, _))
.WillOnce(testing::Return());
+ EXPECT_CALL(mock_input_handler_, HitTest(_))
+ .WillOnce(testing::Return(pointer_down_result.type));
EXPECT_CALL(mock_input_handler_, MouseDown(_, _))
.WillOnce(testing::Return(pointer_down_result));
cc::InputHandlerScrollResult scroll_result_did_scroll;