Index: content/browser/renderer_host/render_widget_host_impl.cc |
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc |
index f43e3f85938712b86791115ae17e4877f1c3a7fb..c449592d144727419f175de0316ff6a094caf23c 100644 |
--- a/content/browser/renderer_host/render_widget_host_impl.cc |
+++ b/content/browser/renderer_host/render_widget_host_impl.cc |
@@ -974,7 +974,7 @@ void RenderWidgetHostImpl::ForwardMouseEventWithLatencyInfo( |
return; |
MouseEventWithLatencyInfo mouse_with_latency(mouse_event, ui_latency); |
- latency_tracker_.OnInputEvent(mouse_event, &mouse_with_latency.latency); |
+ DispatchInputEventWithLatencyInfo(mouse_event, &mouse_with_latency.latency); |
input_router_->SendMouseEvent(mouse_with_latency); |
} |
@@ -996,7 +996,7 @@ void RenderWidgetHostImpl::ForwardWheelEventWithLatencyInfo( |
return; |
MouseWheelEventWithLatencyInfo wheel_with_latency(wheel_event, ui_latency); |
- latency_tracker_.OnInputEvent(wheel_event, &wheel_with_latency.latency); |
+ DispatchInputEventWithLatencyInfo(wheel_event, &wheel_with_latency.latency); |
input_router_->SendWheelEvent(wheel_with_latency); |
} |
@@ -1052,7 +1052,8 @@ void RenderWidgetHostImpl::ForwardGestureEventWithLatencyInfo( |
return; |
GestureEventWithLatencyInfo gesture_with_latency(gesture_event, ui_latency); |
- latency_tracker_.OnInputEvent(gesture_event, &gesture_with_latency.latency); |
+ DispatchInputEventWithLatencyInfo(gesture_event, |
+ &gesture_with_latency.latency); |
input_router_->SendGestureEvent(gesture_with_latency); |
if (scroll_update_needs_wrapping) { |
@@ -1066,7 +1067,7 @@ void RenderWidgetHostImpl::ForwardEmulatedTouchEvent( |
TRACE_EVENT0("input", "RenderWidgetHostImpl::ForwardEmulatedTouchEvent"); |
TouchEventWithLatencyInfo touch_with_latency(touch_event); |
- latency_tracker_.OnInputEvent(touch_event, &touch_with_latency.latency); |
+ DispatchInputEventWithLatencyInfo(touch_event, &touch_with_latency.latency); |
input_router_->SendTouchEvent(touch_with_latency); |
} |
@@ -1088,7 +1089,7 @@ void RenderWidgetHostImpl::ForwardTouchEventWithLatencyInfo( |
return; |
} |
- latency_tracker_.OnInputEvent(touch_event, &touch_with_latency.latency); |
+ DispatchInputEventWithLatencyInfo(touch_event, &touch_with_latency.latency); |
input_router_->SendTouchEvent(touch_with_latency); |
} |
@@ -1157,7 +1158,7 @@ void RenderWidgetHostImpl::ForwardKeyboardEvent( |
NativeWebKeyboardEventWithLatencyInfo key_event_with_latency(key_event); |
key_event_with_latency.event.isBrowserShortcut = is_shortcut; |
- latency_tracker_.OnInputEvent(key_event, &key_event_with_latency.latency); |
+ DispatchInputEventWithLatencyInfo(key_event, &key_event_with_latency.latency); |
input_router_->SendKeyboardEvent(key_event_with_latency); |
} |
@@ -1229,6 +1230,17 @@ void RenderWidgetHostImpl::RemoveMouseEventCallback( |
} |
} |
+void RenderWidgetHostImpl::AddInputEventObserver( |
+ RenderWidgetHost::InputEventObserver* observer) { |
+ if (!input_event_observers_.HasObserver(observer)) |
+ input_event_observers_.AddObserver(observer); |
+} |
+ |
+void RenderWidgetHostImpl::RemoveInputEventObserver( |
+ RenderWidgetHost::InputEventObserver* observer) { |
+ input_event_observers_.RemoveObserver(observer); |
+} |
+ |
void RenderWidgetHostImpl::GetWebScreenInfo(blink::WebScreenInfo* result) { |
TRACE_EVENT0("renderer_host", "RenderWidgetHostImpl::GetWebScreenInfo"); |
if (view_) |
@@ -1888,6 +1900,14 @@ void RenderWidgetHostImpl::DidStopFlinging() { |
view_->DidStopFlinging(); |
} |
+void RenderWidgetHostImpl::DispatchInputEventWithLatencyInfo( |
+ const blink::WebInputEvent& event, |
+ ui::LatencyInfo* latency) { |
+ latency_tracker_.OnInputEvent(event, latency); |
+ FOR_EACH_OBSERVER(InputEventObserver, input_event_observers_, |
+ OnInputEvent(event)); |
+} |
+ |
void RenderWidgetHostImpl::OnKeyboardEventAck( |
const NativeWebKeyboardEventWithLatencyInfo& event, |
InputEventAckState ack_result) { |