Index: chrome/browser/metrics/variations_service.cc |
=================================================================== |
--- chrome/browser/metrics/variations_service.cc (revision 145458) |
+++ chrome/browser/metrics/variations_service.cc (working copy) |
@@ -282,19 +282,13 @@ |
} |
if (filter.has_min_version()) { |
- const Version min_version(filter.min_version()); |
- if (!min_version.IsValid()) |
+ if (version.CompareToWildcardString(filter.min_version()) < 0) |
return false; |
- if (version.CompareTo(min_version) < 0) |
- return false; |
} |
if (filter.has_max_version()) { |
- const Version max_version(filter.max_version()); |
- if (!max_version.IsValid()) |
+ if (version.CompareToWildcardString(filter.max_version()) > 0) |
return false; |
- if (version.CompareTo(max_version) > 0) |
- return false; |
} |
return true; |
@@ -333,6 +327,18 @@ |
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; |