Chromium Code Reviews| Index: components/metrics/metrics_state_manager.cc |
| diff --git a/components/metrics/metrics_state_manager.cc b/components/metrics/metrics_state_manager.cc |
| index 73095fba2f45a820b9361cd4287710f77da8beee..0f2904e5ff036be29b872b38c05fb888402f7ee8 100644 |
| --- a/components/metrics/metrics_state_manager.cc |
| +++ b/components/metrics/metrics_state_manager.cc |
| @@ -16,6 +16,7 @@ |
| #include "base/time/time.h" |
| #include "build/build_config.h" |
| #include "components/metrics/cloned_install_detector.h" |
| +#include "components/metrics/enabled_state_provider.h" |
| #include "components/metrics/machine_id_provider.h" |
| #include "components/metrics/metrics_pref_names.h" |
| #include "components/metrics/metrics_switches.h" |
| @@ -49,17 +50,17 @@ bool MetricsStateManager::instance_exists_ = false; |
| MetricsStateManager::MetricsStateManager( |
| PrefService* local_state, |
| - const base::Callback<bool(void)>& is_reporting_enabled_callback, |
| + EnabledStateProvider* enabled_state_provider, |
| const StoreClientInfoCallback& store_client_info, |
| const LoadClientInfoCallback& retrieve_client_info) |
| : local_state_(local_state), |
| - is_reporting_enabled_callback_(is_reporting_enabled_callback), |
| + enabled_state_provider_(enabled_state_provider), |
| store_client_info_(store_client_info), |
| load_client_info_(retrieve_client_info), |
| low_entropy_source_(kLowEntropySourceNotSet), |
| entropy_source_returned_(ENTROPY_SOURCE_NONE) { |
| ResetMetricsIDsIfNecessary(); |
| - if (IsMetricsReportingEnabled()) |
| + if (enabled_state_provider_->IsConsentGiven()) |
| ForceClientIdCreation(); |
| DCHECK(!instance_exists_); |
| @@ -72,7 +73,7 @@ MetricsStateManager::~MetricsStateManager() { |
| } |
| bool MetricsStateManager::IsMetricsReportingEnabled() { |
|
Alexei Svitkine (slow)
2016/05/11 17:16:28
Can you expand the comment in the header about the
jwd
2016/05/11 18:31:38
Done.
|
| - return is_reporting_enabled_callback_.Run(); |
| + return enabled_state_provider_->IsReportingEnabled(); |
| } |
| void MetricsStateManager::ForceClientIdCreation() { |
| @@ -158,7 +159,7 @@ MetricsStateManager::CreateEntropyProvider() { |
| const int low_entropy_source_value = GetLowEntropySource(); |
| UMA_HISTOGRAM_SPARSE_SLOWLY("UMA.LowEntropySourceValue", |
| low_entropy_source_value); |
| - if (IsMetricsReportingEnabled()) { |
| + if (enabled_state_provider_->IsConsentGiven()) { |
| UpdateEntropySourceReturnedValue(ENTROPY_SOURCE_HIGH); |
| const std::string high_entropy_source = |
| client_id_ + base::IntToString(low_entropy_source_value); |
| @@ -181,14 +182,13 @@ MetricsStateManager::CreateEntropyProvider() { |
| // static |
| std::unique_ptr<MetricsStateManager> MetricsStateManager::Create( |
| PrefService* local_state, |
| - const base::Callback<bool(void)>& is_reporting_enabled_callback, |
| + EnabledStateProvider* enabled_state_provider, |
| const StoreClientInfoCallback& store_client_info, |
| const LoadClientInfoCallback& retrieve_client_info) { |
| std::unique_ptr<MetricsStateManager> result; |
| // Note: |instance_exists_| is updated in the constructor and destructor. |
| if (!instance_exists_) { |
| - result.reset(new MetricsStateManager(local_state, |
| - is_reporting_enabled_callback, |
| + result.reset(new MetricsStateManager(local_state, enabled_state_provider, |
| store_client_info, |
| retrieve_client_info)); |
| } |