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

Unified Diff: content/browser/renderer_host/input/render_widget_host_latency_tracker.cc

Issue 2492793004: Add TimeToScrollUpdateSwapBegin2 in RAPPOR (Closed)
Patch Set: Rebase Created 4 years, 1 month 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/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 a8d3ac23f52d9612d76f3b27e9185f8c9c04e02b..9334428d5f997700f2d87875874e0993a5bda544 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
@@ -9,6 +9,7 @@
#include "base/logging.h"
#include "base/metrics/histogram_macros.h"
#include "build/build_config.h"
+#include "components/rappor/rappor_service.h"
#include "content/browser/renderer_host/render_widget_host_impl.h"
#include "ui/events/blink/web_input_event_traits.h"
@@ -237,7 +238,24 @@ void ComputeScrollLatencyHistograms(
gpu_swap_end_component);
}
+uint64_t RapporHistogramBucketIndex(int64_t ms) {
+ if (ms < 10)
+ return 0;
+ if (ms < 20)
+ return 1;
+ if (ms < 30)
+ return 2;
+ if (ms < 40)
+ return 3;
+ if (ms < 50)
+ return 4;
+ if (ms < 60)
+ return 5;
ncarter (slow) 2016/12/01 23:33:46 What about 6?
Navid Zolghadr 2016/12/08 17:37:29 This is now removed as I reported it without any b
+ return 7;
+}
+
void ComputeTouchAndWheelScrollLatencyHistograms(
+ RenderWidgetHostImpl* render_widget_host_impl,
const ui::LatencyInfo::LatencyComponent& gpu_swap_begin_component,
const ui::LatencyInfo::LatencyComponent& gpu_swap_end_component,
int64_t latency_component_id,
@@ -269,6 +287,27 @@ void ComputeTouchAndWheelScrollLatencyHistograms(
"Event.Latency.ScrollUpdate." + event_type_name +
".TimeToScrollUpdateSwapBegin2",
original_component, gpu_swap_begin_component);
+
+ if (!render_widget_host_impl->delegate())
+ return;
+ rappor::RapporService* rappor_service =
+ render_widget_host_impl->delegate()->getRapporService();
+ if (!rappor_service)
+ return;
+ std::unique_ptr<rappor::Sample> sample =
+ rappor_service->CreateSample(rappor::UMA_RAPPOR_TYPE);
+ sample->SetStringField(
+ "Domain",
+ render_widget_host_impl->delegate()->getRapporCommittedUrl());
Navid Zolghadr 2016/11/10 21:49:19 I was going to create some helper methods in my ne
Steven Holte 2016/11/10 22:49:45 It seems like this value is non-PII, so it should
Navid Zolghadr 2016/12/08 17:37:29 Done. I didn't find anywhere else that this is use
+ uint64_t bucket_index =
+ RapporHistogramBucketIndex((gpu_swap_begin_component.last_event_time -
+ original_component.first_event_time)
+ .InMicroseconds());
+ sample->SetFlagsField("Bucket", uint64_t(1) << bucket_index, 7);
+ rappor_service->RecordSampleObj(
+ "Event.Latency.ScrollUpdate.Touch.TimeToScrollUpdateSwapBegin2."
+ "Rappor",
+ std::move(sample));
}
} else {
// No original component found.
@@ -356,13 +395,15 @@ void AddLatencyInfoComponentIds(LatencyInfo* latency,
} // namespace
-RenderWidgetHostLatencyTracker::RenderWidgetHostLatencyTracker()
+RenderWidgetHostLatencyTracker::RenderWidgetHostLatencyTracker(
+ RenderWidgetHostImpl* render_widget_host_impl)
: last_event_id_(0),
latency_component_id_(0),
device_scale_factor_(1),
has_seen_first_gesture_scroll_update_(false),
multi_finger_gesture_(false),
- touch_start_default_prevented_(false) {}
+ touch_start_default_prevented_(false),
+ render_widget_host_impl(render_widget_host_impl) {}
RenderWidgetHostLatencyTracker::~RenderWidgetHostLatencyTracker() {}
@@ -701,8 +742,8 @@ void RenderWidgetHostLatencyTracker::OnFrameSwapped(
if (source_event_type == ui::SourceEventType::WHEEL ||
source_event_type == ui::SourceEventType::TOUCH) {
ComputeTouchAndWheelScrollLatencyHistograms(
- gpu_swap_begin_component, gpu_swap_end_component, latency_component_id_,
- latency,
+ render_widget_host_impl, gpu_swap_begin_component,
+ gpu_swap_end_component, latency_component_id_, latency,
source_event_type == ui::SourceEventType::WHEEL ? "Wheel" : "Touch");
}

Powered by Google App Engine
This is Rietveld 408576698