summaryrefslogtreecommitdiffstats
path: root/chrome/browser/metrics/variations_service.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/metrics/variations_service.cc')
-rw-r--r--chrome/browser/metrics/variations_service.cc22
1 files changed, 14 insertions, 8 deletions
diff --git a/chrome/browser/metrics/variations_service.cc b/chrome/browser/metrics/variations_service.cc
index 57c794a..d2e3bc7 100644
--- a/chrome/browser/metrics/variations_service.cc
+++ b/chrome/browser/metrics/variations_service.cc
@@ -282,18 +282,12 @@ bool VariationsService::CheckStudyVersion(
}
if (filter.has_min_version()) {
- const Version min_version(filter.min_version());
- if (!min_version.IsValid())
- return false;
- if (version.CompareTo(min_version) < 0)
+ if (version.CompareToWildcardString(filter.min_version()) < 0)
return false;
}
if (filter.has_max_version()) {
- const Version max_version(filter.max_version());
- if (!max_version.IsValid())
- return false;
- if (version.CompareTo(max_version) > 0)
+ if (version.CompareToWildcardString(filter.max_version()) > 0)
return false;
}
@@ -333,6 +327,18 @@ bool VariationsService::ValidateStudyAndComputeTotalProbability(
DVLOG(1) << study.name() << " has no default experiment defined.";
return false;
}
+ if (study.filter().has_min_version() &&
+ !Version::IsValidWildcardString(study.filter().min_version())) {
+ DVLOG(1) << study.name() << " has invalid min version: "
+ << study.filter().min_version();
+ return false;
+ }
+ if (study.filter().has_max_version() &&
+ !Version::IsValidWildcardString(study.filter().max_version())) {
+ DVLOG(1) << study.name() << " has invalid max version: "
+ << study.filter().max_version();
+ return false;
+ }
const std::string& default_group_name = study.default_experiment_name();
base::FieldTrial::Probability divisor = 0;