| 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
|
|
|