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

Unified Diff: content/renderer/input/input_handler_proxy.cc

Issue 764403002: Expand UMA coverage for compositor-handled events and fling FPS (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix build Created 6 years 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
« no previous file with comments | « content/renderer/input/input_handler_proxy.h ('k') | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/input/input_handler_proxy.cc
diff --git a/content/renderer/input/input_handler_proxy.cc b/content/renderer/input/input_handler_proxy.cc
index 0d4b17320a1986903d7c6942d404731474f9c534..ce178ec13ec1a6ae1f416291df6f62d0cae9dfbf 100644
--- a/content/renderer/input/input_handler_proxy.cc
+++ b/content/renderer/input/input_handler_proxy.cc
@@ -115,11 +115,15 @@ WebGestureEvent ObtainGestureScrollBegin(const WebGestureEvent& event) {
return scroll_begin_event;
}
-void SendScrollLatencyUma(const WebInputEvent& event,
- const ui::LatencyInfo& latency_info) {
+void ReportInputEventLatencyUma(const WebInputEvent& event,
+ const ui::LatencyInfo& latency_info) {
no sievers 2014/12/05 21:27:00 DCHECK(uma_latency_reporting_enabled_);
jdduke (slow) 2014/12/05 21:31:53 Hmm, this isn't a member function, though I could
no sievers 2014/12/05 21:33:52 Oops nevermind, no big deal.
if (!(event.type == WebInputEvent::GestureScrollBegin ||
- event.type == WebInputEvent::GestureScrollUpdate))
+ event.type == WebInputEvent::GestureScrollUpdate ||
+ event.type == WebInputEvent::GesturePinchBegin ||
+ event.type == WebInputEvent::GesturePinchUpdate ||
+ event.type == WebInputEvent::GestureFlingStart)) {
return;
+ }
ui::LatencyInfo::LatencyMap::const_iterator it =
latency_info.latency_components.find(std::make_pair(
@@ -130,17 +134,42 @@ void SendScrollLatencyUma(const WebInputEvent& event,
base::TimeDelta delta = base::TimeTicks::HighResNow() - it->second.event_time;
for (size_t i = 0; i < it->second.event_count; ++i) {
- UMA_HISTOGRAM_CUSTOM_COUNTS(
- "Event.Latency.RendererImpl.GestureScroll2",
- delta.InMicroseconds(),
- 1,
- 1000000,
- 100);
+ switch (event.type) {
+ case blink::WebInputEvent::GestureScrollBegin:
+ UMA_HISTOGRAM_CUSTOM_COUNTS(
+ "Event.Latency.RendererImpl.GestureScrollBegin",
+ delta.InMicroseconds(), 1, 1000000, 100);
+ break;
+ case blink::WebInputEvent::GestureScrollUpdate:
+ UMA_HISTOGRAM_CUSTOM_COUNTS(
+ // So named for historical reasons.
+ "Event.Latency.RendererImpl.GestureScroll2",
+ delta.InMicroseconds(), 1, 1000000, 100);
+ break;
+ case blink::WebInputEvent::GesturePinchBegin:
+ UMA_HISTOGRAM_CUSTOM_COUNTS(
+ "Event.Latency.RendererImpl.GesturePinchBegin",
+ delta.InMicroseconds(), 1, 1000000, 100);
+ break;
+ case blink::WebInputEvent::GesturePinchUpdate:
+ UMA_HISTOGRAM_CUSTOM_COUNTS(
+ "Event.Latency.RendererImpl.GesturePinchUpdate",
+ delta.InMicroseconds(), 1, 1000000, 100);
+ break;
+ case blink::WebInputEvent::GestureFlingStart:
+ UMA_HISTOGRAM_CUSTOM_COUNTS(
+ "Event.Latency.RendererImpl.GestureFlingStart",
+ delta.InMicroseconds(), 1, 1000000, 100);
+ break;
+ default:
+ NOTREACHED();
+ break;
+ }
}
-} // namespace
-
}
+} // namespace
+
namespace content {
InputHandlerProxy::InputHandlerProxy(cc::InputHandler* input_handler,
@@ -156,7 +185,9 @@ InputHandlerProxy::InputHandlerProxy(cc::InputHandler* input_handler,
fling_may_be_active_on_main_thread_(false),
disallow_horizontal_fling_scroll_(false),
disallow_vertical_fling_scroll_(false),
- has_fling_animation_started_(false) {
+ has_fling_animation_started_(false),
+ uma_latency_reporting_enabled_(
+ base::TimeTicks::IsHighResNowFastAndReliable()) {
DCHECK(client);
input_handler_->BindToClient(this);
smooth_scroll_enabled_ = CommandLine::ForCurrentProcess()->HasSwitch(
@@ -185,7 +216,8 @@ InputHandlerProxy::HandleInputEventWithLatencyInfo(
ui::LatencyInfo* latency_info) {
DCHECK(input_handler_);
- SendScrollLatencyUma(event, *latency_info);
+ if (uma_latency_reporting_enabled_)
+ ReportInputEventLatencyUma(event, *latency_info);
TRACE_EVENT_FLOW_STEP0("input",
"LatencyInfo.Flow",
« no previous file with comments | « content/renderer/input/input_handler_proxy.h ('k') | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698