Commit 55eedcf9 authored by Charles Harrison's avatar Charles Harrison Committed by Commit Bot

[subresource_filter] More tracing around activation

Fixes some old trace events and adds a new one around condition matching.

Bug: 721512
Change-Id: I1f2dfb0708ea122b998c24a7fe21ca595c900160
Reviewed-on: https://chromium-review.googlesource.com/544195Reviewed-by: default avatarBryan McQuade <bmcquade@chromium.org>
Commit-Queue: Charlie Harrison <csharrison@chromium.org>
Cr-Commit-Position: refs/heads/master@{#481939}
parent c136747d
......@@ -4,6 +4,7 @@
#include "components/subresource_filter/content/browser/subresource_filter_safe_browsing_activation_throttle.h"
#include <sstream>
#include <utility>
#include <vector>
......@@ -219,13 +220,13 @@ SubresourceFilterSafeBrowsingActivationThrottle::ComputeActivation(
bool has_activated_config =
highest_priority_activated_config !=
config_list->configs_by_decreasing_priority().end();
TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("loading"),
"ContentSubresourceFilterDriverFactory::"
"ComputeActivationForMainFrameNavigation",
"highest_priority_activated_config",
has_activated_config
? highest_priority_activated_config->ToTracedValue()
: base::MakeUnique<base::trace_event::TracedValue>());
TRACE_EVENT1(
TRACE_DISABLED_BY_DEFAULT("loading"),
"SubresourceFilterSafeBrowsingActivationThrottle::ComputeActivation",
"highest_priority_activated_config",
has_activated_config
? highest_priority_activated_config->ToTracedValue()
: base::MakeUnique<base::trace_event::TracedValue>());
if (!has_activated_config)
return ActivationDecision::ACTIVATION_CONDITIONS_NOT_MET;
......@@ -249,6 +250,17 @@ bool SubresourceFilterSafeBrowsingActivationThrottle::
bool scheme_is_http_or_https,
const Configuration::ActivationConditions& conditions,
ActivationList matched_list) const {
// Avoid copies when tracing disabled.
auto list_to_string = [](ActivationList activation_list) {
std::ostringstream matched_list_stream;
matched_list_stream << activation_list;
return matched_list_stream.str();
};
TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("loading"),
"SubresourceFilterSafeBrowsingActivationThrottle::"
"DoesMainFrameURLSatisfyActivationConditions",
"matched_list", list_to_string(matched_list), "conditions",
conditions.ToTracedValue());
switch (conditions.activation_scope) {
case ActivationScope::ALL_SITES:
return true;
......
......@@ -325,14 +325,20 @@ bool Configuration::operator!=(const Configuration& rhs) const {
return !(*this == rhs);
}
std::unique_ptr<base::trace_event::TracedValue>
Configuration::ActivationConditions::ToTracedValue() const {
auto value = base::MakeUnique<base::trace_event::TracedValue>();
value->SetString("activation_scope", StreamToString(activation_scope));
value->SetString("activation_list", StreamToString(activation_list));
value->SetInteger("priority", priority);
return value;
}
std::unique_ptr<base::trace_event::TracedValue> Configuration::ToTracedValue()
const {
auto value = base::MakeUnique<base::trace_event::TracedValue>();
value->SetString("activation_scope",
StreamToString(activation_conditions.activation_scope));
value->SetString("activation_list",
StreamToString(activation_conditions.activation_list));
value->SetInteger("priority", activation_conditions.priority);
auto traced_conditions = activation_conditions.ToTracedValue();
value->SetValue("activation_conditions", *traced_conditions);
value->SetString("activation_level",
StreamToString(activation_options.activation_level));
value->SetDouble("performance_measurement_rate",
......
......@@ -61,6 +61,8 @@ struct Configuration {
// there are multiple configurations whose activation conditions are
// otherwise satisfied. A greater value indicates higher priority.
int priority = 0;
std::unique_ptr<base::trace_event::TracedValue> ToTracedValue() const;
};
// The details of how subresource filtering should operate for a given main
......
......@@ -17,7 +17,7 @@ std::unique_ptr<base::trace_event::TracedValue> ActivationState::ToTracedValue()
const {
auto value = base::MakeUnique<base::trace_event::TracedValue>();
std::ostringstream level;
level << this;
level << activation_level;
value->SetString("activation_level", level.str());
value->SetBoolean("filtering_disabled_for_document",
filtering_disabled_for_document);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment