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

Unified Diff: components/subresource_filter/content/renderer/web_document_subresource_filter_impl.cc

Issue 2894523006: Add instrumentation hooks to mesaure which subresource filter rules are used.
Patch Set: Created 3 years, 7 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/web_document_subresource_filter_impl.cc
diff --git a/components/subresource_filter/content/renderer/web_document_subresource_filter_impl.cc b/components/subresource_filter/content/renderer/web_document_subresource_filter_impl.cc
index de17ed654bc9312e1cb3367380da8cab033cc6b1..9e2560d35d9b9ede17b87cad2920857064e45425 100644
--- a/components/subresource_filter/content/renderer/web_document_subresource_filter_impl.cc
+++ b/components/subresource_filter/content/renderer/web_document_subresource_filter_impl.cc
@@ -6,9 +6,11 @@
#include <utility>
+#include "base/memory/ptr_util.h"
#include "base/memory/ref_counted.h"
#include "components/subresource_filter/core/common/activation_state.h"
#include "components/subresource_filter/core/common/memory_mapped_ruleset.h"
+#include "components/subresource_filter/core/common/url_pattern.h"
#include "third_party/WebKit/public/platform/WebURL.h"
#include "third_party/WebKit/public/platform/WebURLRequest.h"
#include "url/gurl.h"
@@ -87,6 +89,39 @@ WebLoadPolicy ToWebLoadPolicy(LoadPolicy load_policy) {
}
}
+class LogRuleRecorder : public RuleRecorder {
+ public:
+ ~LogRuleRecorder() override {}
+ void RecordRuleUsage(const flat::UrlRule* rule) override {
+ if (!rule)
+ return;
+ std::string domains;
+ auto* domains_included = rule->domains_included();
+ auto* domains_excluded = rule->domains_excluded();
+ if (domains_included || domains_excluded) {
+ domains += " Domains:";
+ if (domains_included) {
+ domains += " +(";
+ for (const auto* domain : *domains_included) {
+ domains += domain->str();
+ domains += " ";
+ }
+ domains += ")";
+ }
+ if (domains_excluded) {
+ domains += " -(";
+ for (const auto* domain : *domains_excluded) {
+ domains += domain->str();
+ domains += " ";
+ }
+ domains += ")";
+ }
+ }
+ UrlPattern pattern(*rule);
+ LOG(ERROR) << "rule " << pattern << domains;
+ }
+};
+
} // namespace
WebDocumentSubresourceFilterImpl::~WebDocumentSubresourceFilterImpl() = default;
@@ -96,7 +131,10 @@ WebDocumentSubresourceFilterImpl::WebDocumentSubresourceFilterImpl(
ActivationState activation_state,
scoped_refptr<const MemoryMappedRuleset> ruleset,
base::OnceClosure first_disallowed_load_callback)
- : filter_(std::move(document_origin), activation_state, std::move(ruleset)),
+ : filter_(std::move(document_origin),
+ activation_state,
+ std::move(ruleset),
+ base::MakeUnique<LogRuleRecorder>()),
first_disallowed_load_callback_(
std::move(first_disallowed_load_callback)) {}

Powered by Google App Engine
This is Rietveld 408576698