Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5076)

Unified Diff: chrome/browser/metrics/metrics_service.cc

Issue 17499002: Change kMaxLowEntropySize to have 8000 values instead of 8192. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/common/metrics/entropy_provider_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/metrics/metrics_service.cc
===================================================================
--- chrome/browser/metrics/metrics_service.cc (revision 207251)
+++ chrome/browser/metrics/metrics_service.cc (working copy)
@@ -291,9 +291,9 @@
}
// The argument used to generate a non-identifying entropy source. We want no
-// more than 13 bits of entropy, so use this max to return a number between 1
-// and 2^13 = 8192 as the entropy source.
-const uint32 kMaxLowEntropySize = (1 << 13);
+// more than 13 bits of entropy, so use this max to return a number in the range
+// [0, 7999] as the entropy source (12.97 bits of entropy).
+const int kMaxLowEntropySize = 8000;
// Default prefs value for prefs::kMetricsLowEntropySource to indicate that the
// value has not yet been set.
@@ -1043,13 +1043,17 @@
// Only try to load the value from prefs if the user did not request a reset.
// Otherwise, skip to generating a new value.
if (!command_line->HasSwitch(switches::kResetVariationState)) {
- const int value = local_state->GetInteger(prefs::kMetricsLowEntropySource);
- if (value != kLowEntropySourceNotSet) {
- // Ensure the prefs value is in the range [0, kMaxLowEntropySize). Old
- // versions of the code would generate values in the range of [1, 8192],
- // so the below line ensures 8192 gets mapped to 0 and also guards against
- // the case of corrupted values.
- low_entropy_source_ = value % kMaxLowEntropySize;
+ int value = local_state->GetInteger(prefs::kMetricsLowEntropySource);
+ // Old versions of the code would generate values in the range of [1, 8192],
+ // before the range was switched to [0, 8191] and then [0, 7999]. Map 8192
Ilya Sherman 2013/06/21 01:12:53 nit: "and then [0, 7999]" -> "and then to [0, 7999
Alexei Svitkine (slow) 2013/06/21 14:29:09 Done.
+ // to 0, so that the 0th bucket remains uniform, while re-generating the
+ // low entropy source for old values in the [8000, 8191] range.
Ilya Sherman 2013/06/21 01:12:53 I wonder whether it's really worth keeping this ex
Alexei Svitkine (slow) 2013/06/21 04:41:30 It is. We never migrated those users to have the n
+ if (value == 8192)
+ value = 0;
+ // If the value is outside the [0, kMaxLowEntropySize) range, re-generate
+ // it below.
+ if (value >= 0 && value < kMaxLowEntropySize) {
+ low_entropy_source_ = value;
UMA_HISTOGRAM_BOOLEAN("UMA.GeneratedLowEntropySource", false);
return low_entropy_source_;
}
« no previous file with comments | « no previous file | chrome/common/metrics/entropy_provider_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698