Index: content/browser/renderer_host/input/synthetic_gesture_target_base.cc |
diff --git a/content/browser/renderer_host/input/synthetic_gesture_target_base.cc b/content/browser/renderer_host/input/synthetic_gesture_target_base.cc |
index 2974e36da807943da6d30c9bb03dcceb019416bc..a4b4fe8b578552b77dbdd9de565355a973bd3e13 100644 |
--- a/content/browser/renderer_host/input/synthetic_gesture_target_base.cc |
+++ b/content/browser/renderer_host/input/synthetic_gesture_target_base.cc |
@@ -18,6 +18,7 @@ using blink::WebTouchEvent; |
using blink::WebTouchPoint; |
using blink::WebMouseEvent; |
using blink::WebMouseWheelEvent; |
+using blink::WebGestureEvent; |
namespace content { |
namespace { |
@@ -77,6 +78,12 @@ void SyntheticGestureTargetBase::DispatchInputEventToPlatform( |
web_mouse.PositionInWidget().y)) |
<< "Mouse pointer is not within content bounds on MouseDown."; |
DispatchWebMouseEventToPlatform(web_mouse, latency_info); |
+ } else if (event.GetType() == WebInputEvent::kGestureFlingStart) { |
+ const WebGestureEvent& gesture_event = |
+ static_cast<const WebGestureEvent&>(event); |
+ CHECK(gesture_event.source_device == blink::kWebGestureDeviceTouchpad) |
+ << "The gesture event source must be touchpad."; |
+ DispatchTouchpadGestureFlingStartToPlatform(gesture_event, latency_info); |
} else { |
NOTREACHED(); |
} |
@@ -103,6 +110,14 @@ void SyntheticGestureTargetBase::DispatchWebMouseEventToPlatform( |
host_->ForwardMouseEventWithLatencyInfo(web_mouse, latency_info); |
} |
+void SyntheticGestureTargetBase::DispatchTouchpadGestureFlingStartToPlatform( |
+ const blink::WebGestureEvent& web_gesture, |
+ const ui::LatencyInfo& latency_info) { |
+ DCHECK_EQ(web_gesture.GetType(), WebInputEvent::kGestureFlingStart); |
+ DCHECK_EQ(web_gesture.source_device, blink::kWebGestureDeviceTouchpad); |
+ host_->ForwardGestureEventWithLatencyInfo(web_gesture, latency_info); |
+} |
+ |
void SyntheticGestureTargetBase::SetNeedsFlush() { |
host_->SetNeedsFlush(); |
} |