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) |