| 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_;
|
|
|