Chromium Code Reviews| 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(); |