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

Unified Diff: components/rappor/rappor_service.cc

Issue 845863002: Add stricter tests for RapporService::LoadSecret (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 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 | « components/rappor/rappor_service.h ('k') | components/rappor/rappor_service_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/rappor/rappor_service.cc
diff --git a/components/rappor/rappor_service.cc b/components/rappor/rappor_service.cc
index 1abe269c2d8447fca5de7d0e0aff286d871ce379..5b7b75378db302bd7ce83f6a3c7984f19a286c42 100644
--- a/components/rappor/rappor_service.cc
+++ b/components/rappor/rappor_service.cc
@@ -4,11 +4,7 @@
#include "components/rappor/rappor_service.h"
-#include "base/base64.h"
#include "base/metrics/field_trial.h"
-#include "base/prefs/pref_registry_simple.h"
-#include "base/prefs/pref_service.h"
-#include "base/rand_util.h"
#include "base/stl_util.h"
#include "base/time/time.h"
#include "components/metrics/metrics_hashes.h"
@@ -16,6 +12,7 @@
#include "components/rappor/proto/rappor_metric.pb.h"
#include "components/rappor/rappor_metric.h"
#include "components/rappor/rappor_pref_names.h"
+#include "components/rappor/rappor_prefs.h"
#include "components/variations/variations_associated_data.h"
namespace rappor {
@@ -106,8 +103,8 @@ void RapporService::Initialize(net::URLRequestContextGetter* request_context) {
InitializeInternal(make_scoped_ptr(new LogUploader(server_url,
kMimeType,
request_context)),
- LoadCohort(),
- LoadSecret());
+ internal::LoadCohort(pref_service_),
+ internal::LoadSecret(pref_service_));
}
void RapporService::Update(RecordingLevel recording_level, bool may_upload) {
@@ -137,6 +134,11 @@ void RapporService::Update(RecordingLevel recording_level, bool may_upload) {
}
}
+// static
+void RapporService::RegisterPrefs(PrefRegistrySimple* registry) {
+ internal::RegisterPrefs(registry);
+}
+
void RapporService::InitializeInternal(
scoped_ptr<LogUploaderInterface> uploader,
int32_t cohort,
@@ -180,50 +182,6 @@ void RapporService::OnLogInterval() {
ScheduleNextLogRotation(base::TimeDelta::FromSeconds(kLogIntervalSeconds));
}
-// static
-void RapporService::RegisterPrefs(PrefRegistrySimple* registry) {
- registry->RegisterStringPref(prefs::kRapporSecret, std::string());
- registry->RegisterIntegerPref(prefs::kRapporCohortDeprecated, -1);
- registry->RegisterIntegerPref(prefs::kRapporCohortSeed, -1);
- metrics::DailyEvent::RegisterPref(registry, prefs::kRapporLastDailySample);
-}
-
-int32_t RapporService::LoadCohort() {
- // Ignore and delete old cohort parameter.
- pref_service_->ClearPref(prefs::kRapporCohortDeprecated);
-
- int32_t cohort = pref_service_->GetInteger(prefs::kRapporCohortSeed);
- // If the user is already assigned to a valid cohort, we're done.
- if (cohort >= 0 && cohort < RapporParameters::kMaxCohorts)
- return cohort;
-
- // This is the first time the client has started the service (or their
- // preferences were corrupted). Randomly assign them to a cohort.
- cohort = base::RandGenerator(RapporParameters::kMaxCohorts);
- DVLOG(2) << "Selected a new Rappor cohort: " << cohort;
- pref_service_->SetInteger(prefs::kRapporCohortSeed, cohort);
- return cohort;
-}
-
-std::string RapporService::LoadSecret() {
- std::string secret;
- std::string secret_base64 = pref_service_->GetString(prefs::kRapporSecret);
- if (!secret_base64.empty()) {
- bool decoded = base::Base64Decode(secret_base64, &secret);
- if (decoded && secret.size() == HmacByteVectorGenerator::kEntropyInputSize)
- return secret;
- // If the preference fails to decode, or is the wrong size, it must be
- // corrupt, so continue as though it didn't exist yet and generate a new
- // one.
- }
-
- DVLOG(2) << "Generated a new Rappor secret.";
- secret = HmacByteVectorGenerator::GenerateEntropyInput();
- base::Base64Encode(secret, &secret_base64);
- pref_service_->SetString(prefs::kRapporSecret, secret_base64);
- return secret;
-}
-
bool RapporService::ExportMetrics(RapporReports* reports) {
if (metrics_map_.empty()) {
DVLOG(2) << "metrics_map_ is empty.";
« no previous file with comments | « components/rappor/rappor_service.h ('k') | components/rappor/rappor_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698