Chromium Code Reviews| 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 cda93c8ee399e6496c6acc6dec6cc25fdb67e213..8d0ef0041b84e9c719239ffbd229e7d5b8fa97df 100644 |
| --- a/chrome/browser/media/router/media_router_metrics.cc |
| +++ b/chrome/browser/media/router/media_router_metrics.cc |
| @@ -6,13 +6,16 @@ |
| #include "base/macros.h" |
| #include "base/metrics/histogram_macros.h" |
| +#include "base/version.h" |
| +#include "components/version_info/version_info.h" |
| +#include "extensions/common/extension.h" |
| namespace media_router { |
| // static |
| void MediaRouterMetrics::RecordMediaRouterDialogOrigin( |
| MediaRouterDialogOpenOrigin origin) { |
| - DCHECK_NE(static_cast<int>(origin), |
| + DCHECK_LT(static_cast<int>(origin), |
| static_cast<int>(MediaRouterDialogOpenOrigin::TOTAL_COUNT)); |
| UMA_HISTOGRAM_ENUMERATION( |
| "MediaRouter.Icon.Click.Location", static_cast<int>(origin), |
| @@ -22,7 +25,7 @@ void MediaRouterMetrics::RecordMediaRouterDialogOrigin( |
| // static |
| void MediaRouterMetrics::RecordMediaRouteProviderWakeReason( |
| MediaRouteProviderWakeReason reason) { |
| - DCHECK_NE(static_cast<int>(reason), |
| + DCHECK_LT(static_cast<int>(reason), |
| static_cast<int>(MediaRouteProviderWakeReason::TOTAL_COUNT)); |
| UMA_HISTOGRAM_ENUMERATION( |
| "MediaRouter.Provider.WakeReason", static_cast<int>(reason), |
| @@ -46,7 +49,7 @@ void MediaRouterMetrics::RecordMediaRouterDialogLoaded( |
| // static |
| void MediaRouterMetrics::RecordMediaRouterInitialUserAction( |
| MediaRouterUserAction action) { |
| - DCHECK_NE(static_cast<int>(action), |
| + DCHECK_LT(static_cast<int>(action), |
| static_cast<int>(MediaRouterUserAction::TOTAL_COUNT)); |
| UMA_HISTOGRAM_ENUMERATION( |
| "MediaRouter.Ui.FirstAction", static_cast<int>(action), |
| @@ -56,12 +59,61 @@ void MediaRouterMetrics::RecordMediaRouterInitialUserAction( |
| // static |
| void MediaRouterMetrics::RecordRouteCreationOutcome( |
| MediaRouterRouteCreationOutcome outcome) { |
| - DCHECK_NE(static_cast<int>(outcome), |
| - static_cast<int>( |
| - MediaRouterRouteCreationOutcome::TOTAL_COUNT)); |
| + DCHECK_LT(static_cast<int>(outcome), |
| + static_cast<int>(MediaRouterRouteCreationOutcome::TOTAL_COUNT)); |
| UMA_HISTOGRAM_ENUMERATION( |
| "MediaRouter.Route.CreationOutcome", static_cast<int>(outcome), |
| static_cast<int>(MediaRouterRouteCreationOutcome::TOTAL_COUNT)); |
| } |
| +// static |
| +void MediaRouterMetrics::RecordMediaRouteProviderVersion( |
| + const extensions::Extension& extension) { |
| + MediaRouteProviderVersion version = MediaRouteProviderVersion::UNKNOWN; |
| + const base::Version* extension_version = extension.version(); |
| + if (extension_version) { |
| + version = GetMediaRouteProviderVersion( |
| + *extension_version, base::Version(version_info::GetVersionNumber())); |
| + } |
| + |
| + DCHECK_LT(static_cast<int>(version), |
| + static_cast<int>(MediaRouteProviderVersion::TOTAL_COUNT)); |
| + UMA_HISTOGRAM_ENUMERATION( |
| + "MediaRouter.Provider.Version", static_cast<int>(version), |
| + static_cast<int>(MediaRouteProviderVersion::TOTAL_COUNT)); |
| +} |
| + |
| +// static |
| +void MediaRouterMetrics::RecordMediaRouteProviderWakeup( |
| + MediaRouteProviderWakeup wakeup) { |
| + DCHECK_LT(static_cast<int>(wakeup), |
| + static_cast<int>(MediaRouteProviderWakeup::TOTAL_COUNT)); |
| + UMA_HISTOGRAM_ENUMERATION( |
| + "MediaRouter.Provider.Wakeup", static_cast<int>(wakeup), |
| + static_cast<int>(MediaRouteProviderWakeup::TOTAL_COUNT)); |
| +} |
| + |
| +// static |
| +MediaRouteProviderVersion MediaRouterMetrics::GetMediaRouteProviderVersion( |
| + const base::Version& extension_version, |
| + const base::Version& browser_version) { |
| + if (!extension_version.IsValid() || !extension_version.components().size() || |
|
Wez
2016/03/18 23:32:00
nit: Use empty() instead of !size().
mark a. foltz
2016/03/19 00:15:02
Done.
|
| + !browser_version.IsValid() || !browser_version.components().size()) { |
| + return MediaRouteProviderVersion::UNKNOWN; |
| + } |
| + |
| + uint32_t extension_major = extension_version.components()[0]; |
| + uint32_t browser_major = browser_version.components()[0]; |
| + // Sanity check. |
| + if (extension_major == 0 || browser_major == 0) { |
|
Wez
2016/03/18 23:32:00
nit: Hard to imagine when |browser_major| could be
mark a. foltz
2016/03/19 00:15:02
That seems a little drastic for this since it's ju
|
| + return MediaRouteProviderVersion::UNKNOWN; |
| + } else if (extension_major >= browser_major) { |
| + return MediaRouteProviderVersion::SAME_VERSION_AS_CHROME; |
| + } else if (browser_major - extension_major == 1) { |
| + return MediaRouteProviderVersion::ONE_VERSION_BEHIND_CHROME; |
| + } else { |
| + return MediaRouteProviderVersion::MULTIPLE_VERSIONS_BEHIND_CHROME; |
| + } |
| +} |
| + |
| } // namespace media_router |