Index: ios/chrome/browser/metrics/ios_chrome_metrics_services_manager_client.h |
diff --git a/ios/chrome/browser/metrics/ios_chrome_metrics_services_manager_client.h b/ios/chrome/browser/metrics/ios_chrome_metrics_services_manager_client.h |
index 38d939f52290b8e13df73df5083e98ff1cd04210..54b7a5046f70ccf537e252de4738c09e8b9b6bee 100644 |
--- a/ios/chrome/browser/metrics/ios_chrome_metrics_services_manager_client.h |
+++ b/ios/chrome/browser/metrics/ios_chrome_metrics_services_manager_client.h |
@@ -14,6 +14,7 @@ |
class PrefService; |
namespace metrics { |
+class EnabledStateProvider; |
class MetricsStateManager; |
} |
@@ -26,6 +27,11 @@ class IOSChromeMetricsServicesManagerClient |
~IOSChromeMetricsServicesManagerClient() override; |
private: |
+ // This is defined as a member class to get access to |
+ // IOSChromeMetricsServiceAccessor through |
+ // IOSChromeMetricsServicesManagerClient's friendship. |
+ class IOSChromeEnabledStateProvider; |
+ |
// metrics_services_manager::MetricsServicesManagerClient: |
std::unique_ptr<rappor::RapporService> CreateRapporService() override; |
std::unique_ptr<variations::VariationsService> CreateVariationsService() |
@@ -44,6 +50,10 @@ class IOSChromeMetricsServicesManagerClient |
// MetricsStateManager which is passed as a parameter to service constructors. |
std::unique_ptr<metrics::MetricsStateManager> metrics_state_manager_; |
+ // EnabledStateProvider to communicate if the client has consented to metrics |
+ // reporting, and if it's enabled. |
+ std::unique_ptr<metrics::EnabledStateProvider> enabled_state_provider_; |
+ |
// Ensures that all functions are called from the same thread. |
base::ThreadChecker thread_checker_; |