| 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 e3e5b4dce2df66767de3d8863535a4f7f4e73bd7..d11a3c9706492e1d345d6a5ca1cd848076ae4333 100644 | 
| --- a/chrome/browser/metrics/metrics_services_manager.h | 
| +++ b/chrome/browser/metrics/metrics_services_manager.h | 
| @@ -8,10 +8,8 @@ | 
| #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 ChromeMetricsServiceClient; | 
| -class PrefService; | 
| +class MetricsServicesManagerClient; | 
|  | 
| namespace base { | 
| class FilePath; | 
| @@ -19,6 +17,7 @@ class FilePath; | 
|  | 
| namespace metrics { | 
| class MetricsService; | 
| +class MetricsServiceClient; | 
| class MetricsStateManager; | 
| } | 
|  | 
| @@ -30,20 +29,21 @@ namespace variations { | 
| class VariationsService; | 
| } | 
|  | 
| -// MetricsServicesManager is a helper class that has ownership over the various | 
| -// metrics-related services in Chrome: MetricsService (via its client), | 
| -// RapporService and 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. | 
| class MetricsServicesManager { | 
| public: | 
| -  // Creates the MetricsServicesManager with the |local_state| prefs service. | 
| -  explicit MetricsServicesManager(PrefService* local_state); | 
| +  // Creates the MetricsServicesManager with the given client. | 
| +  explicit MetricsServicesManager( | 
| +      scoped_ptr<MetricsServicesManagerClient> client); | 
| virtual ~MetricsServicesManager(); | 
|  | 
| // Returns the MetricsService, creating it if it hasn't been created yet (and | 
| -  // additionally creating the ChromeMetricsServiceClient in that case). | 
| +  // additionally creating the MetricsServiceClient in that case). | 
| metrics::MetricsService* GetMetricsService(); | 
|  | 
| -  // Returns the GetRapporService, creating it if it hasn't been created yet. | 
| +  // Returns the RapporService, 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,39 +64,29 @@ class MetricsServicesManager { | 
| // metrics change. | 
| void UpdateRapporService(); | 
|  | 
| -  // Returns the ChromeMetricsServiceClient, creating it if it hasn't been | 
| +  // Returns the MetricsServiceClient, creating it if it hasn't been | 
| // created yet (and additionally creating the MetricsService in that case). | 
| -  ChromeMetricsServiceClient* GetChromeMetricsServiceClient(); | 
| +  metrics::MetricsServiceClient* GetMetricsServiceClient(); | 
|  | 
| 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_; | 
|  | 
| // The current metrics recording setting. | 
| bool may_record_; | 
|  | 
| -  // 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 MetricsServiceClient. Owns the MetricsService. | 
| +  scoped_ptr<metrics::MetricsServiceClient> metrics_service_client_; | 
|  | 
| // The RapporService, for RAPPOR metric uploads. | 
| scoped_ptr<rappor::RapporService> rappor_service_; | 
|  |