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 |