Chromium Code Reviews| Index: components/subresource_filter/content/browser/content_subresource_filter_driver_factory.h |
| diff --git a/components/subresource_filter/content/browser/content_subresource_filter_driver_factory.h b/components/subresource_filter/content/browser/content_subresource_filter_driver_factory.h |
| index e291814738e3c08ebc84517c9717c32ca8fc6ce9..09d1e9d73f3e985901b32429caa6b38f97aa4e59 100644 |
| --- a/components/subresource_filter/content/browser/content_subresource_filter_driver_factory.h |
| +++ b/components/subresource_filter/content/browser/content_subresource_filter_driver_factory.h |
| @@ -15,6 +15,7 @@ |
| #include "base/supports_user_data.h" |
| #include "base/time/time.h" |
| #include "components/safe_browsing_db/util.h" |
| +#include "components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h" |
| #include "components/subresource_filter/core/common/document_load_statistics.h" |
| #include "content/public/browser/web_contents_observer.h" |
| #include "ui/base/page_transition_types.h" |
| @@ -44,7 +45,8 @@ using URLToActivationListsMap = |
| // per-frame SubresourceFilterAgents on the renderer side. |
| class ContentSubresourceFilterDriverFactory |
| : public base::SupportsUserData::Data, |
| - public content::WebContentsObserver { |
| + public content::WebContentsObserver, |
| + public ContentSubresourceFilterThrottleManager::Delegate { |
| public: |
| // NOTE: ActivationDecision backs a UMA histogram, so it is append-only. |
| enum class ActivationDecision { |
| @@ -113,14 +115,23 @@ class ContentSubresourceFilterDriverFactory |
| return activation_decision_; |
| } |
| + // ContentSubresourceFilterThrottleManager::Delegate: |
| + void OnFirstSubresourceLoadDisallowed() override; |
| + bool ShouldSuppressActivation( |
| + content::NavigationHandle* navigation_handle) override; |
| + void WillProcessResponse( |
| + content::NavigationHandle* navigation_handle) override; |
| + |
| + ContentSubresourceFilterThrottleManager* throttle_manager() { |
| + return throttle_manager_.get(); |
| + } |
| + |
| private: |
| friend class ContentSubresourceFilterDriverFactoryTest; |
| friend class safe_browsing::SafeBrowsingServiceTest; |
| void ResetActivationState(); |
| - void OnFirstSubresourceLoadDisallowed(); |
| - |
| void OnDocumentLoadStatistics(const DocumentLoadStatistics& statistics); |
| bool IsWhitelisted(const GURL& url) const; |
| @@ -130,8 +141,6 @@ class ContentSubresourceFilterDriverFactory |
| content::NavigationHandle* navigation_handle) override; |
| void DidRedirectNavigation( |
| content::NavigationHandle* navigation_handle) override; |
| - void ReadyToCommitNavigation( |
| - content::NavigationHandle* navigation_handle) override; |
| void DidFinishLoad(content::RenderFrameHost* render_frame_host, |
| const GURL& validated_url) override; |
| bool OnMessageReceived(const IPC::Message& message, |
| @@ -141,16 +150,6 @@ class ContentSubresourceFilterDriverFactory |
| // activation signal should be sent. |
| ActivationDecision ComputeActivationDecisionForMainFrameURL( |
| const GURL& url) const; |
| - void ActivateForFrameHostIfNeeded(content::RenderFrameHost* render_frame_host, |
| - const GURL& url); |
| - |
| - // Internal implementation of ReadyToCommitNavigation which doesn't use |
| - // NavigationHandle to ease unit tests. |
| - void ReadyToCommitNavigationInternal( |
| - content::RenderFrameHost* render_frame_host, |
| - const GURL& url, |
| - const content::Referrer& referrer, |
| - ui::PageTransition page_transition); |
| bool DidURLMatchActivationList(const GURL& url, |
| ActivationList activation_list) const; |
| @@ -165,6 +164,8 @@ class ContentSubresourceFilterDriverFactory |
| std::unique_ptr<SubresourceFilterClient> client_; |
| + std::unique_ptr<ContentSubresourceFilterThrottleManager> throttle_manager_; |
|
pkalinnikov
2017/04/03 13:40:07
nit: Please #include <memory>
Charlie Harrison
2017/04/03 15:33:31
Done.
|
| + |
| // Hosts to whitelist. This is only used for per-WebContents whitelisting and |
| // is distinct from content settings whitelisting. |
| HostPathSet whitelisted_hosts_; |