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

Unified Diff: components/subresource_filter/content/renderer/subresource_filter_agent.h

Issue 2158833002: Factor DocumentSubresourceFilter out of SubresourceFilterAgent. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments from pkalinnikov@ Created 4 years, 5 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
Index: components/subresource_filter/content/renderer/subresource_filter_agent.h
diff --git a/components/subresource_filter/content/renderer/subresource_filter_agent.h b/components/subresource_filter/content/renderer/subresource_filter_agent.h
index a93c77acce3b5bc827b3dd16a26a0c6ba4bc4c45..b89cd88cab0bce8208d07e56f7854d94c74d3693 100644
--- a/components/subresource_filter/content/renderer/subresource_filter_agent.h
+++ b/components/subresource_filter/content/renderer/subresource_filter_agent.h
@@ -5,13 +5,23 @@
#ifndef COMPONENTS_SUBRESOURCE_FILTER_CONTENT_RENDERER_SUBRESOURCE_FILTER_AGENT_H_
#define COMPONENTS_SUBRESOURCE_FILTER_CONTENT_RENDERER_SUBRESOURCE_FILTER_AGENT_H_
+#include <memory>
+#include <vector>
+
#include "base/macros.h"
#include "components/subresource_filter/core/common/activation_state.h"
#include "content/public/renderer/render_frame_observer.h"
+class GURL;
+
+namespace blink {
+class WebDocumentSubresourceFilter;
+} // namespace blink
+
namespace subresource_filter {
class RulesetDealer;
+class DocumentSubresourceFilter;
// The renderer-side agent of the ContentSubresourceFilterDriver. There is one
// instance per RenderFrame, responsible for setting up the subresource filter
@@ -19,22 +29,35 @@ class RulesetDealer;
// so by the driver.
class SubresourceFilterAgent : public content::RenderFrameObserver {
public:
+ // The |ruleset_dealer| must not be null and must outlive this instance. The
+ // |render_frame| may be null in unittests.
explicit SubresourceFilterAgent(content::RenderFrame* render_frame,
RulesetDealer* ruleset_dealer);
~SubresourceFilterAgent() override;
+ protected:
+ // Returns the URLs of documents loaded into nested frames starting with the
+ // current frame and ending with the main frame. The returned array is
+ // guaranteed to have at least one element. Virtual so that it can be mocked
+ // out in tests.
+ virtual std::vector<GURL> GetAncestorDocumentURLs();
+
+ // Injects the provided subresource |filter| into the DocumentLoader
+ // orchestrating the most recently committed load. Virtual so that it can be
+ // mocked out in tests.
+ virtual void SetSubresourceFilterForCommittedLoad(
+ std::unique_ptr<blink::WebDocumentSubresourceFilter> filter);
+
private:
+ void ActivateForProvisionalLoad(ActivationState activation_state);
+
// content::RenderFrameObserver:
void OnDestruct() override;
void DidStartProvisionalLoad() override;
void DidCommitProvisionalLoad(bool is_new_navigation,
bool is_same_page_navigation) override;
-
- // content::RenderFrameObserver:
bool OnMessageReceived(const IPC::Message& message) override;
- void OnActivateForProvisionalLoad(ActivationState activation_state);
-
// Owned by the ChromeContentRendererClient and outlives us.
RulesetDealer* ruleset_dealer_;

Powered by Google App Engine
This is Rietveld 408576698