OLD | NEW |
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 service that collects information about the user | 5 // This file defines a service that collects information about the user |
6 // experience in order to help improve future versions of the app. | 6 // experience in order to help improve future versions of the app. |
7 | 7 |
8 #ifndef CHROME_BROWSER_METRICS_METRICS_SERVICE_H_ | 8 #ifndef CHROME_BROWSER_METRICS_METRICS_SERVICE_H_ |
9 #define CHROME_BROWSER_METRICS_METRICS_SERVICE_H_ | 9 #define CHROME_BROWSER_METRICS_METRICS_SERVICE_H_ |
10 | 10 |
11 #include <map> | 11 #include <map> |
12 #include <string> | 12 #include <string> |
13 #include <vector> | 13 #include <vector> |
14 | 14 |
15 #include "base/basictypes.h" | 15 #include "base/basictypes.h" |
16 #include "base/gtest_prod_util.h" | 16 #include "base/gtest_prod_util.h" |
17 #include "base/memory/scoped_ptr.h" | 17 #include "base/memory/scoped_ptr.h" |
18 #include "base/memory/weak_ptr.h" | 18 #include "base/memory/weak_ptr.h" |
| 19 #include "base/metrics/field_trial.h" |
19 #include "base/process_util.h" | 20 #include "base/process_util.h" |
20 #include "chrome/browser/metrics/metrics_log.h" | 21 #include "chrome/browser/metrics/metrics_log.h" |
21 #include "chrome/browser/metrics/tracking_synchronizer_observer.h" | 22 #include "chrome/browser/metrics/tracking_synchronizer_observer.h" |
22 #include "chrome/common/metrics/metrics_service_base.h" | 23 #include "chrome/common/metrics/metrics_service_base.h" |
23 #include "chrome/installer/util/google_update_settings.h" | 24 #include "chrome/installer/util/google_update_settings.h" |
24 #include "content/public/browser/notification_observer.h" | 25 #include "content/public/browser/notification_observer.h" |
25 #include "content/public/browser/notification_registrar.h" | 26 #include "content/public/browser/notification_registrar.h" |
26 #include "net/url_request/url_fetcher_delegate.h" | 27 #include "net/url_request/url_fetcher_delegate.h" |
27 | 28 |
28 #if defined(OS_CHROMEOS) | 29 #if defined(OS_CHROMEOS) |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 // StartRecordingOnly starts the metrics recording but not reporting, for use | 80 // StartRecordingOnly starts the metrics recording but not reporting, for use |
80 // in tests only. | 81 // in tests only. |
81 void Start(); | 82 void Start(); |
82 void StartRecordingOnly(); | 83 void StartRecordingOnly(); |
83 void Stop(); | 84 void Stop(); |
84 | 85 |
85 // Returns the client ID for this client, or the empty string if metrics | 86 // Returns the client ID for this client, or the empty string if metrics |
86 // recording is not currently running. | 87 // recording is not currently running. |
87 std::string GetClientId(); | 88 std::string GetClientId(); |
88 | 89 |
89 // Returns the preferred entropy source used to seed persistent activities | 90 // Returns the preferred entropy provider used to seed persistent activities |
90 // based on whether or not metrics reporting will permitted on this client. | 91 // based on whether or not metrics reporting will be permitted on this client. |
91 // The caller must determine if metrics reporting will be enabled for this | 92 // The caller must determine if metrics reporting will be enabled for this |
92 // client and pass that state in as |reporting_will_be_enabled|. If | 93 // client and pass that state in as |reporting_will_be_enabled|. |
93 // |reporting_will_be_enabled| is true, this method returns the client ID | 94 // |
94 // concatenated with the low entropy source. Otherwise, this method just | 95 // If |reporting_will_be_enabled| is true, this method returns an entropy |
95 // returns the low entropy source. Note that this reporting state can not be | 96 // provider that has a high source of entropy, partially based on the client |
96 // checked by reporting_active() because this method may need to be called | 97 // ID. Otherwise, an entropy provider that is based on a low entropy source |
97 // before the MetricsService needs to be started. | 98 // is returned. |
98 std::string GetEntropySource(bool reporting_will_be_enabled); | 99 // |
| 100 // Note that this reporting state can not be checked by reporting_active() |
| 101 // because this method may need to be called before the MetricsService needs |
| 102 // to be started. |
| 103 scoped_ptr<const base::FieldTrial::EntropyProvider> CreateEntropyProvider( |
| 104 bool reporting_will_be_enabled); |
99 | 105 |
100 // Force the client ID to be generated. This is useful in case it's needed | 106 // Force the client ID to be generated. This is useful in case it's needed |
101 // before recording. | 107 // before recording. |
102 void ForceClientIdCreation(); | 108 void ForceClientIdCreation(); |
103 | 109 |
104 // At startup, prefs needs to be called with a list of all the pref names and | 110 // At startup, prefs needs to be called with a list of all the pref names and |
105 // types we'll be using. | 111 // types we'll be using. |
106 static void RegisterPrefs(PrefService* local_state); | 112 static void RegisterPrefs(PrefService* local_state); |
107 | 113 |
108 // Set up notifications which indicate that a user is performing work. This is | 114 // Set up notifications which indicate that a user is performing work. This is |
(...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
507 friend bool prerender::IsOmniboxEnabled(Profile* profile); | 513 friend bool prerender::IsOmniboxEnabled(Profile* profile); |
508 friend class extensions::ExtensionDownloader; | 514 friend class extensions::ExtensionDownloader; |
509 | 515 |
510 // Returns true if prefs::kMetricsReportingEnabled is set. | 516 // Returns true if prefs::kMetricsReportingEnabled is set. |
511 static bool IsMetricsReportingEnabled(); | 517 static bool IsMetricsReportingEnabled(); |
512 | 518 |
513 DISALLOW_IMPLICIT_CONSTRUCTORS(MetricsServiceHelper); | 519 DISALLOW_IMPLICIT_CONSTRUCTORS(MetricsServiceHelper); |
514 }; | 520 }; |
515 | 521 |
516 #endif // CHROME_BROWSER_METRICS_METRICS_SERVICE_H_ | 522 #endif // CHROME_BROWSER_METRICS_METRICS_SERVICE_H_ |
OLD | NEW |