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

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

Issue 296483004: Introduce a MetricsDataProvider interface. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 6 years, 7 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
« no previous file with comments | « no previous file | chrome/browser/metrics/metrics_log.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 (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 19 matching lines...) Expand all
30 #endif 30 #endif
31 31
32 namespace base { 32 namespace base {
33 class DictionaryValue; 33 class DictionaryValue;
34 } 34 }
35 35
36 namespace content { 36 namespace content {
37 struct WebPluginInfo; 37 struct WebPluginInfo;
38 } 38 }
39 39
40 namespace metrics {
41 class MetricsProvider;
42 }
43
40 namespace tracked_objects { 44 namespace tracked_objects {
41 struct ProcessDataSnapshot; 45 struct ProcessDataSnapshot;
42 } 46 }
43 47
44 namespace variations { 48 namespace variations {
45 struct ActiveGroupId; 49 struct ActiveGroupId;
46 } 50 }
47 51
48 // This is a small helper struct to pass Google Update metrics in a single 52 // This is a small helper struct to pass Google Update metrics in a single
49 // reference argument to MetricsLog::RecordEnvironment(). 53 // reference argument to MetricsLog::RecordEnvironment().
(...skipping 25 matching lines...) Expand all
75 static void RegisterPrefs(PrefRegistrySimple* registry); 79 static void RegisterPrefs(PrefRegistrySimple* registry);
76 80
77 // Get the current version of the application as a string. 81 // Get the current version of the application as a string.
78 static std::string GetVersionString(); 82 static std::string GetVersionString();
79 83
80 // Use |extension| in all uploaded appversions in addition to the standard 84 // Use |extension| in all uploaded appversions in addition to the standard
81 // version string. 85 // version string.
82 static void set_version_extension(const std::string& extension); 86 static void set_version_extension(const std::string& extension);
83 static const std::string& version_extension(); 87 static const std::string& version_extension();
84 88
85 // Records the current operating environment. Takes the list of installed 89 // Records the current operating environment, including metrics provided by
90 // the specified set of |metrics_providers|. Takes the list of installed
86 // plugins, Google Update statistics, and synthetic trial IDs as parameters 91 // plugins, Google Update statistics, and synthetic trial IDs as parameters
87 // because those can't be obtained synchronously from the UI thread. 92 // because those can't be obtained synchronously from the UI thread.
88 // A synthetic trial is one that is set up dynamically by code in Chrome. For 93 // A synthetic trial is one that is set up dynamically by code in Chrome. For
89 // example, a pref may be mapped to a synthetic trial such that the group 94 // example, a pref may be mapped to a synthetic trial such that the group
90 // is determined by the pref value. 95 // is determined by the pref value.
91 void RecordEnvironment( 96 void RecordEnvironment(
97 const std::vector<metrics::MetricsProvider*>& metrics_providers,
92 const std::vector<content::WebPluginInfo>& plugin_list, 98 const std::vector<content::WebPluginInfo>& plugin_list,
93 const GoogleUpdateMetrics& google_update_metrics, 99 const GoogleUpdateMetrics& google_update_metrics,
94 const std::vector<variations::ActiveGroupId>& synthetic_trials); 100 const std::vector<variations::ActiveGroupId>& synthetic_trials);
95 101
96 // Loads the environment proto that was saved by the last RecordEnvironment() 102 // Loads the environment proto that was saved by the last RecordEnvironment()
97 // call from prefs and clears the pref value. Returns true on success or false 103 // call from prefs and clears the pref value. Returns true on success or false
98 // if there was no saved environment in prefs or it could not be decoded. 104 // if there was no saved environment in prefs or it could not be decoded.
99 bool LoadSavedEnvironmentFromPrefs(); 105 bool LoadSavedEnvironmentFromPrefs();
100 106
101 // Records the input text, available choices, and selected entry when the 107 // Records the input text, available choices, and selected entry when the
102 // user uses the Omnibox to open a URL. 108 // user uses the Omnibox to open a URL.
103 void RecordOmniboxOpenedURL(const OmniboxLog& log); 109 void RecordOmniboxOpenedURL(const OmniboxLog& log);
104 110
105 // Records the passed profiled data, which should be a snapshot of the 111 // Records the passed profiled data, which should be a snapshot of the
106 // browser's profiled performance during startup for a single process. 112 // browser's profiled performance during startup for a single process.
107 void RecordProfilerData( 113 void RecordProfilerData(
108 const tracked_objects::ProcessDataSnapshot& process_data, 114 const tracked_objects::ProcessDataSnapshot& process_data,
109 int process_type); 115 int process_type);
110 116
111 // Writes application stability metrics (as part of the profile log). The 117 // Writes application stability metrics, including stability metrics provided
112 // system profile portion of the log must have already been filled in by a 118 // by the specified set of |metrics_providers|. The system profile portion of
113 // call to RecordEnvironment() or LoadSavedEnvironmentFromPrefs(). 119 // the log must have already been filled in by a call to RecordEnvironment()
120 // or LoadSavedEnvironmentFromPrefs().
114 // NOTE: Has the side-effect of clearing the stability prefs.. 121 // NOTE: Has the side-effect of clearing the stability prefs..
115 // 122 //
116 // If this log is of type INITIAL_STABILITY_LOG, records additional info such 123 // If this log is of type INITIAL_STABILITY_LOG, records additional info such
117 // as number of incomplete shutdowns as well as extra breakpad and debugger 124 // as number of incomplete shutdowns as well as extra breakpad and debugger
118 // stats. 125 // stats.
119 void RecordStabilityMetrics(base::TimeDelta incremental_uptime, 126 void RecordStabilityMetrics(
120 base::TimeDelta uptime); 127 const std::vector<metrics::MetricsProvider*>& metrics_providers,
128 base::TimeDelta incremental_uptime,
129 base::TimeDelta uptime);
130
131 // Records general metrics based on the specified |metrics_providers|.
132 void RecordGeneralMetrics(
133 const std::vector<metrics::MetricsProvider*>& metrics_providers);
121 134
122 const base::TimeTicks& creation_time() const { 135 const base::TimeTicks& creation_time() const {
123 return creation_time_; 136 return creation_time_;
124 } 137 }
125 138
126 protected: 139 protected:
127 // Exposed for the sake of mocking in test code. 140 // Exposed for the sake of mocking in test code.
128 141
129 // Returns the PrefService from which to log metrics data. 142 // Returns the PrefService from which to log metrics data.
130 virtual PrefService* GetPrefService(); 143 virtual PrefService* GetPrefService();
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 // The time when the current log was created. 199 // The time when the current log was created.
187 const base::TimeTicks creation_time_; 200 const base::TimeTicks creation_time_;
188 201
189 // For including information on which extensions are installed in reports. 202 // For including information on which extensions are installed in reports.
190 HashedExtensionMetrics extension_metrics_; 203 HashedExtensionMetrics extension_metrics_;
191 204
192 DISALLOW_COPY_AND_ASSIGN(MetricsLog); 205 DISALLOW_COPY_AND_ASSIGN(MetricsLog);
193 }; 206 };
194 207
195 #endif // CHROME_BROWSER_METRICS_METRICS_LOG_H_ 208 #endif // CHROME_BROWSER_METRICS_METRICS_LOG_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/metrics/metrics_log.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698