Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7078)

Unified Diff: content/browser/renderer_host/render_widget_host_impl.cc

Issue 1984173002: Log First User Interaction in Page Load Metrics (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: update fragments Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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) {
« no previous file with comments | « content/browser/renderer_host/render_widget_host_impl.h ('k') | content/public/browser/render_widget_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698