Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(32)

Unified Diff: components/variations/study_filtering.h

Issue 2924983003: [Variations] Refactor all state used for study filtering into a container struct. (Closed)
Patch Set: A bit more cleanup Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/variations/service/variations_service.cc ('k') | components/variations/study_filtering.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/variations/study_filtering.h
diff --git a/components/variations/study_filtering.h b/components/variations/study_filtering.h
index 9917ec7e82826b86cb0240593e64bda3a8bd9297..a5667cdb6cb5dd0440155c3b3226e9d74d7b47bd 100644
--- a/components/variations/study_filtering.h
+++ b/components/variations/study_filtering.h
@@ -17,70 +17,67 @@
namespace variations {
+struct ClientFilterableState;
+
// Internal functions exposed for testing purposes only.
namespace internal {
// Checks whether a study is applicable for the given |channel| per |filter|.
-bool CheckStudyChannel(const Study_Filter& filter, Study_Channel channel);
+bool CheckStudyChannel(const Study::Filter& filter, Study::Channel channel);
// Checks whether a study is applicable for the given |form_factor| per
// |filter|.
-bool CheckStudyFormFactor(const Study_Filter& filter,
- Study_FormFactor form_factor);
+bool CheckStudyFormFactor(const Study::Filter& filter,
+ Study::FormFactor form_factor);
// Checks whether a study is applicable for the given |hardware_class| per
// |filter|.
-bool CheckStudyHardwareClass(const Study_Filter& filter,
+bool CheckStudyHardwareClass(const Study::Filter& filter,
const std::string& hardware_class);
// Checks whether a study is applicable for the given |locale| per |filter|.
-bool CheckStudyLocale(const Study_Filter& filter, const std::string& locale);
+bool CheckStudyLocale(const Study::Filter& filter, const std::string& locale);
// Checks whether a study is applicable for the given |platform| per |filter|.
-bool CheckStudyPlatform(const Study_Filter& filter, Study_Platform platform);
+bool CheckStudyPlatform(const Study::Filter& filter, Study::Platform platform);
// Checks whether a study is applicable for the given date/time per |filter|.
-bool CheckStudyStartDate(const Study_Filter& filter,
+bool CheckStudyStartDate(const Study::Filter& filter,
const base::Time& date_time);
// Checks whether a study is applicable for the given date/time per |filter|.
-bool CheckStudyEndDate(const Study_Filter& filter, const base::Time& date_time);
+bool CheckStudyEndDate(const Study::Filter& filter,
+ const base::Time& date_time);
// Checks whether a study is applicable for the given version per |filter|.
-bool CheckStudyVersion(const Study_Filter& filter,
+bool CheckStudyVersion(const Study::Filter& filter,
const base::Version& version);
// Checks whether a study is applicable for the given |country| per |filter|.
-bool CheckStudyCountry(const Study_Filter& filter, const std::string& country);
+bool CheckStudyCountry(const Study::Filter& filter, const std::string& country);
+
+// Returns the country that should be used for filtering this study, depending
+// on whether the study has session or permanent consistency.
+const std::string& GetClientCountryForStudy(
+ const Study& study,
+ const ClientFilterableState& client_state);
// Checks whether |study| is expired using the given date/time.
bool IsStudyExpired(const Study& study, const base::Time& date_time);
-// Returns whether |study| should be disabled according to its restriction
-// parameters.
+// Returns whether |study| should be disabled according to the restriction
+// parameters in the |config|.
bool ShouldAddStudy(const Study& study,
- const std::string& locale,
- const base::Time& reference_date,
- const base::Version& version,
- Study_Channel channel,
- Study_FormFactor form_factor,
- const std::string& hardware_class,
- const std::string& country);
+ const ClientFilterableState& client_state);
} // namespace internal
-// Filters the list of studies in |seed| and validates and pre-processes them,
-// adding any kept studies to |filtered_studies| list. Ensures that the
-// resulting list will not have more than one study with the same name.
+// Filters the list of studies in |seed| according ot the |client_state|, and
+// validates and pre-processes them, adding any kept studies to the
+// |filtered_studies| list. Ensures that the resulting list will not have more
+// than one study with the same name.
void FilterAndValidateStudies(const VariationsSeed& seed,
- const std::string& locale,
- const base::Time& reference_date,
- const base::Version& version,
- Study_Channel channel,
- Study_FormFactor form_factor,
- const std::string& hardware_class,
- const std::string& session_consistency_country,
- const std::string& permanent_consistency_country,
+ const ClientFilterableState& client_state,
std::vector<ProcessedStudy>* filtered_studies);
} // namespace variations
« no previous file with comments | « components/variations/service/variations_service.cc ('k') | components/variations/study_filtering.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698