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

Side by Side Diff: chrome/browser/metrics/metrics_log.h

Issue 19894003: Move webplugininfo.h to content/public. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 5 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 // This file defines a set of user experience metrics data recorded by 5 // This file defines a set of user experience metrics data recorded by
6 // the MetricsService. This is the unit of data that is sent to the server. 6 // the MetricsService. This is the unit of data that is sent to the server.
7 7
8 #ifndef CHROME_BROWSER_METRICS_METRICS_LOG_H_ 8 #ifndef CHROME_BROWSER_METRICS_METRICS_LOG_H_
9 #define CHROME_BROWSER_METRICS_METRICS_LOG_H_ 9 #define CHROME_BROWSER_METRICS_METRICS_LOG_H_
10 10
(...skipping 12 matching lines...) Expand all
23 23
24 class MetricsNetworkObserver; 24 class MetricsNetworkObserver;
25 struct OmniboxLog; 25 struct OmniboxLog;
26 class PrefService; 26 class PrefService;
27 class PrefRegistrySimple; 27 class PrefRegistrySimple;
28 28
29 namespace base { 29 namespace base {
30 class DictionaryValue; 30 class DictionaryValue;
31 } 31 }
32 32
33 namespace content {
34 struct WebPluginInfo;
35 }
36
33 namespace device { 37 namespace device {
34 class BluetoothAdapter; 38 class BluetoothAdapter;
35 } 39 }
36 40
37 namespace tracked_objects { 41 namespace tracked_objects {
38 struct ProcessDataSnapshot; 42 struct ProcessDataSnapshot;
39 } 43 }
40 44
41 namespace chrome_variations { 45 namespace chrome_variations {
42 struct ActiveGroupId; 46 struct ActiveGroupId;
43 } 47 }
44 48
45 namespace webkit {
46 struct WebPluginInfo;
47 }
48
49 // This is a small helper struct to pass Google Update metrics in a single 49 // This is a small helper struct to pass Google Update metrics in a single
50 // reference argument to MetricsLog::RecordEnvironment(). 50 // reference argument to MetricsLog::RecordEnvironment().
51 struct GoogleUpdateMetrics { 51 struct GoogleUpdateMetrics {
52 GoogleUpdateMetrics(); 52 GoogleUpdateMetrics();
53 ~GoogleUpdateMetrics(); 53 ~GoogleUpdateMetrics();
54 54
55 // Defines whether this is a user-level or system-level install. 55 // Defines whether this is a user-level or system-level install.
56 bool is_system_install; 56 bool is_system_install;
57 // The time at which Google Update last started an automatic update check. 57 // The time at which Google Update last started an automatic update check.
58 base::Time last_started_au; 58 base::Time last_started_au;
(...skipping 28 matching lines...) Expand all
87 static void set_version_extension(const std::string& extension); 87 static void set_version_extension(const std::string& extension);
88 static const std::string& version_extension(); 88 static const std::string& version_extension();
89 89
90 // Records the current operating environment. Takes the list of installed 90 // Records the current operating environment. Takes the list of installed
91 // plugins and Google Update statistics as parameters because those can't be 91 // plugins and Google Update statistics as parameters because those can't be
92 // obtained synchronously from the UI thread. 92 // obtained synchronously from the UI thread.
93 // profile_metrics, if non-null, gives a dictionary of all profile metrics 93 // profile_metrics, if non-null, gives a dictionary of all profile metrics
94 // that are to be recorded. Each value in profile_metrics should be a 94 // that are to be recorded. Each value in profile_metrics should be a
95 // dictionary giving the metrics for the profile. 95 // dictionary giving the metrics for the profile.
96 void RecordEnvironment( 96 void RecordEnvironment(
97 const std::vector<webkit::WebPluginInfo>& plugin_list, 97 const std::vector<content::WebPluginInfo>& plugin_list,
98 const GoogleUpdateMetrics& google_update_metrics); 98 const GoogleUpdateMetrics& google_update_metrics);
99 99
100 // Records the current operating environment. Takes the list of installed 100 // Records the current operating environment. Takes the list of installed
101 // plugins and Google Update statistics as parameters because those can't be 101 // plugins and Google Update statistics as parameters because those can't be
102 // obtained synchronously from the UI thread. This is exposed as a separate 102 // obtained synchronously from the UI thread. This is exposed as a separate
103 // method from the |RecordEnvironment()| method above because we record the 103 // method from the |RecordEnvironment()| method above because we record the
104 // environment with *each* protobuf upload, but only with the initial XML 104 // environment with *each* protobuf upload, but only with the initial XML
105 // upload. 105 // upload.
106 void RecordEnvironmentProto( 106 void RecordEnvironmentProto(
107 const std::vector<webkit::WebPluginInfo>& plugin_list, 107 const std::vector<content::WebPluginInfo>& plugin_list,
108 const GoogleUpdateMetrics& google_update_metrics); 108 const GoogleUpdateMetrics& google_update_metrics);
109 109
110 // Records the input text, available choices, and selected entry when the 110 // Records the input text, available choices, and selected entry when the
111 // user uses the Omnibox to open a URL. 111 // user uses the Omnibox to open a URL.
112 void RecordOmniboxOpenedURL(const OmniboxLog& log); 112 void RecordOmniboxOpenedURL(const OmniboxLog& log);
113 113
114 // Records the passed profiled data, which should be a snapshot of the 114 // Records the passed profiled data, which should be a snapshot of the
115 // browser's profiled performance during startup for a single process. 115 // browser's profiled performance during startup for a single process.
116 void RecordProfilerData( 116 void RecordProfilerData(
117 const tracked_objects::ProcessDataSnapshot& process_data, 117 const tracked_objects::ProcessDataSnapshot& process_data,
118 int process_type); 118 int process_type);
119 119
120 // Record recent delta for critical stability metrics. We can't wait for a 120 // Record recent delta for critical stability metrics. We can't wait for a
121 // restart to gather these, as that delay biases our observation away from 121 // restart to gather these, as that delay biases our observation away from
122 // users that run happily for a looooong time. We send increments with each 122 // users that run happily for a looooong time. We send increments with each
123 // uma log upload, just as we send histogram data. Takes the list of 123 // uma log upload, just as we send histogram data. Takes the list of
124 // installed plugins as a parameter because that can't be obtained 124 // installed plugins as a parameter because that can't be obtained
125 // synchronously from the UI thread. 125 // synchronously from the UI thread.
126 void RecordIncrementalStabilityElements( 126 void RecordIncrementalStabilityElements(
127 const std::vector<webkit::WebPluginInfo>& plugin_list); 127 const std::vector<content::WebPluginInfo>& plugin_list);
128 128
129 protected: 129 protected:
130 // Exposed for the sake of mocking in test code. 130 // Exposed for the sake of mocking in test code.
131 131
132 // Returns the PrefService from which to log metrics data. 132 // Returns the PrefService from which to log metrics data.
133 virtual PrefService* GetPrefService(); 133 virtual PrefService* GetPrefService();
134 134
135 // Returns the screen size for the primary monitor. 135 // Returns the screen size for the primary monitor.
136 virtual gfx::Size GetScreenSize() const; 136 virtual gfx::Size GetScreenSize() const;
137 137
138 // Returns the device scale factor for the primary monitor. 138 // Returns the device scale factor for the primary monitor.
139 virtual float GetScreenDeviceScaleFactor() const; 139 virtual float GetScreenDeviceScaleFactor() const;
140 140
141 // Returns the number of monitors the user is using. 141 // Returns the number of monitors the user is using.
142 virtual int GetScreenCount() const; 142 virtual int GetScreenCount() const;
143 143
144 // Fills |field_trial_ids| with the list of initialized field trials name and 144 // Fills |field_trial_ids| with the list of initialized field trials name and
145 // group ids. 145 // group ids.
146 virtual void GetFieldTrialIds( 146 virtual void GetFieldTrialIds(
147 std::vector<chrome_variations::ActiveGroupId>* field_trial_ids) const; 147 std::vector<chrome_variations::ActiveGroupId>* field_trial_ids) const;
148 148
149 private: 149 private:
150 FRIEND_TEST_ALL_PREFIXES(MetricsLogTest, ChromeOSStabilityData); 150 FRIEND_TEST_ALL_PREFIXES(MetricsLogTest, ChromeOSStabilityData);
151 151
152 // Writes application stability metrics (as part of the profile log). 152 // Writes application stability metrics (as part of the profile log).
153 // NOTE: Has the side-effect of clearing those counts. 153 // NOTE: Has the side-effect of clearing those counts.
154 void WriteStabilityElement( 154 void WriteStabilityElement(
155 const std::vector<webkit::WebPluginInfo>& plugin_list, 155 const std::vector<content::WebPluginInfo>& plugin_list,
156 PrefService* pref); 156 PrefService* pref);
157 157
158 // Within stability group, write plugin crash stats. 158 // Within stability group, write plugin crash stats.
159 void WritePluginStabilityElements( 159 void WritePluginStabilityElements(
160 const std::vector<webkit::WebPluginInfo>& plugin_list, 160 const std::vector<content::WebPluginInfo>& plugin_list,
161 PrefService* pref); 161 PrefService* pref);
162 162
163 // Within the stability group, write required attributes. 163 // Within the stability group, write required attributes.
164 void WriteRequiredStabilityAttributes(PrefService* pref); 164 void WriteRequiredStabilityAttributes(PrefService* pref);
165 165
166 // Within the stability group, write attributes that need to be updated asap 166 // Within the stability group, write attributes that need to be updated asap
167 // and can't be delayed until the user decides to restart chromium. 167 // and can't be delayed until the user decides to restart chromium.
168 // Delaying these stats would bias metrics away from happy long lived 168 // Delaying these stats would bias metrics away from happy long lived
169 // chromium processes (ones that don't crash, and keep on running). 169 // chromium processes (ones that don't crash, and keep on running).
170 void WriteRealtimeStabilityAttributes(PrefService* pref); 170 void WriteRealtimeStabilityAttributes(PrefService* pref);
171 171
172 // Writes the list of installed plugins. 172 // Writes the list of installed plugins.
173 void WritePluginList(const std::vector<webkit::WebPluginInfo>& plugin_list); 173 void WritePluginList(const std::vector<content::WebPluginInfo>& plugin_list);
174 174
175 // Writes info about the Google Update install that is managing this client. 175 // Writes info about the Google Update install that is managing this client.
176 // This is a no-op if called on a non-Windows platform. 176 // This is a no-op if called on a non-Windows platform.
177 void WriteGoogleUpdateProto(const GoogleUpdateMetrics& google_update_metrics); 177 void WriteGoogleUpdateProto(const GoogleUpdateMetrics& google_update_metrics);
178 178
179 // Sets the Bluetooth Adapter instance used for the WriteBluetoothProto() 179 // Sets the Bluetooth Adapter instance used for the WriteBluetoothProto()
180 // call. 180 // call.
181 void SetBluetoothAdapter(scoped_refptr<device::BluetoothAdapter> adapter); 181 void SetBluetoothAdapter(scoped_refptr<device::BluetoothAdapter> adapter);
182 182
183 // Writes info about paired Bluetooth devices on this system. 183 // Writes info about paired Bluetooth devices on this system.
184 // This is a no-op if called on a non-Chrome OS platform. 184 // This is a no-op if called on a non-Chrome OS platform.
185 void WriteBluetoothProto(metrics::SystemProfileProto::Hardware* hardware); 185 void WriteBluetoothProto(metrics::SystemProfileProto::Hardware* hardware);
186 186
187 // Observes network state to provide values for SystemProfile::Network. 187 // Observes network state to provide values for SystemProfile::Network.
188 MetricsNetworkObserver network_observer_; 188 MetricsNetworkObserver network_observer_;
189 189
190 #if defined(OS_CHROMEOS) 190 #if defined(OS_CHROMEOS)
191 metrics::PerfProvider perf_provider_; 191 metrics::PerfProvider perf_provider_;
192 #endif 192 #endif
193 193
194 // Bluetooth Adapter instance for collecting information about paired devices. 194 // Bluetooth Adapter instance for collecting information about paired devices.
195 scoped_refptr<device::BluetoothAdapter> adapter_; 195 scoped_refptr<device::BluetoothAdapter> adapter_;
196 196
197 DISALLOW_COPY_AND_ASSIGN(MetricsLog); 197 DISALLOW_COPY_AND_ASSIGN(MetricsLog);
198 }; 198 };
199 199
200 #endif // CHROME_BROWSER_METRICS_METRICS_LOG_H_ 200 #endif // CHROME_BROWSER_METRICS_METRICS_LOG_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698