Index: components/variations/processed_study.cc |
diff --git a/components/variations/processed_study.cc b/components/variations/processed_study.cc |
index 8c1f8d0f8a1cd6852cd2fb234dbec9267b4f8710..245a583599217181908538f678cc3a0cc0f19031 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 char ProcessedStudy::kGenericDefaultExperimentName[] = |
+ "VariationsDefaultExperiment"; |
+ |
ProcessedStudy::ProcessedStudy() |
: study_(NULL), |
total_probability_(0), |
@@ -150,6 +151,13 @@ int ProcessedStudy::GetExperimentIndexByName(const std::string& name) const { |
return -1; |
} |
+const char* ProcessedStudy::GetDefaultExperimentName() const { |
+ if (study_->default_experiment_name().empty()) |
+ return kGenericDefaultExperimentName; |
+ |
+ return study_->default_experiment_name().c_str(); |
+} |
+ |
// static |
bool ProcessedStudy::ValidateAndAppendStudy( |
const Study* study, |