Index: content/browser/renderer_host/input/render_widget_host_latency_tracker.cc |
diff --git a/content/browser/renderer_host/input/render_widget_host_latency_tracker.cc b/content/browser/renderer_host/input/render_widget_host_latency_tracker.cc |
index b0ba89f77e5ae0e26ce0dd96ebd2b16d9a6150d8..1baa04c1f0ed020805226614ab1709947c292212 100644 |
--- a/content/browser/renderer_host/input/render_widget_host_latency_tracker.cc |
+++ b/content/browser/renderer_host/input/render_widget_host_latency_tracker.cc |
@@ -305,6 +305,11 @@ void RenderWidgetHostLatencyTracker::OnInputEvent( |
const blink::WebInputEvent& event, |
LatencyInfo* latency) { |
DCHECK(latency); |
+ |
+ for (size_t i = 0; i < input_event_callbacks_.size(); ++i) { |
+ input_event_callbacks_[i].Run(event); |
+ } |
+ |
if (latency->FindLatency(ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT, |
latency_component_id_, NULL)) { |
return; |
@@ -470,4 +475,19 @@ void RenderWidgetHostLatencyTracker::OnFrameSwapped( |
latency); |
} |
+void RenderWidgetHostLatencyTracker::AddInputEventCallback( |
+ const InputEventCallback& callback) { |
+ input_event_callbacks_.push_back(callback); |
+} |
+ |
+void RenderWidgetHostLatencyTracker::RemoveInputEventCallback( |
+ const InputEventCallback& callback) { |
+ for (size_t i = 0; i < input_event_callbacks_.size(); ++i) { |
+ if (input_event_callbacks_[i].Equals(callback)) { |
+ input_event_callbacks_.erase(input_event_callbacks_.begin() + i); |
+ return; |
+ } |
+ } |
+} |
+ |
} // namespace content |