| Index: components/subresource_filter/content/browser/subresource_filter_safe_browsing_activation_throttle.h
|
| diff --git a/components/subresource_filter/content/browser/subresource_filter_safe_browsing_activation_throttle.h b/components/subresource_filter/content/browser/subresource_filter_safe_browsing_activation_throttle.h
|
| index 8faa26c2b514a49863d179e6c73e33deed763d97..885e4e3e953224f4248f09dfe2c9c5ed22e0ef48 100644
|
| --- a/components/subresource_filter/content/browser/subresource_filter_safe_browsing_activation_throttle.h
|
| +++ b/components/subresource_filter/content/browser/subresource_filter_safe_browsing_activation_throttle.h
|
| @@ -17,11 +17,19 @@
|
| #include "base/time/time.h"
|
| #include "components/safe_browsing_db/database_manager.h"
|
| #include "components/subresource_filter/content/browser/subresource_filter_safe_browsing_client.h"
|
| +#include "components/subresource_filter/core/browser/subresource_filter_features.h"
|
| +#include "components/subresource_filter/core/common/activation_decision.h"
|
| #include "components/subresource_filter/core/common/activation_list.h"
|
| #include "content/public/browser/navigation_throttle.h"
|
|
|
| +namespace base {
|
| +class GURL;
|
| +} // namespace base
|
| +
|
| namespace subresource_filter {
|
|
|
| +class SubresourceFilterClient;
|
| +
|
| // Navigation throttle responsible for activating subresource filtering on page
|
| // loads that match the SUBRESOURCE_FILTER Safe Browsing list.
|
| class SubresourceFilterSafeBrowsingActivationThrottle
|
| @@ -31,12 +39,17 @@ class SubresourceFilterSafeBrowsingActivationThrottle
|
| public:
|
| SubresourceFilterSafeBrowsingActivationThrottle(
|
| content::NavigationHandle* handle,
|
| + SubresourceFilterClient* client,
|
| scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
|
| scoped_refptr<safe_browsing::SafeBrowsingDatabaseManager>
|
| database_manager);
|
|
|
| ~SubresourceFilterSafeBrowsingActivationThrottle() override;
|
|
|
| + // Returns whether the navigation handle is a page reload, based on the
|
| + // transition type and referrer.
|
| + static bool NavigationIsPageReload(content::NavigationHandle* handle);
|
| +
|
| // content::NavigationThrottle:
|
| content::NavigationThrottle::ThrottleCheckResult WillStartRequest() override;
|
| content::NavigationThrottle::ThrottleCheckResult WillRedirectRequest()
|
| @@ -52,6 +65,17 @@ class SubresourceFilterSafeBrowsingActivationThrottle
|
| void CheckCurrentUrl();
|
| void NotifyResult();
|
|
|
| + ActivationDecision ComputeActivation(
|
| + Configuration::ActivationOptions* options);
|
| +
|
| + // Returns whether a main-frame navigation to the given |url| satisfies the
|
| + // activation |conditions| of a given configuration, except for |priority|.
|
| + bool DoesMainFrameURLSatisfyActivationConditions(
|
| + const GURL& url,
|
| + bool scheme_is_http_or_https,
|
| + const Configuration::ActivationConditions& conditions,
|
| + ActivationList matched_list) const;
|
| +
|
| void RecordRedirectChainMatchPatternForList(ActivationList activation_list);
|
|
|
| std::vector<SubresourceFilterSafeBrowsingClient::CheckResult> check_results_;
|
| @@ -63,6 +87,9 @@ class SubresourceFilterSafeBrowsingActivationThrottle
|
| base::OnTaskRunnerDeleter>
|
| database_client_;
|
|
|
| + // Must outlive this class.
|
| + SubresourceFilterClient* client_;
|
| +
|
| // Set to TimeTicks::Now() when the navigation is deferred in
|
| // WillProcessResponse. If deferral was not necessary, will remain null.
|
| base::TimeTicks defer_time_;
|
|
|