Commit a3296099 authored by Siddhartha S's avatar Siddhartha S Committed by Commit Bot

Clean up perfetto_config.cc

Refactor common code into a function.

BUG=925151

Change-Id: Ieed9ec0ce141cc80e174d4c8f2809267656fa96c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1605157Reviewed-by: default avataroysteine <oysteine@chromium.org>
Commit-Queue: ssid <ssid@chromium.org>
Cr-Commit-Position: refs/heads/master@{#658722}
parent 57166b42
...@@ -14,6 +14,25 @@ ...@@ -14,6 +14,25 @@
namespace tracing { namespace tracing {
namespace {
perfetto::TraceConfig::DataSource* AddDataSourceConfig(
perfetto::TraceConfig* perfetto_config,
const char* name,
const std::string& chrome_config_string,
bool privacy_filtering_enabled) {
auto* data_source = perfetto_config->add_data_sources();
auto* source_config = data_source->mutable_config();
source_config->set_name(name);
source_config->set_target_buffer(0);
auto* chrome_config = source_config->mutable_chrome_config();
chrome_config->set_trace_config(chrome_config_string);
chrome_config->set_privacy_filtering_enabled(privacy_filtering_enabled);
return data_source;
}
} // namespace
perfetto::TraceConfig GetDefaultPerfettoConfig( perfetto::TraceConfig GetDefaultPerfettoConfig(
const base::trace_event::TraceConfig& chrome_config, const base::trace_event::TraceConfig& chrome_config,
bool privacy_filtering_enabled) { bool privacy_filtering_enabled) {
...@@ -32,15 +51,6 @@ perfetto::TraceConfig GetDefaultPerfettoConfig( ...@@ -32,15 +51,6 @@ perfetto::TraceConfig GetDefaultPerfettoConfig(
builtin_data_sources->set_disable_trace_config(privacy_filtering_enabled); builtin_data_sources->set_disable_trace_config(privacy_filtering_enabled);
builtin_data_sources->set_disable_system_info(privacy_filtering_enabled); builtin_data_sources->set_disable_system_info(privacy_filtering_enabled);
// Capture actual trace events.
auto* trace_event_data_source = perfetto_config.add_data_sources();
for (auto& enabled_pid :
chrome_config.process_filter_config().included_process_ids()) {
*trace_event_data_source->add_producer_name_filter() = base::StrCat(
{mojom::kPerfettoProducerNamePrefix,
base::NumberToString(static_cast<uint32_t>(enabled_pid))});
}
// We strip the process filter from the config string we send to Perfetto, // We strip the process filter from the config string we send to Perfetto,
// so perfetto doesn't reject it from a future // so perfetto doesn't reject it from a future
// TracingService::ChangeTraceConfig call due to being an unsupported // TracingService::ChangeTraceConfig call due to being an unsupported
...@@ -50,44 +60,33 @@ perfetto::TraceConfig GetDefaultPerfettoConfig( ...@@ -50,44 +60,33 @@ perfetto::TraceConfig GetDefaultPerfettoConfig(
base::trace_event::TraceConfig::ProcessFilterConfig()); base::trace_event::TraceConfig::ProcessFilterConfig());
std::string chrome_config_string = processfilter_stripped_config.ToString(); std::string chrome_config_string = processfilter_stripped_config.ToString();
auto* trace_event_config = trace_event_data_source->mutable_config(); // Capture actual trace events.
trace_event_config->set_name(tracing::mojom::kTraceEventDataSourceName); auto* trace_event_data_source = AddDataSourceConfig(
trace_event_config->set_target_buffer(0); &perfetto_config, tracing::mojom::kTraceEventDataSourceName,
auto* chrome_proto_config = trace_event_config->mutable_chrome_config(); chrome_config_string, privacy_filtering_enabled);
chrome_proto_config->set_trace_config(chrome_config_string); for (auto& enabled_pid :
chrome_proto_config->set_privacy_filtering_enabled(privacy_filtering_enabled); chrome_config.process_filter_config().included_process_ids()) {
*trace_event_data_source->add_producer_name_filter() = base::StrCat(
{mojom::kPerfettoProducerNamePrefix,
base::NumberToString(static_cast<uint32_t>(enabled_pid))});
}
// Capture system trace events if supported and enabled. The datasources will // Capture system trace events if supported and enabled. The datasources will
// only emit events if system tracing is enabled in |chrome_config|. // only emit events if system tracing is enabled in |chrome_config|.
#if defined(OS_CHROMEOS) || (defined(IS_CHROMECAST) && defined(OS_LINUX)) #if defined(OS_CHROMEOS) || (defined(IS_CHROMECAST) && defined(OS_LINUX))
auto* system_trace_config = AddDataSourceConfig(&perfetto_config,
perfetto_config.add_data_sources()->mutable_config(); tracing::mojom::kSystemTraceDataSourceName,
system_trace_config->set_name(tracing::mojom::kSystemTraceDataSourceName); chrome_config_string, privacy_filtering_enabled);
system_trace_config->set_target_buffer(0);
auto* system_chrome_config = system_trace_config->mutable_chrome_config();
system_chrome_config->set_trace_config(chrome_config_string);
system_chrome_config->set_privacy_filtering_enabled(
privacy_filtering_enabled);
#endif #endif
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
auto* arc_trace_config = perfetto_config.add_data_sources()->mutable_config(); AddDataSourceConfig(&perfetto_config, tracing::mojom::kArcTraceDataSourceName,
arc_trace_config->set_name(tracing::mojom::kArcTraceDataSourceName); chrome_config_string, privacy_filtering_enabled);
arc_trace_config->set_target_buffer(0);
auto* arc_chrome_config = arc_trace_config->mutable_chrome_config();
arc_chrome_config->set_trace_config(chrome_config_string);
arc_chrome_config->set_privacy_filtering_enabled(privacy_filtering_enabled);
#endif #endif
// Also capture global metadata. // Also capture global metadata.
auto* trace_metadata_config = AddDataSourceConfig(&perfetto_config, tracing::mojom::kMetaDataSourceName,
perfetto_config.add_data_sources()->mutable_config(); chrome_config_string, privacy_filtering_enabled);
trace_metadata_config->set_name(tracing::mojom::kMetaDataSourceName);
trace_metadata_config->set_target_buffer(0);
auto* metadata_chrome_config = trace_metadata_config->mutable_chrome_config();
metadata_chrome_config->set_trace_config(chrome_config_string);
metadata_chrome_config->set_privacy_filtering_enabled(
privacy_filtering_enabled);
return perfetto_config; return perfetto_config;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment