| 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() {
|
| - 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));
|
| }
|
|
|