Index: chrome/browser/metrics/metrics_services_manager.h |
diff --git a/chrome/browser/metrics/metrics_services_manager.h b/chrome/browser/metrics/metrics_services_manager.h |
index d11a3c9706492e1d345d6a5ca1cd848076ae4333..e3e5b4dce2df66767de3d8863535a4f7f4e73bd7 100644 |
--- a/chrome/browser/metrics/metrics_services_manager.h |
+++ b/chrome/browser/metrics/metrics_services_manager.h |
@@ -8,8 +8,10 @@ |
#include "base/basictypes.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/threading/thread_checker.h" |
+#include "chrome/browser/safe_browsing/safe_browsing_service.h" |
-class MetricsServicesManagerClient; |
+class ChromeMetricsServiceClient; |
+class PrefService; |
namespace base { |
class FilePath; |
@@ -17,7 +19,6 @@ |
namespace metrics { |
class MetricsService; |
-class MetricsServiceClient; |
class MetricsStateManager; |
} |
@@ -29,21 +30,20 @@ |
class VariationsService; |
} |
-// MetricsServicesManager is a helper class for embedders that use the various |
-// metrics-related services in a Chrome-like fashion: MetricsService (via its |
-// client), RapporService and VariationsService. |
+// MetricsServicesManager is a helper class that has ownership over the various |
+// metrics-related services in Chrome: MetricsService (via its client), |
+// RapporService and VariationsService. |
class MetricsServicesManager { |
public: |
- // Creates the MetricsServicesManager with the given client. |
- explicit MetricsServicesManager( |
- scoped_ptr<MetricsServicesManagerClient> client); |
+ // Creates the MetricsServicesManager with the |local_state| prefs service. |
+ explicit MetricsServicesManager(PrefService* local_state); |
virtual ~MetricsServicesManager(); |
// Returns the MetricsService, creating it if it hasn't been created yet (and |
- // additionally creating the MetricsServiceClient in that case). |
+ // additionally creating the ChromeMetricsServiceClient in that case). |
metrics::MetricsService* GetMetricsService(); |
- // Returns the RapporService, creating it if it hasn't been created yet. |
+ // Returns the GetRapporService, creating it if it hasn't been created yet. |
rappor::RapporService* GetRapporService(); |
// Returns the VariationsService, creating it if it hasn't been created yet. |
@@ -64,20 +64,26 @@ |
// metrics change. |
void UpdateRapporService(); |
- // Returns the MetricsServiceClient, creating it if it hasn't been |
+ // Returns the ChromeMetricsServiceClient, creating it if it hasn't been |
// created yet (and additionally creating the MetricsService in that case). |
- metrics::MetricsServiceClient* GetMetricsServiceClient(); |
+ ChromeMetricsServiceClient* GetChromeMetricsServiceClient(); |
metrics::MetricsStateManager* GetMetricsStateManager(); |
+ |
+ // Retrieve the latest SafeBrowsing preferences state. |
+ bool GetSafeBrowsingState(); |
// Update which services are running to match current permissions. |
void UpdateRunningServices(); |
- // The client passed in from the embedder. |
- scoped_ptr<MetricsServicesManagerClient> client_; |
- |
// Ensures that all functions are called from the same thread. |
base::ThreadChecker thread_checker_; |
+ |
+ // Weak pointer to the local state prefs store. |
+ PrefService* local_state_; |
+ |
+ // Subscription to SafeBrowsing service state changes. |
+ scoped_ptr<SafeBrowsingService::StateSubscription> sb_state_subscription_; |
// The current metrics reporting setting. |
bool may_upload_; |
@@ -85,8 +91,12 @@ |
// The current metrics recording setting. |
bool may_record_; |
- // The MetricsServiceClient. Owns the MetricsService. |
- scoped_ptr<metrics::MetricsServiceClient> metrics_service_client_; |
+ // MetricsStateManager which is passed as a parameter to service constructors. |
+ scoped_ptr<metrics::MetricsStateManager> metrics_state_manager_; |
+ |
+ // Chrome embedder implementation of the MetricsServiceClient. Owns the |
+ // MetricsService. |
+ scoped_ptr<ChromeMetricsServiceClient> metrics_service_client_; |
// The RapporService, for RAPPOR metric uploads. |
scoped_ptr<rappor::RapporService> rappor_service_; |