Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(199)

Side by Side Diff: chrome/browser/media/router/media_router_metrics.cc

Issue 1765143002: [Media Router] Add UMA histograms tracking component extension version/wakeups (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Move media_router_metrics_unittest to non_android Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/media/router/media_router_metrics.h" 5 #include "chrome/browser/media/router/media_router_metrics.h"
6 6
7 #include "base/macros.h" 7 #include "base/macros.h"
8 #include "base/metrics/histogram_macros.h" 8 #include "base/metrics/histogram_macros.h"
9 #if !defined(OS_ANDROID)
10 #include "base/version.h"
11 #include "components/version_info/version_info.h"
12 #include "extensions/common/extension.h"
13 #endif // !defined(OS_ANDROID)
9 14
10 namespace media_router { 15 namespace media_router {
11 16
12 // static 17 // static
13 void MediaRouterMetrics::RecordMediaRouterDialogOrigin( 18 void MediaRouterMetrics::RecordMediaRouterDialogOrigin(
14 MediaRouterDialogOpenOrigin origin) { 19 MediaRouterDialogOpenOrigin origin) {
15 DCHECK_NE(static_cast<int>(origin), 20 DCHECK_LT(static_cast<int>(origin),
16 static_cast<int>(MediaRouterDialogOpenOrigin::TOTAL_COUNT)); 21 static_cast<int>(MediaRouterDialogOpenOrigin::TOTAL_COUNT));
17 UMA_HISTOGRAM_ENUMERATION( 22 UMA_HISTOGRAM_ENUMERATION(
18 "MediaRouter.Icon.Click.Location", static_cast<int>(origin), 23 "MediaRouter.Icon.Click.Location", static_cast<int>(origin),
19 static_cast<int>(MediaRouterDialogOpenOrigin::TOTAL_COUNT)); 24 static_cast<int>(MediaRouterDialogOpenOrigin::TOTAL_COUNT));
20 } 25 }
21 26
22 // static 27 // static
23 void MediaRouterMetrics::RecordMediaRouteProviderWakeReason(
24 MediaRouteProviderWakeReason reason) {
25 DCHECK_NE(static_cast<int>(reason),
26 static_cast<int>(MediaRouteProviderWakeReason::TOTAL_COUNT));
27 UMA_HISTOGRAM_ENUMERATION(
28 "MediaRouter.Provider.WakeReason", static_cast<int>(reason),
29 static_cast<int>(MediaRouteProviderWakeReason::TOTAL_COUNT));
30 }
31
32 // static
33 void MediaRouterMetrics::RecordMediaRouterDialogPaint( 28 void MediaRouterMetrics::RecordMediaRouterDialogPaint(
34 const base::TimeDelta delta) { 29 const base::TimeDelta delta) {
35 UMA_HISTOGRAM_TIMES("MediaRouter.Ui.Dialog.Paint", 30 UMA_HISTOGRAM_TIMES("MediaRouter.Ui.Dialog.Paint",
36 delta); 31 delta);
37 } 32 }
38 33
39 // static 34 // static
40 void MediaRouterMetrics::RecordMediaRouterDialogLoaded( 35 void MediaRouterMetrics::RecordMediaRouterDialogLoaded(
41 const base::TimeDelta delta) { 36 const base::TimeDelta delta) {
42 UMA_HISTOGRAM_TIMES("MediaRouter.Ui.Dialog.LoadedWithData", 37 UMA_HISTOGRAM_TIMES("MediaRouter.Ui.Dialog.LoadedWithData",
43 delta); 38 delta);
44 } 39 }
45 40
46 // static 41 // static
47 void MediaRouterMetrics::RecordMediaRouterInitialUserAction( 42 void MediaRouterMetrics::RecordMediaRouterInitialUserAction(
48 MediaRouterUserAction action) { 43 MediaRouterUserAction action) {
49 DCHECK_NE(static_cast<int>(action), 44 DCHECK_LT(static_cast<int>(action),
50 static_cast<int>(MediaRouterUserAction::TOTAL_COUNT)); 45 static_cast<int>(MediaRouterUserAction::TOTAL_COUNT));
51 UMA_HISTOGRAM_ENUMERATION( 46 UMA_HISTOGRAM_ENUMERATION(
52 "MediaRouter.Ui.FirstAction", static_cast<int>(action), 47 "MediaRouter.Ui.FirstAction", static_cast<int>(action),
53 static_cast<int>(MediaRouterUserAction::TOTAL_COUNT)); 48 static_cast<int>(MediaRouterUserAction::TOTAL_COUNT));
54 } 49 }
55 50
56 // static 51 // static
57 void MediaRouterMetrics::RecordRouteCreationOutcome( 52 void MediaRouterMetrics::RecordRouteCreationOutcome(
58 MediaRouterRouteCreationOutcome outcome) { 53 MediaRouterRouteCreationOutcome outcome) {
59 DCHECK_NE(static_cast<int>(outcome), 54 DCHECK_LT(static_cast<int>(outcome),
60 static_cast<int>( 55 static_cast<int>(MediaRouterRouteCreationOutcome::TOTAL_COUNT));
61 MediaRouterRouteCreationOutcome::TOTAL_COUNT));
62 UMA_HISTOGRAM_ENUMERATION( 56 UMA_HISTOGRAM_ENUMERATION(
63 "MediaRouter.Route.CreationOutcome", static_cast<int>(outcome), 57 "MediaRouter.Route.CreationOutcome", static_cast<int>(outcome),
64 static_cast<int>(MediaRouterRouteCreationOutcome::TOTAL_COUNT)); 58 static_cast<int>(MediaRouterRouteCreationOutcome::TOTAL_COUNT));
65 } 59 }
66 60
61 #if !defined(OS_ANDROID)
62 // static
63 void MediaRouterMetrics::RecordMediaRouteProviderWakeReason(
64 MediaRouteProviderWakeReason reason) {
65 DCHECK_LT(static_cast<int>(reason),
66 static_cast<int>(MediaRouteProviderWakeReason::TOTAL_COUNT));
67 UMA_HISTOGRAM_ENUMERATION(
68 "MediaRouter.Provider.WakeReason", static_cast<int>(reason),
69 static_cast<int>(MediaRouteProviderWakeReason::TOTAL_COUNT));
70 }
71
72 // static
73 void MediaRouterMetrics::RecordMediaRouteProviderVersion(
74 const extensions::Extension& extension) {
75 MediaRouteProviderVersion version = MediaRouteProviderVersion::UNKNOWN;
76 const base::Version* extension_version = extension.version();
77 if (extension_version) {
78 version = GetMediaRouteProviderVersion(
79 *extension_version, base::Version(version_info::GetVersionNumber()));
80 }
81
82 DCHECK_LT(static_cast<int>(version),
83 static_cast<int>(MediaRouteProviderVersion::TOTAL_COUNT));
84 UMA_HISTOGRAM_ENUMERATION(
85 "MediaRouter.Provider.Version", static_cast<int>(version),
86 static_cast<int>(MediaRouteProviderVersion::TOTAL_COUNT));
87 }
88
89 // static
90 void MediaRouterMetrics::RecordMediaRouteProviderWakeup(
91 MediaRouteProviderWakeup wakeup) {
92 DCHECK_LT(static_cast<int>(wakeup),
93 static_cast<int>(MediaRouteProviderWakeup::TOTAL_COUNT));
94 UMA_HISTOGRAM_ENUMERATION(
95 "MediaRouter.Provider.Wakeup", static_cast<int>(wakeup),
96 static_cast<int>(MediaRouteProviderWakeup::TOTAL_COUNT));
97 }
98
99 // static
100 MediaRouteProviderVersion MediaRouterMetrics::GetMediaRouteProviderVersion(
101 const base::Version& extension_version,
102 const base::Version& browser_version) {
103 if (!extension_version.IsValid() || extension_version.components().empty() ||
104 !browser_version.IsValid() || browser_version.components().empty()) {
105 return MediaRouteProviderVersion::UNKNOWN;
106 }
107
108 uint32_t extension_major = extension_version.components()[0];
109 uint32_t browser_major = browser_version.components()[0];
110 // Sanity check.
111 if (extension_major == 0 || browser_major == 0) {
112 return MediaRouteProviderVersion::UNKNOWN;
113 } else if (extension_major >= browser_major) {
114 return MediaRouteProviderVersion::SAME_VERSION_AS_CHROME;
115 } else if (browser_major - extension_major == 1) {
116 return MediaRouteProviderVersion::ONE_VERSION_BEHIND_CHROME;
117 } else {
118 return MediaRouteProviderVersion::MULTIPLE_VERSIONS_BEHIND_CHROME;
119 }
120 }
121 #endif // !defined(OS_ANDROID)
122
67 } // namespace media_router 123 } // namespace media_router
OLDNEW
« no previous file with comments | « chrome/browser/media/router/media_router_metrics.h ('k') | chrome/browser/media/router/media_router_metrics_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698