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