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

Side by Side Diff: ash/metrics/user_metrics_recorder.h

Issue 2063333002: mash: Move all ash UMA metrics to //ash/common/metrics (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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
« no previous file with comments | « ash/common/wm_shell.h ('k') | ash/metrics/user_metrics_recorder.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #ifndef ASH_METRICS_USER_METRICS_RECORDER_H_ 5 #ifndef ASH_METRICS_USER_METRICS_RECORDER_H_
6 #define ASH_METRICS_USER_METRICS_RECORDER_H_ 6 #define ASH_METRICS_USER_METRICS_RECORDER_H_
7 7
8 #include <memory> 8 #include <memory>
9 9
10 #include "ash/ash_export.h" 10 #include "ash/ash_export.h"
11 #include "ash/common/metrics/user_metrics_action.h"
11 #include "ash/metrics/task_switch_metrics_recorder.h" 12 #include "ash/metrics/task_switch_metrics_recorder.h"
12 #include "base/macros.h" 13 #include "base/macros.h"
13 #include "base/timer/timer.h" 14 #include "base/timer/timer.h"
14 15
15 namespace ash { 16 namespace ash {
16 17
17 class DesktopTaskSwitchMetricRecorder; 18 class DesktopTaskSwitchMetricRecorder;
18 19
19 namespace test { 20 namespace test {
20 class UserMetricsRecorderTestAPI; 21 class UserMetricsRecorderTestAPI;
21 } 22 }
22 23
23 namespace wm {
24 enum class WmUserMetricsAction;
25 }
26
27 enum UserMetricsAction {
28 UMA_ACCEL_EXIT_FIRST_Q,
29 UMA_ACCEL_EXIT_SECOND_Q,
30 UMA_ACCEL_KEYBOARD_BRIGHTNESS_DOWN_F6,
31 UMA_ACCEL_KEYBOARD_BRIGHTNESS_UP_F7,
32 UMA_ACCEL_LOCK_SCREEN_LOCK_BUTTON,
33 UMA_ACCEL_LOCK_SCREEN_POWER_BUTTON,
34 UMA_ACCEL_MAXIMIZE_RESTORE_F4,
35 UMA_ACCEL_PREVWINDOW_F5,
36 UMA_ACCEL_RESTART_POWER_BUTTON,
37 UMA_ACCEL_SHUT_DOWN_POWER_BUTTON,
38 UMA_CLOSE_THROUGH_CONTEXT_MENU,
39 UMA_DESKTOP_SWITCH_TASK,
40 UMA_LAUNCHER_BUTTON_PRESSED_WITH_MOUSE,
41 UMA_LAUNCHER_BUTTON_PRESSED_WITH_TOUCH,
42 UMA_LAUNCHER_CLICK_ON_APP,
43 UMA_LAUNCHER_CLICK_ON_APPLIST_BUTTON,
44 UMA_LAUNCHER_LAUNCH_TASK,
45 UMA_LAUNCHER_MINIMIZE_TASK,
46 UMA_LAUNCHER_SWITCH_TASK,
47 UMA_MAXIMIZE_MODE_DISABLED,
48 UMA_MAXIMIZE_MODE_ENABLED,
49 UMA_MAXIMIZE_MODE_INITIALLY_DISABLED,
50 UMA_MOUSE_DOWN,
51 UMA_PANEL_MINIMIZE_CAPTION_CLICK,
52 UMA_PANEL_MINIMIZE_CAPTION_GESTURE,
53 UMA_STATUS_AREA_AUDIO_CURRENT_INPUT_DEVICE,
54 UMA_STATUS_AREA_AUDIO_CURRENT_OUTPUT_DEVICE,
55 UMA_STATUS_AREA_AUDIO_SWITCH_INPUT_DEVICE,
56 UMA_STATUS_AREA_AUDIO_SWITCH_OUTPUT_DEVICE,
57 UMA_STATUS_AREA_BRIGHTNESS_CHANGED,
58 UMA_STATUS_AREA_BLUETOOTH_CONNECT_KNOWN_DEVICE,
59 UMA_STATUS_AREA_BLUETOOTH_CONNECT_UNKNOWN_DEVICE,
60 UMA_STATUS_AREA_BLUETOOTH_DISABLED,
61 UMA_STATUS_AREA_BLUETOOTH_ENABLED,
62 UMA_STATUS_AREA_CAPS_LOCK_DETAILED,
63 UMA_STATUS_AREA_CAPS_LOCK_DISABLED_BY_CLICK,
64 UMA_STATUS_AREA_CAPS_LOCK_ENABLED_BY_CLICK,
65 UMA_STATUS_AREA_CAPS_LOCK_POPUP,
66 UMA_STATUS_AREA_CAST_STOP_CAST,
67 UMA_STATUS_AREA_CONNECT_TO_CONFIGURED_NETWORK,
68 UMA_STATUS_AREA_CONNECT_TO_UNCONFIGURED_NETWORK,
69 UMA_STATUS_AREA_CONNECT_TO_VPN,
70 UMA_STATUS_AREA_CHANGED_VOLUME_MENU,
71 UMA_STATUS_AREA_CHANGED_VOLUME_POPUP,
72 UMA_STATUS_AREA_DETAILED_ACCESSABILITY,
73 UMA_STATUS_AREA_DETAILED_AUDIO_VIEW,
74 UMA_STATUS_AREA_DETAILED_BLUETOOTH_VIEW,
75 UMA_STATUS_AREA_DETAILED_BRIGHTNESS_VIEW,
76 UMA_STATUS_AREA_DETAILED_CAST_VIEW,
77 UMA_STATUS_AREA_DETAILED_CAST_VIEW_LAUNCH_CAST,
78 UMA_STATUS_AREA_DETAILED_DRIVE_VIEW,
79 UMA_STATUS_AREA_DETAILED_NETWORK_VIEW,
80 UMA_STATUS_AREA_DETAILED_VPN_VIEW,
81 UMA_STATUS_AREA_DISABLE_AUTO_CLICK,
82 UMA_STATUS_AREA_DISABLE_HIGH_CONTRAST,
83 UMA_STATUS_AREA_DISABLE_LARGE_CURSOR,
84 UMA_STATUS_AREA_DISABLE_MAGNIFIER,
85 UMA_STATUS_AREA_DISABLE_SPOKEN_FEEDBACK,
86 UMA_STATUS_AREA_DISABLE_WIFI,
87 UMA_STATUS_AREA_DISABLE_VIRTUAL_KEYBOARD,
88 UMA_STATUS_AREA_DRIVE_CANCEL_OPERATION,
89 UMA_STATUS_AREA_DRIVE_SETTINGS,
90 UMA_STATUS_AREA_ENABLE_AUTO_CLICK,
91 UMA_STATUS_AREA_ENABLE_HIGH_CONTRAST,
92 UMA_STATUS_AREA_ENABLE_LARGE_CURSOR,
93 UMA_STATUS_AREA_ENABLE_MAGNIFIER,
94 UMA_STATUS_AREA_ENABLE_SPOKEN_FEEDBACK,
95 UMA_STATUS_AREA_ENABLE_WIFI,
96 UMA_STATUS_AREA_ENABLE_VIRTUAL_KEYBOARD,
97 UMA_STATUS_AREA_IME_SHOW_DETAILED,
98 UMA_STATUS_AREA_IME_SWITCH_MODE,
99 UMA_STATUS_AREA_MENU_OPENED,
100 UMA_STATUS_AREA_NETWORK_JOIN_OTHER_CLICKED,
101 UMA_STATUS_AREA_NETWORK_SETTINGS_CLICKED,
102 UMA_STATUS_AREA_SHOW_NETWORK_CONNECTION_DETAILS,
103 UMA_STATUS_AREA_SHOW_VPN_CONNECTION_DETAILS,
104 UMA_STATUS_AREA_SIGN_OUT,
105 UMA_STATUS_AREA_VPN_ADD_BUILT_IN_CLICKED,
106 UMA_STATUS_AREA_VPN_ADD_THIRD_PARTY_CLICKED,
107 UMA_STATUS_AREA_VPN_DISCONNECT_CLICKED,
108 UMA_STATUS_AREA_VPN_SETTINGS_CLICKED,
109 UMA_TOGGLE_MAXIMIZE_CAPTION_CLICK,
110 UMA_TOGGLE_MAXIMIZE_CAPTION_GESTURE,
111 UMA_TOGGLE_SINGLE_AXIS_MAXIMIZE_BORDER_CLICK,
112 UMA_TOUCHPAD_GESTURE_OVERVIEW,
113 UMA_TOUCHSCREEN_TAP_DOWN,
114 UMA_TRAY_OVERVIEW,
115 UMA_WINDOW_APP_CLOSE_BUTTON_CLICK,
116 UMA_WINDOW_CLOSE_BUTTON_CLICK,
117 UMA_WINDOW_MAXIMIZE_BUTTON_CLICK_EXIT_FULLSCREEN,
118 UMA_WINDOW_MAXIMIZE_BUTTON_CLICK_MAXIMIZE,
119 UMA_WINDOW_MAXIMIZE_BUTTON_CLICK_MINIMIZE,
120 UMA_WINDOW_MAXIMIZE_BUTTON_CLICK_RESTORE,
121 UMA_WINDOW_MAXIMIZE_BUTTON_MAXIMIZE_LEFT,
122 UMA_WINDOW_MAXIMIZE_BUTTON_MAXIMIZE_RIGHT,
123
124 // Window selection started by beginning an alt+tab cycle. This does not count
125 // each step through an alt+tab cycle.
126 UMA_WINDOW_CYCLE,
127 };
128
129 // User Metrics Recorder provides a repeating callback (RecordPeriodicMetrics) 24 // User Metrics Recorder provides a repeating callback (RecordPeriodicMetrics)
130 // on a timer to allow recording of state data over time to the UMA records. 25 // on a timer to allow recording of state data over time to the UMA records.
131 // Any additional states (in ash) that require monitoring can be added to 26 // Any additional states (in ash) that require monitoring can be added to
132 // this class. As well calls to record on action metrics 27 // this class. As well calls to record on action metrics
133 // (RecordUserMetricsAction) are passed through the UserMetricsRecorder. 28 // (RecordUserMetricsAction) are passed through the UserMetricsRecorder.
134 class ASH_EXPORT UserMetricsRecorder { 29 class ASH_EXPORT UserMetricsRecorder {
135 public: 30 public:
136 // Creates a UserMetricsRecorder that records metrics periodically. Equivalent 31 // Creates a UserMetricsRecorder that records metrics periodically. Equivalent
137 // to calling UserMetricsRecorder(true). 32 // to calling UserMetricsRecorder(true).
138 UserMetricsRecorder(); 33 UserMetricsRecorder();
139 34
140 virtual ~UserMetricsRecorder(); 35 virtual ~UserMetricsRecorder();
141 36
142 // Records an Ash owned user action. 37 // Records an Ash owned user action.
143 void RecordUserMetricsAction(ash::UserMetricsAction action); 38 void RecordUserMetricsAction(UserMetricsAction action);
144 void RecordUserMetricsAction(wm::WmUserMetricsAction action);
145 39
146 TaskSwitchMetricsRecorder& task_switch_metrics_recorder() { 40 TaskSwitchMetricsRecorder& task_switch_metrics_recorder() {
147 return task_switch_metrics_recorder_; 41 return task_switch_metrics_recorder_;
148 } 42 }
149 43
150 // Informs |this| that the Shell has been initialized. 44 // Informs |this| that the Shell has been initialized.
151 void OnShellInitialized(); 45 void OnShellInitialized();
152 46
153 // Informs |this| that the Shell is going to be shut down. 47 // Informs |this| that the Shell is going to be shut down.
154 void OnShellShuttingDown(); 48 void OnShellShuttingDown();
(...skipping 28 matching lines...) Expand all
183 // clicks or touchscreen taps. 77 // clicks or touchscreen taps.
184 std::unique_ptr<DesktopTaskSwitchMetricRecorder> 78 std::unique_ptr<DesktopTaskSwitchMetricRecorder>
185 desktop_task_switch_metric_recorder_; 79 desktop_task_switch_metric_recorder_;
186 80
187 DISALLOW_COPY_AND_ASSIGN(UserMetricsRecorder); 81 DISALLOW_COPY_AND_ASSIGN(UserMetricsRecorder);
188 }; 82 };
189 83
190 } // namespace ash 84 } // namespace ash
191 85
192 #endif // ASH_METRICS_USER_METRICS_RECORDER_H_ 86 #endif // ASH_METRICS_USER_METRICS_RECORDER_H_
OLDNEW
« no previous file with comments | « ash/common/wm_shell.h ('k') | ash/metrics/user_metrics_recorder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698