| 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 edcb1ea648f9b17a9bec187ffd8307fb5f126966..422e33e796bbee2378203e999937388e2b573a38 100644
|
| --- a/content/browser/renderer_host/input/input_router_impl.cc
|
| +++ b/content/browser/renderer_host/input/input_router_impl.cc
|
| @@ -86,6 +86,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,
|
| @@ -107,7 +121,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_,
|
| @@ -298,6 +312,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);
|
| }
|
|
|