Chromium Code Reviews| 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) |