| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/subresource_filter/core/browser/subresource_filter_features
.h" | 5 #include "components/subresource_filter/core/browser/subresource_filter_features
.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <ostream> | 8 #include <ostream> |
| 9 #include <sstream> | 9 #include <sstream> |
| 10 #include <string> | 10 #include <string> |
| 11 #include <tuple> | 11 #include <tuple> |
| 12 #include <utility> | 12 #include <utility> |
| 13 | 13 |
| 14 #include "base/json/json_writer.h" | |
| 15 #include "base/lazy_instance.h" | 14 #include "base/lazy_instance.h" |
| 15 #include "base/memory/ptr_util.h" |
| 16 #include "base/metrics/field_trial_params.h" | 16 #include "base/metrics/field_trial_params.h" |
| 17 #include "base/strings/string_number_conversions.h" | 17 #include "base/strings/string_number_conversions.h" |
| 18 #include "base/strings/string_split.h" | 18 #include "base/strings/string_split.h" |
| 19 #include "base/strings/string_util.h" | 19 #include "base/strings/string_util.h" |
| 20 #include "base/synchronization/lock.h" | 20 #include "base/synchronization/lock.h" |
| 21 #include "base/values.h" | 21 #include "base/trace_event/trace_event_argument.h" |
| 22 #include "components/variations/variations_associated_data.h" | 22 #include "components/variations/variations_associated_data.h" |
| 23 | 23 |
| 24 namespace subresource_filter { | 24 namespace subresource_filter { |
| 25 | 25 |
| 26 namespace { | 26 namespace { |
| 27 | 27 |
| 28 // Helpers -------------------------------------------------------------------- | 28 // Helpers -------------------------------------------------------------------- |
| 29 | 29 |
| 30 class CommaSeparatedStrings { | 30 class CommaSeparatedStrings { |
| 31 public: | 31 public: |
| (...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 312 config.activation_options.should_suppress_notifications, | 312 config.activation_options.should_suppress_notifications, |
| 313 config.general_settings.ruleset_flavor); | 313 config.general_settings.ruleset_flavor); |
| 314 }; | 314 }; |
| 315 return tie(*this) == tie(rhs); | 315 return tie(*this) == tie(rhs); |
| 316 } | 316 } |
| 317 | 317 |
| 318 bool Configuration::operator!=(const Configuration& rhs) const { | 318 bool Configuration::operator!=(const Configuration& rhs) const { |
| 319 return !(*this == rhs); | 319 return !(*this == rhs); |
| 320 } | 320 } |
| 321 | 321 |
| 322 std::ostream& operator<<(std::ostream& os, const Configuration& config) { | 322 std::unique_ptr<base::trace_event::TracedValue> Configuration::ToTracedValue() |
| 323 base::DictionaryValue dict; | 323 const { |
| 324 dict.SetString("activation_scope", | 324 auto value = base::MakeUnique<base::trace_event::TracedValue>(); |
| 325 StreamToString(config.activation_conditions.activation_scope)); | 325 value->SetString("activation_scope", |
| 326 dict.SetString("activation_list", | 326 StreamToString(activation_conditions.activation_scope)); |
| 327 StreamToString(config.activation_conditions.activation_list)); | 327 value->SetString("activation_list", |
| 328 dict.SetInteger("priority", config.activation_conditions.priority); | 328 StreamToString(activation_conditions.activation_list)); |
| 329 dict.SetString("activation_level", | 329 value->SetInteger("priority", activation_conditions.priority); |
| 330 StreamToString(config.activation_options.activation_level)); | 330 value->SetString("activation_level", |
| 331 dict.SetDouble("performance_measurement_rate", | 331 StreamToString(activation_options.activation_level)); |
| 332 config.activation_options.performance_measurement_rate); | 332 value->SetDouble("performance_measurement_rate", |
| 333 dict.SetBoolean("should_suppress_notifications", | 333 activation_options.performance_measurement_rate); |
| 334 config.activation_options.should_suppress_notifications); | 334 value->SetBoolean("should_suppress_notifications", |
| 335 dict.SetBoolean("should_whitelist_site_on_reload", | 335 activation_options.should_suppress_notifications); |
| 336 config.activation_options.should_whitelist_site_on_reload); | 336 value->SetBoolean("should_whitelist_site_on_reload", |
| 337 dict.SetString("ruleset_flavor", | 337 activation_options.should_whitelist_site_on_reload); |
| 338 StreamToString(config.general_settings.ruleset_flavor)); | 338 value->SetString("ruleset_flavor", |
| 339 std::string json; | 339 StreamToString(general_settings.ruleset_flavor)); |
| 340 base::JSONWriter::WriteWithOptions( | 340 return value; |
| 341 dict, base::JSONWriter::OPTIONS_PRETTY_PRINT, &json); | |
| 342 return os << json; | |
| 343 } | 341 } |
| 344 | 342 |
| 345 // ConfigurationList ---------------------------------------------------------- | 343 // ConfigurationList ---------------------------------------------------------- |
| 346 | 344 |
| 347 ConfigurationList::ConfigurationList(std::vector<Configuration> configs) | 345 ConfigurationList::ConfigurationList(std::vector<Configuration> configs) |
| 348 : configs_by_decreasing_priority_( | 346 : configs_by_decreasing_priority_( |
| 349 SortConfigsByDecreasingPriority(std::move(configs))), | 347 SortConfigsByDecreasingPriority(std::move(configs))), |
| 350 lexicographically_greatest_ruleset_flavor_( | 348 lexicographically_greatest_ruleset_flavor_( |
| 351 GetLexicographicallyGreatestRulesetFlavor( | 349 GetLexicographicallyGreatestRulesetFlavor( |
| 352 configs_by_decreasing_priority_)) {} | 350 configs_by_decreasing_priority_)) {} |
| (...skipping 14 matching lines...) Expand all Loading... |
| 367 scoped_refptr<ConfigurationList> new_configs) { | 365 scoped_refptr<ConfigurationList> new_configs) { |
| 368 base::AutoLock lock(g_active_configurations_lock.Get()); | 366 base::AutoLock lock(g_active_configurations_lock.Get()); |
| 369 auto old_configs = std::move(g_active_configurations.Get()); | 367 auto old_configs = std::move(g_active_configurations.Get()); |
| 370 g_active_configurations.Get() = std::move(new_configs); | 368 g_active_configurations.Get() = std::move(new_configs); |
| 371 return old_configs; | 369 return old_configs; |
| 372 } | 370 } |
| 373 | 371 |
| 374 } // namespace testing | 372 } // namespace testing |
| 375 | 373 |
| 376 } // namespace subresource_filter | 374 } // namespace subresource_filter |
| OLD | NEW |