diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-08-28 15:28:34 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-08-28 13:54:51 +0000 |
commit | 2a19c63448c84c1805fb1a585c3651318bb86ca7 (patch) | |
tree | eb17888e8531aa6ee5e85721bd553b832a7e5156 /chromium/base/trace_event/trace_config.cc | |
parent | b014812705fc80bff0a5c120dfcef88f349816dc (diff) |
BASELINE: Update Chromium to 69.0.3497.70
Change-Id: I2b7b56e4e7a8b26656930def0d4575dc32b900a0
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/base/trace_event/trace_config.cc')
-rw-r--r-- | chromium/base/trace_event/trace_config.cc | 63 |
1 files changed, 62 insertions, 1 deletions
diff --git a/chromium/base/trace_event/trace_config.cc b/chromium/base/trace_event/trace_config.cc index 624a29c47af..9d6a9d48744 100644 --- a/chromium/base/trace_event/trace_config.cc +++ b/chromium/base/trace_event/trace_config.cc @@ -51,6 +51,9 @@ const char kEventFiltersParam[] = "event_filters"; const char kFilterPredicateParam[] = "filter_predicate"; const char kFilterArgsParam[] = "filter_args"; +// String parameter used to parse process filter. +const char kIncludedProcessesParam[] = "included_process_ids"; + class ConvertableTraceConfigToTraceFormat : public base::trace_event::ConvertableToTraceFormat { public: @@ -115,6 +118,56 @@ void TraceConfig::MemoryDumpConfig::Merge( config.heap_profiler_options.breakdown_threshold_bytes); } +TraceConfig::ProcessFilterConfig::ProcessFilterConfig() = default; + +TraceConfig::ProcessFilterConfig::ProcessFilterConfig( + const ProcessFilterConfig& other) = default; + +TraceConfig::ProcessFilterConfig::ProcessFilterConfig( + const std::unordered_set<base::ProcessId>& included_process_ids) + : included_process_ids_(included_process_ids) {} + +TraceConfig::ProcessFilterConfig::~ProcessFilterConfig() = default; + +void TraceConfig::ProcessFilterConfig::Clear() { + included_process_ids_.clear(); +} + +void TraceConfig::ProcessFilterConfig::Merge( + const ProcessFilterConfig& config) { + included_process_ids_.insert(config.included_process_ids_.begin(), + config.included_process_ids_.end()); +} + +void TraceConfig::ProcessFilterConfig::InitializeFromConfigDict( + const base::DictionaryValue& dict) { + included_process_ids_.clear(); + const Value* value = + dict.FindKeyOfType(kIncludedProcessesParam, Value::Type::LIST); + if (!value) + return; + for (auto& pid_value : value->GetList()) { + if (pid_value.is_int()) + included_process_ids_.insert(pid_value.GetInt()); + } +} + +void TraceConfig::ProcessFilterConfig::ToDict(DictionaryValue* dict) const { + if (included_process_ids_.empty()) + return; + Value* list = dict->SetKey(kIncludedProcessesParam, Value(Value::Type::LIST)); + std::set<base::ProcessId> ordered_set(included_process_ids_.begin(), + included_process_ids_.end()); + for (auto process_id : ordered_set) + list->GetList().emplace_back(static_cast<int>(process_id)); +} + +bool TraceConfig::ProcessFilterConfig::IsEnabled( + base::ProcessId process_id) const { + return included_process_ids_.empty() || + included_process_ids_.count(process_id); +} + TraceConfig::EventFilterConfig::EventFilterConfig( const std::string& predicate_name) : predicate_name_(predicate_name) {} @@ -237,6 +290,7 @@ TraceConfig& TraceConfig::operator=(const TraceConfig& rhs) { enable_systrace_ = rhs.enable_systrace_; enable_argument_filter_ = rhs.enable_argument_filter_; category_filter_ = rhs.category_filter_; + process_filter_config_ = rhs.process_filter_config_; memory_dump_config_ = rhs.memory_dump_config_; event_filters_ = rhs.event_filters_; return *this; @@ -274,8 +328,8 @@ void TraceConfig::Merge(const TraceConfig& config) { } category_filter_.Merge(config.category_filter_); - memory_dump_config_.Merge(config.memory_dump_config_); + process_filter_config_.Merge(config.process_filter_config_); event_filters_.insert(event_filters_.end(), config.event_filters().begin(), config.event_filters().end()); @@ -287,6 +341,7 @@ void TraceConfig::Clear() { enable_argument_filter_ = false; category_filter_.Clear(); memory_dump_config_.Clear(); + process_filter_config_.Clear(); event_filters_.clear(); } @@ -317,6 +372,7 @@ void TraceConfig::InitializeFromConfigDict(const DictionaryValue& dict) { dict.GetBoolean(kEnableArgumentFilterParam, &val) ? val : false; category_filter_.InitializeFromConfigDict(dict); + process_filter_config_.InitializeFromConfigDict(dict); const base::ListValue* category_event_filters = nullptr; if (dict.GetList(kEventFiltersParam, &category_event_filters)) @@ -447,6 +503,10 @@ void TraceConfig::SetDefaultMemoryDumpConfig() { memory_dump_config_.allowed_dump_modes = GetDefaultAllowedMemoryDumpModes(); } +void TraceConfig::SetProcessFilterConfig(const ProcessFilterConfig& config) { + process_filter_config_ = config; +} + void TraceConfig::SetEventFiltersFromConfigList( const base::ListValue& category_event_filters) { event_filters_.clear(); @@ -477,6 +537,7 @@ std::unique_ptr<DictionaryValue> TraceConfig::ToDict() const { dict->SetBoolean(kEnableArgumentFilterParam, enable_argument_filter_); category_filter_.ToDict(dict.get()); + process_filter_config_.ToDict(dict.get()); if (!event_filters_.empty()) { std::unique_ptr<base::ListValue> filter_list(new base::ListValue()); |