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

Unified Diff: components/subresource_filter/core/common/document_subresource_filter.h

Issue 2697363005: Move DocumentSubresourceFilter to core/common. (Closed)
Patch Set: Address comments from engedy@. Created 3 years, 10 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/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_

Powered by Google App Engine
This is Rietveld 408576698