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..77292aa43ab8427d3ae6be921db2dd8421744e2c 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" |
| @@ -29,6 +30,8 @@ using ui::LatencyInfo; |
| namespace content { |
| namespace { |
| +constexpr int kSamplingInterval = 10; |
| + |
| std::string WebInputEventTypeToInputModalityString(WebInputEvent::Type type) { |
| if (type == blink::WebInputEvent::kMouseWheel) { |
| return "Wheel"; |
| @@ -138,7 +141,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,7 +150,12 @@ RenderWidgetHostLatencyTracker::RenderWidgetHostLatencyTracker() |
| has_seen_first_gesture_scroll_update_(false), |
| active_multi_finger_gesture_(false), |
| touch_start_default_prevented_(false), |
| - render_widget_host_delegate_(nullptr) {} |
| + metric_sampling_(metric_sampling), |
| + metric_sampling_countdown_(-1), |
| + render_widget_host_delegate_(nullptr) { |
| + if (metric_sampling) |
| + metric_sampling_countdown_ = base::RandUint64() % kSamplingInterval; |
| +} |
| RenderWidgetHostLatencyTracker::~RenderWidgetHostLatencyTracker() {} |
| @@ -414,6 +423,15 @@ 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") { |
| + metric_sampling_countdown_++; |
|
tdresser
2017/07/17 20:25:22
"countdown" implies it counts down, but it counts
Navid Zolghadr
2017/07/19 15:57:46
Done.
|
| + metric_sampling_countdown_ %= kSamplingInterval; |
| + if (metric_sampling_ && metric_sampling_countdown_) |
| + return; |
| + metric_sampling_countdown_ = 0; |
|
dtapuska
2017/07/17 20:21:41
This line is useless.
Navid Zolghadr
2017/07/19 15:57:46
Done.
|
| + } |
| + |
| ukm::SourceId ukm_source_id = GetUkmSourceId(); |
| ukm::UkmRecorder* ukm_recorder = ukm::UkmRecorder::Get(); |