OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "components/variations/study_filtering.h" | 5 #include "components/variations/study_filtering.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <set> | 10 #include <set> |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
136 const base::Time& date_time) { | 136 const base::Time& date_time) { |
137 if (filter.has_start_date()) { | 137 if (filter.has_start_date()) { |
138 const base::Time start_date = | 138 const base::Time start_date = |
139 ConvertStudyDateToBaseTime(filter.start_date()); | 139 ConvertStudyDateToBaseTime(filter.start_date()); |
140 return date_time >= start_date; | 140 return date_time >= start_date; |
141 } | 141 } |
142 | 142 |
143 return true; | 143 return true; |
144 } | 144 } |
145 | 145 |
| 146 bool CheckStudyEndDate(const Study_Filter& filter, |
| 147 const base::Time& date_time) { |
| 148 if (filter.has_end_date()) { |
| 149 const base::Time end_date = ConvertStudyDateToBaseTime(filter.end_date()); |
| 150 return end_date >= date_time; |
| 151 } |
| 152 |
| 153 return true; |
| 154 } |
| 155 |
146 bool CheckStudyVersion(const Study_Filter& filter, | 156 bool CheckStudyVersion(const Study_Filter& filter, |
147 const base::Version& version) { | 157 const base::Version& version) { |
148 if (filter.has_min_version()) { | 158 if (filter.has_min_version()) { |
149 if (version.CompareToWildcardString(filter.min_version()) < 0) | 159 if (version.CompareToWildcardString(filter.min_version()) < 0) |
150 return false; | 160 return false; |
151 } | 161 } |
152 | 162 |
153 if (filter.has_max_version()) { | 163 if (filter.has_max_version()) { |
154 if (version.CompareToWildcardString(filter.max_version()) > 0) | 164 if (version.CompareToWildcardString(filter.max_version()) > 0) |
155 return false; | 165 return false; |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
218 DVLOG(1) << "Filtered out study " << study.name() << " due to version."; | 228 DVLOG(1) << "Filtered out study " << study.name() << " due to version."; |
219 return false; | 229 return false; |
220 } | 230 } |
221 | 231 |
222 if (!CheckStudyStartDate(study.filter(), reference_date)) { | 232 if (!CheckStudyStartDate(study.filter(), reference_date)) { |
223 DVLOG(1) << "Filtered out study " << study.name() << | 233 DVLOG(1) << "Filtered out study " << study.name() << |
224 " due to start date."; | 234 " due to start date."; |
225 return false; | 235 return false; |
226 } | 236 } |
227 | 237 |
| 238 if (!CheckStudyEndDate(study.filter(), reference_date)) { |
| 239 DVLOG(1) << "Filtered out study " << study.name() << " due to end date."; |
| 240 return false; |
| 241 } |
| 242 |
228 if (!CheckStudyHardwareClass(study.filter(), hardware_class)) { | 243 if (!CheckStudyHardwareClass(study.filter(), hardware_class)) { |
229 DVLOG(1) << "Filtered out study " << study.name() << | 244 DVLOG(1) << "Filtered out study " << study.name() << |
230 " due to hardware_class."; | 245 " due to hardware_class."; |
231 return false; | 246 return false; |
232 } | 247 } |
233 | 248 |
234 if (!CheckStudyCountry(study.filter(), country)) { | 249 if (!CheckStudyCountry(study.filter(), country)) { |
235 DVLOG(1) << "Filtered out study " << study.name() << " due to country."; | 250 DVLOG(1) << "Filtered out study " << study.name() << " due to country."; |
236 return false; | 251 return false; |
237 } | 252 } |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
299 | 314 |
300 for (size_t i = 0; i < expired_studies.size(); ++i) { | 315 for (size_t i = 0; i < expired_studies.size(); ++i) { |
301 if (!base::ContainsKey(created_studies, expired_studies[i]->name())) { | 316 if (!base::ContainsKey(created_studies, expired_studies[i]->name())) { |
302 ProcessedStudy::ValidateAndAppendStudy(expired_studies[i], true, | 317 ProcessedStudy::ValidateAndAppendStudy(expired_studies[i], true, |
303 filtered_studies); | 318 filtered_studies); |
304 } | 319 } |
305 } | 320 } |
306 } | 321 } |
307 | 322 |
308 } // namespace variations | 323 } // namespace variations |
OLD | NEW |