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

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

Issue 282093012: Remove dependencies of Metrics{Service,Log} on g_browser_process->local_state() (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Android compile fix 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 | « chrome/browser/chrome_browser_main.cc ('k') | 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 27 matching lines...) Expand all
38 namespace variations { 38 namespace variations {
39 struct ActiveGroupId; 39 struct ActiveGroupId;
40 } 40 }
41 41
42 class MetricsLog : public metrics::MetricsLogBase { 42 class MetricsLog : public metrics::MetricsLogBase {
43 public: 43 public:
44 // Creates a new metrics log of the specified type. 44 // Creates a new metrics log of the specified type.
45 // |client_id| is the identifier for this profile on this installation 45 // |client_id| is the identifier for this profile on this installation
46 // |session_id| is an integer that's incremented on each application launch 46 // |session_id| is an integer that's incremented on each application launch
47 // |client| is used to interact with the embedder. 47 // |client| is used to interact with the embedder.
48 // |local_state| is the PrefService that this instance should use.
48 // Note: |this| instance does not take ownership of the |client|, but rather 49 // Note: |this| instance does not take ownership of the |client|, but rather
49 // stores a weak pointer to it. The caller should ensure that the |client| is 50 // stores a weak pointer to it. The caller should ensure that the |client| is
50 // valid for the lifetime of this class. 51 // valid for the lifetime of this class.
51 MetricsLog(const std::string& client_id, 52 MetricsLog(const std::string& client_id,
52 int session_id, 53 int session_id,
53 LogType log_type, 54 LogType log_type,
54 metrics::MetricsServiceClient* client); 55 metrics::MetricsServiceClient* client,
56 PrefService* local_state);
55 virtual ~MetricsLog(); 57 virtual ~MetricsLog();
56 58
57 // Records the current operating environment, including metrics provided by 59 // Records the current operating environment, including metrics provided by
58 // the specified set of |metrics_providers|. Takes the list of installed 60 // the specified set of |metrics_providers|. Takes the list of installed
59 // plugins, Google Update statistics, and synthetic trial IDs as parameters 61 // plugins, Google Update statistics, and synthetic trial IDs as parameters
60 // because those can't be obtained synchronously from the UI thread. 62 // because those can't be obtained synchronously from the UI thread.
61 // A synthetic trial is one that is set up dynamically by code in Chrome. For 63 // A synthetic trial is one that is set up dynamically by code in Chrome. For
62 // example, a pref may be mapped to a synthetic trial such that the group 64 // example, a pref may be mapped to a synthetic trial such that the group
63 // is determined by the pref value. 65 // is determined by the pref value.
64 void RecordEnvironment( 66 void RecordEnvironment(
(...skipping 29 matching lines...) Expand all
94 void RecordGeneralMetrics( 96 void RecordGeneralMetrics(
95 const std::vector<metrics::MetricsProvider*>& metrics_providers); 97 const std::vector<metrics::MetricsProvider*>& metrics_providers);
96 98
97 const base::TimeTicks& creation_time() const { 99 const base::TimeTicks& creation_time() const {
98 return creation_time_; 100 return creation_time_;
99 } 101 }
100 102
101 protected: 103 protected:
102 // Exposed for the sake of mocking in test code. 104 // Exposed for the sake of mocking in test code.
103 105
104 // Returns the PrefService from which to log metrics data.
105 virtual PrefService* GetPrefService();
106
107 // Fills |field_trial_ids| with the list of initialized field trials name and 106 // Fills |field_trial_ids| with the list of initialized field trials name and
108 // group ids. 107 // group ids.
109 virtual void GetFieldTrialIds( 108 virtual void GetFieldTrialIds(
110 std::vector<variations::ActiveGroupId>* field_trial_ids) const; 109 std::vector<variations::ActiveGroupId>* field_trial_ids) const;
111 110
112 private: 111 private:
113 FRIEND_TEST_ALL_PREFIXES(MetricsLogTest, ChromeOSStabilityData); 112 FRIEND_TEST_ALL_PREFIXES(MetricsLogTest, ChromeOSStabilityData);
114 113
115 // Returns true if the environment has already been filled in by a call to 114 // Returns true if the environment has already been filled in by a call to
116 // RecordEnvironment() or LoadSavedEnvironmentFromPrefs(). 115 // RecordEnvironment() or LoadSavedEnvironmentFromPrefs().
(...skipping 14 matching lines...) Expand all
131 base::TimeDelta incremental_uptime, 130 base::TimeDelta incremental_uptime,
132 base::TimeDelta uptime); 131 base::TimeDelta uptime);
133 132
134 // Used to interact with the embedder. Weak pointer; must outlive |this| 133 // Used to interact with the embedder. Weak pointer; must outlive |this|
135 // instance. 134 // instance.
136 metrics::MetricsServiceClient* const client_; 135 metrics::MetricsServiceClient* const client_;
137 136
138 // The time when the current log was created. 137 // The time when the current log was created.
139 const base::TimeTicks creation_time_; 138 const base::TimeTicks creation_time_;
140 139
140 PrefService* local_state_;
141
141 DISALLOW_COPY_AND_ASSIGN(MetricsLog); 142 DISALLOW_COPY_AND_ASSIGN(MetricsLog);
142 }; 143 };
143 144
144 #endif // CHROME_BROWSER_METRICS_METRICS_LOG_H_ 145 #endif // CHROME_BROWSER_METRICS_METRICS_LOG_H_
OLDNEW
« no previous file with comments | « chrome/browser/chrome_browser_main.cc ('k') | chrome/browser/metrics/metrics_log.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698