| Index: components/subresource_filter/core/browser/subresource_filter_features_test_support.h
|
| diff --git a/components/subresource_filter/core/browser/subresource_filter_features_test_support.h b/components/subresource_filter/core/browser/subresource_filter_features_test_support.h
|
| index 080bf615931549efa36a4536affb8fc508dd9e1e..dc06a78e204cce58f55c3d9c3f545490e661f365 100644
|
| --- a/components/subresource_filter/core/browser/subresource_filter_features_test_support.h
|
| +++ b/components/subresource_filter/core/browser/subresource_filter_features_test_support.h
|
| @@ -5,37 +5,51 @@
|
| #ifndef COMPONENTS_SUBRESOURCE_FILTER_CORE_BROWSER_SUBRESOURCE_FILTER_FEATURES_TEST_SUPPORT_H_
|
| #define COMPONENTS_SUBRESOURCE_FILTER_CORE_BROWSER_SUBRESOURCE_FILTER_FEATURES_TEST_SUPPORT_H_
|
|
|
| -#include <map>
|
| -#include <string>
|
| -
|
| #include "base/feature_list.h"
|
| #include "base/macros.h"
|
| #include "base/test/scoped_feature_list.h"
|
| +#include "components/subresource_filter/core/browser/subresource_filter_features.h"
|
|
|
| namespace subresource_filter {
|
| namespace testing {
|
|
|
| -// Helper to override the state of the |kSafeBrowsingSubresourceFilter| feature,
|
| -// and its variation parameters, e.g., maximum activation level and activation
|
| -// scope. Expects a pre-existing global base::FieldTrialList singleton.
|
| -class ScopedSubresourceFilterFeatureToggle {
|
| +// Helper class to override the active subresource filtering configuration to be
|
| +// used in tests while the instance is in scope.
|
| +//
|
| +// Configuration overrides can be nested, and will take effect regardless of
|
| +// field trial, feature, and/or variation parameter states.
|
| +class ScopedSubresourceFilterConfigurator {
|
| public:
|
| - ScopedSubresourceFilterFeatureToggle(
|
| - base::FeatureList::OverrideState feature_state,
|
| - const std::string& maximum_activation_level,
|
| - const std::string& activation_scope,
|
| - const std::string& activation_lists = std::string(),
|
| - const std::string& performance_measurement_rate = std::string(),
|
| - const std::string& suppress_notifications = std::string(),
|
| - const std::string& whitelist_site_on_reload = std::string());
|
| -
|
| - ScopedSubresourceFilterFeatureToggle(
|
| - base::FeatureList::OverrideState feature_state,
|
| - std::map<std::string, std::string> variation_params);
|
| + explicit ScopedSubresourceFilterConfigurator(
|
| + scoped_refptr<ConfigurationList> configs = nullptr);
|
| + explicit ScopedSubresourceFilterConfigurator(Configuration config);
|
| + ~ScopedSubresourceFilterConfigurator();
|
| +
|
| + void ResetConfiguration(Configuration config);
|
| +
|
| + private:
|
| + scoped_refptr<ConfigurationList> original_config_;
|
|
|
| + DISALLOW_COPY_AND_ASSIGN(ScopedSubresourceFilterConfigurator);
|
| +};
|
| +
|
| +// Helper class to override the state of the |kSafeBrowsingSubresourceFilter|
|
| +// feature.
|
| +//
|
| +// Clears the active subresource filtering configuration override, upon
|
| +// construction, if any, and restores it on destruction. So while the instance
|
| +// is in scope, calls to GetActiveConfigurations() will default to returning the
|
| +// hard-coded configuration corresponding to the forced feature state. Tests
|
| +// that need to toggle both the feature and override the active configuration
|
| +// should therefore do so in that order.
|
| +class ScopedSubresourceFilterFeatureToggle {
|
| + public:
|
| + explicit ScopedSubresourceFilterFeatureToggle(
|
| + base::FeatureList::OverrideState subresource_filter_state);
|
| ~ScopedSubresourceFilterFeatureToggle();
|
|
|
| private:
|
| + ScopedSubresourceFilterConfigurator scoped_configuration_;
|
| base::test::ScopedFeatureList scoped_feature_list_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(ScopedSubresourceFilterFeatureToggle);
|
|
|