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

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: Remove unnecessary #include 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 #include "base/version.h"
10 #include "components/version_info/version_info.h"
11 #include "extensions/common/extension.h"
9 12
10 namespace media_router { 13 namespace media_router {
11 14
12 // static 15 // static
13 void MediaRouterMetrics::RecordMediaRouterDialogOrigin( 16 void MediaRouterMetrics::RecordMediaRouterDialogOrigin(
14 MediaRouterDialogOpenOrigin origin) { 17 MediaRouterDialogOpenOrigin origin) {
15 DCHECK_NE(static_cast<int>(origin), 18 DCHECK_LT(static_cast<int>(origin),
16 static_cast<int>(MediaRouterDialogOpenOrigin::TOTAL_COUNT)); 19 static_cast<int>(MediaRouterDialogOpenOrigin::TOTAL_COUNT));
17 UMA_HISTOGRAM_ENUMERATION( 20 UMA_HISTOGRAM_ENUMERATION(
18 "MediaRouter.Icon.Click.Location", static_cast<int>(origin), 21 "MediaRouter.Icon.Click.Location", static_cast<int>(origin),
19 static_cast<int>(MediaRouterDialogOpenOrigin::TOTAL_COUNT)); 22 static_cast<int>(MediaRouterDialogOpenOrigin::TOTAL_COUNT));
20 } 23 }
21 24
22 // static 25 // static
23 void MediaRouterMetrics::RecordMediaRouteProviderWakeReason( 26 void MediaRouterMetrics::RecordMediaRouteProviderWakeReason(
24 MediaRouteProviderWakeReason reason) { 27 MediaRouteProviderWakeReason reason) {
25 DCHECK_NE(static_cast<int>(reason), 28 DCHECK_LT(static_cast<int>(reason),
26 static_cast<int>(MediaRouteProviderWakeReason::TOTAL_COUNT)); 29 static_cast<int>(MediaRouteProviderWakeReason::TOTAL_COUNT));
27 UMA_HISTOGRAM_ENUMERATION( 30 UMA_HISTOGRAM_ENUMERATION(
28 "MediaRouter.Provider.WakeReason", static_cast<int>(reason), 31 "MediaRouter.Provider.WakeReason", static_cast<int>(reason),
29 static_cast<int>(MediaRouteProviderWakeReason::TOTAL_COUNT)); 32 static_cast<int>(MediaRouteProviderWakeReason::TOTAL_COUNT));
30 } 33 }
31 34
32 // static 35 // static
33 void MediaRouterMetrics::RecordMediaRouterDialogPaint( 36 void MediaRouterMetrics::RecordMediaRouterDialogPaint(
34 const base::TimeDelta delta) { 37 const base::TimeDelta delta) {
35 UMA_HISTOGRAM_TIMES("MediaRouter.Ui.Dialog.Paint", 38 UMA_HISTOGRAM_TIMES("MediaRouter.Ui.Dialog.Paint",
36 delta); 39 delta);
37 } 40 }
38 41
39 // static 42 // static
40 void MediaRouterMetrics::RecordMediaRouterDialogLoaded( 43 void MediaRouterMetrics::RecordMediaRouterDialogLoaded(
41 const base::TimeDelta delta) { 44 const base::TimeDelta delta) {
42 UMA_HISTOGRAM_TIMES("MediaRouter.Ui.Dialog.LoadedWithData", 45 UMA_HISTOGRAM_TIMES("MediaRouter.Ui.Dialog.LoadedWithData",
43 delta); 46 delta);
44 } 47 }
45 48
46 // static 49 // static
47 void MediaRouterMetrics::RecordMediaRouterInitialUserAction( 50 void MediaRouterMetrics::RecordMediaRouterInitialUserAction(
48 MediaRouterUserAction action) { 51 MediaRouterUserAction action) {
49 DCHECK_NE(static_cast<int>(action), 52 DCHECK_LT(static_cast<int>(action),
50 static_cast<int>(MediaRouterUserAction::TOTAL_COUNT)); 53 static_cast<int>(MediaRouterUserAction::TOTAL_COUNT));
51 UMA_HISTOGRAM_ENUMERATION( 54 UMA_HISTOGRAM_ENUMERATION(
52 "MediaRouter.Ui.FirstAction", static_cast<int>(action), 55 "MediaRouter.Ui.FirstAction", static_cast<int>(action),
53 static_cast<int>(MediaRouterUserAction::TOTAL_COUNT)); 56 static_cast<int>(MediaRouterUserAction::TOTAL_COUNT));
54 } 57 }
55 58
56 // static 59 // static
57 void MediaRouterMetrics::RecordRouteCreationOutcome( 60 void MediaRouterMetrics::RecordRouteCreationOutcome(
58 MediaRouterRouteCreationOutcome outcome) { 61 MediaRouterRouteCreationOutcome outcome) {
59 DCHECK_NE(static_cast<int>(outcome), 62 DCHECK_LT(static_cast<int>(outcome),
60 static_cast<int>( 63 static_cast<int>(MediaRouterRouteCreationOutcome::TOTAL_COUNT));
61 MediaRouterRouteCreationOutcome::TOTAL_COUNT));
62 UMA_HISTOGRAM_ENUMERATION( 64 UMA_HISTOGRAM_ENUMERATION(
63 "MediaRouter.Route.CreationOutcome", static_cast<int>(outcome), 65 "MediaRouter.Route.CreationOutcome", static_cast<int>(outcome),
64 static_cast<int>(MediaRouterRouteCreationOutcome::TOTAL_COUNT)); 66 static_cast<int>(MediaRouterRouteCreationOutcome::TOTAL_COUNT));
65 } 67 }
66 68
69 // static
70 void MediaRouterMetrics::RecordMediaRouteProviderVersion(
71 const extensions::Extension& extension) {
72 MediaRouteProviderVersion version = MediaRouteProviderVersion::UNKNOWN;
73 const base::Version* extension_version = extension.version();
74 if (extension_version) {
75 version = GetMediaRouteProviderVersion(
76 *extension_version, base::Version(version_info::GetVersionNumber()));
77 }
78
79 DCHECK_LT(static_cast<int>(version),
80 static_cast<int>(MediaRouteProviderVersion::TOTAL_COUNT));
81 UMA_HISTOGRAM_ENUMERATION(
82 "MediaRouter.Provider.Version", static_cast<int>(version),
83 static_cast<int>(MediaRouteProviderVersion::TOTAL_COUNT));
84 }
85
86 // static
87 void MediaRouterMetrics::RecordMediaRouteProviderWakeup(
88 MediaRouteProviderWakeup wakeup) {
89 DCHECK_LT(static_cast<int>(wakeup),
90 static_cast<int>(MediaRouteProviderWakeup::TOTAL_COUNT));
91 UMA_HISTOGRAM_ENUMERATION(
92 "MediaRouter.Provider.Wakeup", static_cast<int>(wakeup),
93 static_cast<int>(MediaRouteProviderWakeup::TOTAL_COUNT));
94 }
95
96 // static
97 MediaRouteProviderVersion MediaRouterMetrics::GetMediaRouteProviderVersion(
98 const base::Version& extension_version,
99 const base::Version& browser_version) {
100 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.
101 !browser_version.IsValid() || !browser_version.components().size()) {
102 return MediaRouteProviderVersion::UNKNOWN;
103 }
104
105 uint32_t extension_major = extension_version.components()[0];
106 uint32_t browser_major = browser_version.components()[0];
107 // Sanity check.
108 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
109 return MediaRouteProviderVersion::UNKNOWN;
110 } else if (extension_major >= browser_major) {
111 return MediaRouteProviderVersion::SAME_VERSION_AS_CHROME;
112 } else if (browser_major - extension_major == 1) {
113 return MediaRouteProviderVersion::ONE_VERSION_BEHIND_CHROME;
114 } else {
115 return MediaRouteProviderVersion::MULTIPLE_VERSIONS_BEHIND_CHROME;
116 }
117 }
118
67 } // namespace media_router 119 } // 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