| Index: components/subresource_filter/content/renderer/subresource_filter_agent.cc
|
| diff --git a/components/subresource_filter/content/renderer/subresource_filter_agent.cc b/components/subresource_filter/content/renderer/subresource_filter_agent.cc
|
| index b7b7ccae80c6b3d2058a53825b16d524d7ab75e5..a7c338db2804f23a6c76e0a32271de5ea0bb1f6d 100644
|
| --- a/components/subresource_filter/content/renderer/subresource_filter_agent.cc
|
| +++ b/components/subresource_filter/content/renderer/subresource_filter_agent.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #include "base/logging.h"
|
| #include "base/memory/ref_counted.h"
|
| +#include "base/metrics/histogram_macros.h"
|
| #include "components/subresource_filter/content/common/subresource_filter_messages.h"
|
| #include "components/subresource_filter/content/renderer/document_subresource_filter.h"
|
| #include "components/subresource_filter/content/renderer/ruleset_dealer.h"
|
| @@ -50,17 +51,44 @@ void SubresourceFilterAgent::ActivateForProvisionalLoad(
|
| activation_state_for_provisional_load_ = activation_state;
|
| }
|
|
|
| +void SubresourceFilterAgent::RecordHistogramsOnLoadCommitted() {
|
| + UMA_HISTOGRAM_ENUMERATION(
|
| + "SubresourceFilter.DocumentLoad.ActivationState",
|
| + static_cast<int>(activation_state_for_provisional_load_),
|
| + static_cast<int>(ActivationState::LAST) + 1);
|
| +
|
| + if (activation_state_for_provisional_load_ != ActivationState::DISABLED) {
|
| + UMA_HISTOGRAM_BOOLEAN("SubresourceFilter.DocumentLoad.RulesetIsAvailable",
|
| + !!ruleset_dealer_->ruleset());
|
| + }
|
| +}
|
| +
|
| +void SubresourceFilterAgent::RecordHistogramsOnLoadFinished() {
|
| + DCHECK(filter_for_last_committed_load_);
|
| + UMA_HISTOGRAM_COUNTS_1000(
|
| + "SubresourceFilter.DocumentLoad.NumSubresourceLoads.Evaluated",
|
| + filter_for_last_committed_load_->num_loads_evaluated());
|
| + UMA_HISTOGRAM_COUNTS_1000(
|
| + "SubresourceFilter.DocumentLoad.NumSubresourceLoads.MatchedRules",
|
| + filter_for_last_committed_load_->num_loads_matching_rules());
|
| + UMA_HISTOGRAM_COUNTS_1000(
|
| + "SubresourceFilter.DocumentLoad.NumSubresourceLoads.Disallowed",
|
| + filter_for_last_committed_load_->num_loads_disallowed());
|
| +}
|
| +
|
| void SubresourceFilterAgent::OnDestruct() {
|
| delete this;
|
| }
|
|
|
| void SubresourceFilterAgent::DidStartProvisionalLoad() {
|
| activation_state_for_provisional_load_ = ActivationState::DISABLED;
|
| + filter_for_last_committed_load_.reset();
|
| }
|
|
|
| void SubresourceFilterAgent::DidCommitProvisionalLoad(
|
| bool is_new_navigation,
|
| bool is_same_page_navigation) {
|
| + RecordHistogramsOnLoadCommitted();
|
| if (activation_state_for_provisional_load_ != ActivationState::DISABLED &&
|
| ruleset_dealer_->ruleset()) {
|
| std::vector<GURL> ancestor_document_urls = GetAncestorDocumentURLs();
|
| @@ -68,11 +96,19 @@ void SubresourceFilterAgent::DidCommitProvisionalLoad(
|
| new DocumentSubresourceFilter(activation_state_for_provisional_load_,
|
| ruleset_dealer_->ruleset(),
|
| std::move(ancestor_document_urls)));
|
| + filter_for_last_committed_load_ = filter->AsWeakPtr();
|
| SetSubresourceFilterForCommittedLoad(std::move(filter));
|
| }
|
| activation_state_for_provisional_load_ = ActivationState::DISABLED;
|
| }
|
|
|
| +void SubresourceFilterAgent::DidFinishLoad() {
|
| + if (!filter_for_last_committed_load_)
|
| + return;
|
| +
|
| + RecordHistogramsOnLoadFinished();
|
| +}
|
| +
|
| bool SubresourceFilterAgent::OnMessageReceived(const IPC::Message& message) {
|
| bool handled = true;
|
| IPC_BEGIN_MESSAGE_MAP(SubresourceFilterAgent, message)
|
|
|