OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/metrics/variations_service.h" | 5 #include "chrome/browser/metrics/variations_service.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 | 8 |
9 #include "base/base64.h" | 9 #include "base/base64.h" |
10 #include "base/build_time.h" | 10 #include "base/build_time.h" |
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
183 StoreSeedData(seed_data, response_date, g_browser_process->local_state()); | 183 StoreSeedData(seed_data, response_date, g_browser_process->local_state()); |
184 } | 184 } |
185 | 185 |
186 // static | 186 // static |
187 void VariationsService::RegisterPrefs(PrefService* prefs) { | 187 void VariationsService::RegisterPrefs(PrefService* prefs) { |
188 prefs->RegisterStringPref(prefs::kVariationsSeed, std::string()); | 188 prefs->RegisterStringPref(prefs::kVariationsSeed, std::string()); |
189 prefs->RegisterInt64Pref(prefs::kVariationsSeedDate, | 189 prefs->RegisterInt64Pref(prefs::kVariationsSeedDate, |
190 base::Time().ToInternalValue()); | 190 base::Time().ToInternalValue()); |
191 } | 191 } |
192 | 192 |
193 void VariationsService::StoreSeedData(const std::string& seed_data, | 193 bool VariationsService::StoreSeedData(const std::string& seed_data, |
194 const base::Time& seed_date, | 194 const base::Time& seed_date, |
195 PrefService* local_prefs) { | 195 PrefService* local_prefs) { |
196 // Only store the seed data if it parses correctly. | 196 // Only store the seed data if it parses correctly. |
197 TrialsSeed seed; | 197 TrialsSeed seed; |
198 if (!seed.ParseFromString(seed_data)) { | 198 if (!seed.ParseFromString(seed_data)) { |
199 VLOG(1) << "Variations Seed data from server is not in valid proto format, " | 199 VLOG(1) << "Variations Seed data from server is not in valid proto format, " |
200 << "rejecting the seed."; | 200 << "rejecting the seed."; |
201 return; | 201 return false; |
202 } | 202 } |
203 | 203 |
204 std::string base64_seed_data; | 204 std::string base64_seed_data; |
205 if (!base::Base64Encode(seed_data, &base64_seed_data)) { | 205 if (!base::Base64Encode(seed_data, &base64_seed_data)) { |
206 VLOG(1) << "Variations Seed data from server fails Base64Encode, rejecting " | 206 VLOG(1) << "Variations Seed data from server fails Base64Encode, rejecting " |
207 << "the seed."; | 207 << "the seed."; |
208 return; | 208 return false; |
209 } | 209 } |
210 | 210 |
211 local_prefs->SetString(prefs::kVariationsSeed, base64_seed_data); | 211 local_prefs->SetString(prefs::kVariationsSeed, base64_seed_data); |
212 local_prefs->SetInt64(prefs::kVariationsSeedDate, | 212 local_prefs->SetInt64(prefs::kVariationsSeedDate, |
213 seed_date.ToInternalValue()); | 213 seed_date.ToInternalValue()); |
| 214 return true; |
214 } | 215 } |
215 | 216 |
216 // static | 217 // static |
217 bool VariationsService::ShouldAddStudy( | 218 bool VariationsService::ShouldAddStudy( |
218 const Study& study, | 219 const Study& study, |
219 const chrome::VersionInfo& version_info, | 220 const chrome::VersionInfo& version_info, |
220 const base::Time& reference_date) { | 221 const base::Time& reference_date) { |
221 if (study.has_filter()) { | 222 if (study.has_filter()) { |
222 if (!CheckStudyChannel(study.filter(), chrome::VersionInfo::GetChannel())) { | 223 if (!CheckStudyChannel(study.filter(), chrome::VersionInfo::GetChannel())) { |
223 DVLOG(1) << "Filtered out study " << study.name() << " due to channel."; | 224 DVLOG(1) << "Filtered out study " << study.name() << " due to channel."; |
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
446 variation_id); | 447 variation_id); |
447 } | 448 } |
448 } | 449 } |
449 | 450 |
450 trial->SetForced(); | 451 trial->SetForced(); |
451 if (IsStudyExpired(study, reference_date)) | 452 if (IsStudyExpired(study, reference_date)) |
452 trial->Disable(); | 453 trial->Disable(); |
453 } | 454 } |
454 | 455 |
455 } // namespace chrome_variations | 456 } // namespace chrome_variations |
OLD | NEW |