Index: components/subresource_filter/core/common/document_subresource_filter.h |
diff --git a/components/subresource_filter/content/common/document_subresource_filter.h b/components/subresource_filter/core/common/document_subresource_filter.h |
similarity index 65% |
rename from components/subresource_filter/content/common/document_subresource_filter.h |
rename to components/subresource_filter/core/common/document_subresource_filter.h |
index 68f336f42ff939fdcc434ec111327c556b6906d8..5345624c0c4559172c47d88b9c3e4293c39624f4 100644 |
--- a/components/subresource_filter/content/common/document_subresource_filter.h |
+++ b/components/subresource_filter/core/common/document_subresource_filter.h |
@@ -2,33 +2,39 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#ifndef COMPONENTS_SUBRESOURCE_FILTER_CONTENT_COMMON_DOCUMENT_SUBRESOURCE_FILTER_H_ |
-#define COMPONENTS_SUBRESOURCE_FILTER_CONTENT_COMMON_DOCUMENT_SUBRESOURCE_FILTER_H_ |
+#ifndef COMPONENTS_SUBRESOURCE_FILTER_CORE_COMMON_DOCUMENT_SUBRESOURCE_FILTER_H_ |
+#define COMPONENTS_SUBRESOURCE_FILTER_CORE_COMMON_DOCUMENT_SUBRESOURCE_FILTER_H_ |
#include <stddef.h> |
#include <memory> |
#include <vector> |
-#include "base/callback.h" |
#include "base/macros.h" |
#include "base/memory/ref_counted.h" |
-#include "base/memory/weak_ptr.h" |
-#include "base/time/time.h" |
-#include "components/subresource_filter/content/common/document_load_statistics.h" |
#include "components/subresource_filter/core/common/activation_level.h" |
#include "components/subresource_filter/core/common/activation_state.h" |
+#include "components/subresource_filter/core/common/document_load_statistics.h" |
#include "components/subresource_filter/core/common/indexed_ruleset.h" |
#include "components/subresource_filter/core/common/proto/rules.pb.h" |
-#include "third_party/WebKit/public/platform/WebDocumentSubresourceFilter.h" |
-#include "url/gurl.h" |
-#include "url/origin.h" |
+ |
+class GURL; |
+ |
+namespace url { |
+class Origin; |
+} // namespace url |
namespace subresource_filter { |
class FirstPartyOrigin; |
class MemoryMappedRuleset; |
+enum class LoadPolicy { |
+ ALLOW, |
+ DISALLOW, |
+ WOULD_DISALLOW, |
+}; |
+ |
// Computes whether/how subresource filtering should be activated while loading |
// |document_url| in a frame, based on the parent document's |activation_state|, |
// the |parent_document_origin|, as well as any applicable deactivation rules in |
@@ -53,40 +59,31 @@ ActivationState ComputeActivationState( |
const MemoryMappedRuleset* ruleset); |
// Performs filtering of subresource loads in the scope of a given document. |
-class DocumentSubresourceFilter |
- : public blink::WebDocumentSubresourceFilter, |
- public base::SupportsWeakPtr<DocumentSubresourceFilter> { |
+class DocumentSubresourceFilter { |
public: |
// Constructs a new filter that will: |
// -- Operate in a manner prescribed in |activation_state|. |
// -- Filter subresource loads in the scope of a document loaded from |
// |document_origin|. |
// -- Hold a reference to and use |ruleset| for its entire lifetime. |
- // -- Invoke |first_disallowed_load_callback|, if it is non-null, on the |
- // first disallowed subresource load. |
DocumentSubresourceFilter(url::Origin document_origin, |
ActivationState activation_state, |
- scoped_refptr<const MemoryMappedRuleset> ruleset, |
- base::OnceClosure first_disallowed_load_callback); |
+ scoped_refptr<const MemoryMappedRuleset> ruleset); |
- ~DocumentSubresourceFilter() override; |
+ ~DocumentSubresourceFilter(); |
+ ActivationState activation_state() const { return activation_state_; } |
const DocumentLoadStatistics& statistics() const { return statistics_; } |
- bool is_performance_measuring_enabled() const { |
- return activation_state_.measure_performance; |
- } |
- // blink::WebDocumentSubresourceFilter: |
- LoadPolicy getLoadPolicy(const blink::WebURL& resourceUrl, |
- blink::WebURLRequest::RequestContext) override; |
- void reportDisallowedLoad() override; |
+ // WARNING: This is only to allow DocumentSubresourceFilter's wrappers to |
+ // modify the |statistics|. |
+ // TODO(pkalinnikov): Find a better way to achieve this. |
+ DocumentLoadStatistics& statistics() { return statistics_; } |
- LoadPolicy GetLoadPolicyForSubdocument(const GURL& subdocument_url); |
+ LoadPolicy GetLoadPolicy(const GURL& subresource_url, |
+ proto::ElementType subresource_type); |
private: |
- LoadPolicy EvaluateLoadPolicy(const GURL& resource_url, |
- proto::ElementType element_type); |
- |
const ActivationState activation_state_; |
const scoped_refptr<const MemoryMappedRuleset> ruleset_; |
const IndexedRulesetMatcher ruleset_matcher_; |
@@ -94,7 +91,6 @@ class DocumentSubresourceFilter |
// Equals nullptr iff |activation_state_.filtering_disabled_for_document|. |
std::unique_ptr<FirstPartyOrigin> document_origin_; |
- base::OnceClosure first_disallowed_load_callback_; |
DocumentLoadStatistics statistics_; |
DISALLOW_COPY_AND_ASSIGN(DocumentSubresourceFilter); |
@@ -102,4 +98,4 @@ class DocumentSubresourceFilter |
} // namespace subresource_filter |
-#endif // COMPONENTS_SUBRESOURCE_FILTER_CONTENT_COMMON_DOCUMENT_SUBRESOURCE_FILTER_H_ |
+#endif // COMPONENTS_SUBRESOURCE_FILTER_CORE_COMMON_DOCUMENT_SUBRESOURCE_FILTER_H_ |