| Index: content/browser/renderer_host/input/input_router_impl.cc
|
| diff --git a/content/browser/renderer_host/input/input_router_impl.cc b/content/browser/renderer_host/input/input_router_impl.cc
|
| index e91c904f0c47d599e4d6b7a04a7ccb23181f01d8..16e0419fda3b0318412ed8b83b6535e749c461cb 100644
|
| --- a/content/browser/renderer_host/input/input_router_impl.cc
|
| +++ b/content/browser/renderer_host/input/input_router_impl.cc
|
| @@ -109,6 +109,20 @@ const char* GetEventAckName(InputEventAckState ack_result) {
|
| return "";
|
| }
|
|
|
| +TouchEventQueue::TouchScrollingMode GetTouchScrollingMode()
|
| +{
|
| + std::string modeString = CommandLine::ForCurrentProcess()->
|
| + GetSwitchValueASCII(switches::kTouchScrollingMode);
|
| + if (modeString == switches::kTouchScrollingModeSyncTouchmove)
|
| + return TouchEventQueue::TOUCH_SCROLLING_MODE_SYNC_TOUCHMOVE;
|
| + if (modeString == switches::kTouchScrollingModeAbsorbTouchmove)
|
| + return TouchEventQueue::TOUCH_SCROLLING_MODE_ABSORB_TOUCHMOVE;
|
| + if (modeString != "" &&
|
| + modeString != switches::kTouchScrollingModeTouchcancel)
|
| + LOG(ERROR) << "Invalid --touch-scrolling-mode option: " << modeString;
|
| + return TouchEventQueue::TOUCH_SCROLLING_MODE_TOUCHCANCEL;
|
| +}
|
| +
|
| } // namespace
|
|
|
| InputRouterImpl::InputRouterImpl(IPC::Sender* sender,
|
| @@ -130,7 +144,7 @@ InputRouterImpl::InputRouterImpl(IPC::Sender* sender,
|
| DCHECK(sender);
|
| DCHECK(client);
|
| DCHECK(ack_handler);
|
| - touch_event_queue_.reset(new TouchEventQueue(this));
|
| + touch_event_queue_.reset(new TouchEventQueue(this, GetTouchScrollingMode()));
|
| touch_ack_timeout_enabled_ =
|
| GetTouchAckTimeoutDelayMs(&touch_ack_timeout_delay_ms_);
|
| touch_event_queue_->SetAckTimeoutEnabled(touch_ack_timeout_enabled_,
|
| @@ -328,6 +342,7 @@ void InputRouterImpl::OnTouchEventAck(const TouchEventWithLatencyInfo& event,
|
| void InputRouterImpl::OnGestureEventAck(
|
| const GestureEventWithLatencyInfo& event,
|
| InputEventAckState ack_result) {
|
| + touch_event_queue_->OnGestureEventAck(event, ack_result);
|
| ProcessAckForOverscroll(event.event, ack_result);
|
| ack_handler_->OnGestureEventAck(event, ack_result);
|
| }
|
|
|