| Index: components/metrics/metrics_state_manager.cc
|
| diff --git a/components/metrics/metrics_state_manager.cc b/components/metrics/metrics_state_manager.cc
|
| index 7e98bdbff01c2db8c5bccf340ff475ffc4ce3c07..477751bd8894fe6fc418e5ee5fae82a00abc9784 100644
|
| --- a/components/metrics/metrics_state_manager.cc
|
| +++ b/components/metrics/metrics_state_manager.cc
|
| @@ -161,17 +161,14 @@ MetricsStateManager::CreateEntropyProvider() {
|
| UMA_HISTOGRAM_SPARSE_SLOWLY("UMA.LowEntropySourceValue",
|
| low_entropy_source_value);
|
| if (IsMetricsReportingEnabled()) {
|
| - if (entropy_source_returned_ == ENTROPY_SOURCE_NONE)
|
| - entropy_source_returned_ = ENTROPY_SOURCE_HIGH;
|
| + UpdateEntropySourceReturnedValue(ENTROPY_SOURCE_HIGH);
|
| const std::string high_entropy_source =
|
| client_id_ + base::IntToString(low_entropy_source_value);
|
| return scoped_ptr<const base::FieldTrial::EntropyProvider>(
|
| new SHA1EntropyProvider(high_entropy_source));
|
| }
|
|
|
| - if (entropy_source_returned_ == ENTROPY_SOURCE_NONE)
|
| - entropy_source_returned_ = ENTROPY_SOURCE_LOW;
|
| -
|
| + UpdateEntropySourceReturnedValue(ENTROPY_SOURCE_LOW);
|
| #if defined(OS_ANDROID) || defined(OS_IOS)
|
| return scoped_ptr<const base::FieldTrial::EntropyProvider>(
|
| new CachingPermutedEntropyProvider(local_state_,
|
| @@ -292,6 +289,16 @@ int MetricsStateManager::GetLowEntropySource() {
|
| return low_entropy_source_;
|
| }
|
|
|
| +void MetricsStateManager::UpdateEntropySourceReturnedValue(
|
| + EntropySourceType type) {
|
| + if (entropy_source_returned_ != ENTROPY_SOURCE_NONE)
|
| + return;
|
| +
|
| + entropy_source_returned_ = type;
|
| + UMA_HISTOGRAM_ENUMERATION("UMA.EntropySourceType", type,
|
| + ENTROPY_SOURCE_ENUM_SIZE);
|
| +}
|
| +
|
| void MetricsStateManager::ResetMetricsIDsIfNecessary() {
|
| if (!local_state_->GetBoolean(prefs::kMetricsResetIds))
|
| return;
|
|
|