Chromium Code Reviews| Index: components/variations/processed_study.cc |
| diff --git a/components/variations/processed_study.cc b/components/variations/processed_study.cc |
| index 8c1f8d0f8a1cd6852cd2fb234dbec9267b4f8710..10a1bd78ed409dd404179f2365c869d2c0ae877b 100644 |
| --- a/components/variations/processed_study.cc |
| +++ b/components/variations/processed_study.cc |
| @@ -21,11 +21,6 @@ bool ValidateStudyAndComputeTotalProbability( |
| base::FieldTrial::Probability* total_probability, |
| bool* all_assignments_to_one_group, |
| std::string* single_feature_name) { |
| - // At the moment, a missing default_experiment_name makes the study invalid. |
| - if (study.default_experiment_name().empty()) { |
| - DVLOG(1) << study.name() << " has no default experiment defined."; |
| - return false; |
| - } |
| if (study.filter().has_min_version() && |
| !base::Version::IsValidWildcardString(study.filter().min_version())) { |
| DVLOG(1) << study.name() << " has invalid min version: " |
| @@ -92,9 +87,11 @@ bool ValidateStudyAndComputeTotalProbability( |
| found_default_group = true; |
| } |
| - if (!found_default_group) { |
| - DVLOG(1) << study.name() << " is missing default experiment in its " |
| - << "experiment list"; |
| + // Specifying a default experiment is optional, so finding it in the |
| + // experiment list is only required when it is specified. |
| + if (!study.default_experiment_name().empty() && !found_default_group) { |
| + DVLOG(1) << study.name() << " is missing default experiment (" |
| + << study.default_experiment_name() << ") in its experiment list"; |
| // The default group was not found in the list of groups. This study is not |
| // valid. |
| return false; |
| @@ -113,6 +110,10 @@ bool ValidateStudyAndComputeTotalProbability( |
| } // namespace |
| +// static |
| +const std::string ProcessedStudy::kGenericDefaultExperimentName = |
|
Devlin
2017/01/04 23:13:46
non-POD statics aren't allowed (this resulted in a
|
| + "VariationsDefaultExperiment"; |
| + |
| ProcessedStudy::ProcessedStudy() |
| : study_(NULL), |
| total_probability_(0), |
| @@ -150,6 +151,13 @@ int ProcessedStudy::GetExperimentIndexByName(const std::string& name) const { |
| return -1; |
| } |
| +const std::string& ProcessedStudy::GetDefaultExperimentName() const { |
| + if (study_->default_experiment_name().empty()) |
| + return kGenericDefaultExperimentName; |
| + |
| + return study_->default_experiment_name(); |
| +} |
| + |
| // static |
| bool ProcessedStudy::ValidateAndAppendStudy( |
| const Study* study, |