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

Unified Diff: components/subresource_filter/core/browser/subresource_filter_features.cc

Issue 2875033004: [subresource_filter] Add debugging trace events around activation (Closed)
Patch Set: use loading category 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/core/browser/subresource_filter_features.cc
diff --git a/components/subresource_filter/core/browser/subresource_filter_features.cc b/components/subresource_filter/core/browser/subresource_filter_features.cc
index 5ce505d10bf931e2536b9ee84c3ce012ceb22adf..38e4b2c0c310f015abfe9c2731fc6b80acd60f1d 100644
--- a/components/subresource_filter/core/browser/subresource_filter_features.cc
+++ b/components/subresource_filter/core/browser/subresource_filter_features.cc
@@ -13,11 +13,13 @@
#include "base/json/json_writer.h"
#include "base/lazy_instance.h"
+#include "base/memory/ptr_util.h"
#include "base/metrics/field_trial_params.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "base/synchronization/lock.h"
+#include "base/trace_event/trace_event_argument.h"
#include "base/values.h"
#include "components/variations/variations_associated_data.h"
@@ -218,6 +220,28 @@ base::StringPiece GetLexicographicallyGreatestRulesetFlavor(
return greatest_flavor;
}
+std::unique_ptr<base::DictionaryValue> ConfigToDictionaryValue(
+ const Configuration& config) {
+ auto dict = base::MakeUnique<base::DictionaryValue>();
+ dict->SetString(
+ "activation_scope",
+ StreamToString(config.activation_conditions.activation_scope));
+ dict->SetString("activation_list",
+ StreamToString(config.activation_conditions.activation_list));
+ dict->SetInteger("priority", config.activation_conditions.priority);
+ dict->SetString("activation_level",
+ StreamToString(config.activation_options.activation_level));
+ dict->SetDouble("performance_measurement_rate",
+ config.activation_options.performance_measurement_rate);
+ dict->SetBoolean("should_suppress_notifications",
+ config.activation_options.should_suppress_notifications);
+ dict->SetBoolean("should_whitelist_site_on_reload",
+ config.activation_options.should_whitelist_site_on_reload);
+ dict->SetString("ruleset_flavor",
+ StreamToString(config.general_settings.ruleset_flavor));
+ return dict;
+}
+
// Globals --------------------------------------------------------------------
base::LazyInstance<base::Lock>::Leaky g_active_configurations_lock =
@@ -320,28 +344,20 @@ bool Configuration::operator!=(const Configuration& rhs) const {
}
std::ostream& operator<<(std::ostream& os, const Configuration& config) {
- base::DictionaryValue dict;
- dict.SetString("activation_scope",
- StreamToString(config.activation_conditions.activation_scope));
- dict.SetString("activation_list",
- StreamToString(config.activation_conditions.activation_list));
- dict.SetInteger("priority", config.activation_conditions.priority);
- dict.SetString("activation_level",
- StreamToString(config.activation_options.activation_level));
- dict.SetDouble("performance_measurement_rate",
- config.activation_options.performance_measurement_rate);
- dict.SetBoolean("should_suppress_notifications",
- config.activation_options.should_suppress_notifications);
- dict.SetBoolean("should_whitelist_site_on_reload",
- config.activation_options.should_whitelist_site_on_reload);
- dict.SetString("ruleset_flavor",
- StreamToString(config.general_settings.ruleset_flavor));
+ std::unique_ptr<base::DictionaryValue> dict = ConfigToDictionaryValue(config);
std::string json;
base::JSONWriter::WriteWithOptions(
- dict, base::JSONWriter::OPTIONS_PRETTY_PRINT, &json);
+ *dict, base::JSONWriter::OPTIONS_PRETTY_PRINT, &json);
return os << json;
}
+std::unique_ptr<base::trace_event::TracedValue> Configuration::GetTracedValue()
+ const {
+ auto value = base::MakeUnique<base::trace_event::TracedValue>();
+ value->SetValue("Configuration", ConfigToDictionaryValue(*this));
engedy 2017/05/15 12:10:38 nit: Note that this method is deprecated. Might wa
Charlie Harrison 2017/05/15 15:14:22 Discussed with Primiano who recommended we use the
+ return value;
+}
+
// ConfigurationList ----------------------------------------------------------
ConfigurationList::ConfigurationList(std::vector<Configuration> configs)

Powered by Google App Engine
This is Rietveld 408576698