| Index: chrome/browser/media/router/media_router_metrics.cc
|
| diff --git a/chrome/browser/media/router/media_router_metrics.cc b/chrome/browser/media/router/media_router_metrics.cc
|
| index 3da4c634908d4ac17a1f8b82f1630b71f3d38a79..a64b98a813f488d074580d490e4188ca4ef9b2eb 100644
|
| --- a/chrome/browser/media/router/media_router_metrics.cc
|
| +++ b/chrome/browser/media/router/media_router_metrics.cc
|
| @@ -6,10 +6,23 @@
|
|
|
| #include "base/macros.h"
|
| #include "base/metrics/histogram_macros.h"
|
| +#include "base/time/default_clock.h"
|
| +
|
| +namespace {
|
| +// How long to wait between device counts metrics are recorded. Set to 1 hour.
|
| +const int kDeviceCountMetricThresholdMins = 60;
|
| +} // namespace
|
|
|
| namespace media_router {
|
|
|
| +MediaRouterMetrics::MediaRouterMetrics() : clock_(new base::DefaultClock()) {}
|
| +MediaRouterMetrics::~MediaRouterMetrics() = default;
|
| +
|
| // static
|
| +const char MediaRouterMetrics::kHistogramDialAvailableDeviceCount[] =
|
| + "MediaRouter.Dial.AvailableDevicesCount";
|
| +const char MediaRouterMetrics::kHistogramDialKnownDeviceCount[] =
|
| + "MediaRouter.Dial.KnownDevicesCount";
|
| const char MediaRouterMetrics::kHistogramIconClickLocation[] =
|
| "MediaRouter.Icon.Click.Location";
|
| const char MediaRouterMetrics::kHistogramUiDialogPaint[] =
|
| @@ -63,4 +76,20 @@ void MediaRouterMetrics::RecordRouteCreationOutcome(
|
| static_cast<int>(MediaRouterRouteCreationOutcome::TOTAL_COUNT));
|
| }
|
|
|
| +void MediaRouterMetrics::RecordDialDeviceCounts(size_t available_device_count,
|
| + size_t known_device_count) {
|
| + if (clock_->Now() - device_count_metrics_record_time_ <
|
| + base::TimeDelta::FromMinutes(kDeviceCountMetricThresholdMins)) {
|
| + return;
|
| + }
|
| + UMA_HISTOGRAM_COUNTS_100(kHistogramDialAvailableDeviceCount,
|
| + available_device_count);
|
| + UMA_HISTOGRAM_COUNTS_100(kHistogramDialKnownDeviceCount, known_device_count);
|
| + device_count_metrics_record_time_ = clock_->Now();
|
| +}
|
| +
|
| +void MediaRouterMetrics::SetClockForTest(std::unique_ptr<base::Clock> clock) {
|
| + clock_ = std::move(clock);
|
| +}
|
| +
|
| } // namespace media_router
|
|
|