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 62e42952dd6e9400f3de541511172139ca8b229d..5e5582e5db0cf0d91f049c603e1c59655b486b80 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_functions.h" |
#include "base/metrics/histogram_macros.h" |
+#include "base/rand_util.h" |
#include "build/build_config.h" |
#include "components/rappor/public/rappor_utils.h" |
#include "content/browser/renderer_host/render_widget_host_delegate.h" |
@@ -138,7 +139,8 @@ void RecordEQTAccuracy(base::TimeDelta queueing_time, |
} // namespace |
-RenderWidgetHostLatencyTracker::RenderWidgetHostLatencyTracker() |
+RenderWidgetHostLatencyTracker::RenderWidgetHostLatencyTracker( |
+ bool metric_sampling) |
: ukm_source_id_(-1), |
last_event_id_(0), |
latency_component_id_(0), |
@@ -146,6 +148,7 @@ RenderWidgetHostLatencyTracker::RenderWidgetHostLatencyTracker() |
has_seen_first_gesture_scroll_update_(false), |
active_multi_finger_gesture_(false), |
touch_start_default_prevented_(false), |
+ metric_sampling_(metric_sampling), |
render_widget_host_delegate_(nullptr) {} |
RenderWidgetHostLatencyTracker::~RenderWidgetHostLatencyTracker() {} |
@@ -414,6 +417,12 @@ void RenderWidgetHostLatencyTracker::ReportUkmScrollLatency( |
const LatencyInfo::LatencyComponent& end_component) { |
CONFIRM_VALID_TIMING(start_component, end_component) |
+ // Only report a subset of this metric as the volume is too high. |
+ if (event_name == "Event.ScrollUpdate.Touch") { |
+ if (metric_sampling_ && base::RandUint64() % 10) |
tdresser
2017/07/17 16:26:40
RandUint64 is thread safe and cryptographically se
Navid Zolghadr
2017/07/17 20:15:14
I changed the implementation to only use random on
|
+ return; |
+ } |
+ |
ukm::SourceId ukm_source_id = GetUkmSourceId(); |
ukm::UkmRecorder* ukm_recorder = ukm::UkmRecorder::Get(); |