#include "services/tracing/public/cpp/perfetto/perfetto_config.h"
#include <cstdint>
#include <string>
#include "base/command_line.h"
#include "base/strings/strcat.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/stringprintf.h"
#include "base/trace_event/memory_dump_manager.h"
#include "base/trace_event/trace_config.h"
#include "base/trace_event/trace_event.h"
#include "base/tracing/trace_time.h"
#include "build/build_config.h"
#include "build/chromecast_buildflags.h"
#include "build/chromeos_buildflags.h"
#include "components/tracing/common/tracing_switches.h"
#include "services/tracing/public/mojom/perfetto_service.mojom.h"
#include "third_party/perfetto/protos/perfetto/config/track_event/track_event_config.gen.h"
namespace tracing {
namespace {
constexpr int kDefaultIncrementalStateClearPeriodMs = …;
perfetto::TraceConfig::DataSource* AddDataSourceConfig(
perfetto::TraceConfig* perfetto_config,
const char* name,
const std::string& chrome_config_string,
bool privacy_filtering_enabled,
bool convert_to_legacy_json,
perfetto::protos::gen::ChromeConfig::ClientPriority client_priority,
const std::string& json_agent_label_filter) { … }
void AddDataSourceConfigs(
perfetto::TraceConfig* perfetto_config,
const base::trace_event::TraceConfig::ProcessFilterConfig& process_filters,
const base::trace_event::TraceConfig& stripped_config,
const std::set<std::string>& source_names,
bool systrace_enabled,
bool privacy_filtering_enabled,
bool convert_to_legacy_json,
perfetto::protos::gen::ChromeConfig::ClientPriority client_priority,
const std::string& json_agent_label_filter) { … }
size_t GetDefaultTraceBufferSize() { … }
std::optional<base::trace_event::TraceConfig> GetChromeTraceConfig(
const perfetto::TraceConfig& perfetto_config) { … }
void AdaptBuiltinDataSourcesConfig(
perfetto::TraceConfig::BuiltinDataSource* config,
bool privacy_filtering_enabled) { … }
void AdaptTrackEventConfig(perfetto::protos::gen::TrackEventConfig* config,
bool privacy_filtering_enabled) { … }
void AdaptDataSourceConfig(
perfetto::DataSourceConfig* config,
const std::string& chrome_config_string,
bool privacy_filtering_enabled,
perfetto::protos::gen::ChromeConfig::ClientPriority client_priority) { … }
}
perfetto::TraceConfig GetDefaultPerfettoConfig(
const base::trace_event::TraceConfig& chrome_config,
bool privacy_filtering_enabled,
bool convert_to_legacy_json,
perfetto::protos::gen::ChromeConfig::ClientPriority client_priority,
const std::string& json_agent_label_filter) { … }
perfetto::TraceConfig COMPONENT_EXPORT(TRACING_CPP)
GetPerfettoConfigWithDataSources(
const base::trace_event::TraceConfig& chrome_config,
const std::set<std::string>& source_names,
bool privacy_filtering_enabled,
bool convert_to_legacy_json,
perfetto::protos::gen::ChromeConfig::ClientPriority client_priority,
const std::string& json_agent_label_filter) { … }
bool AdaptPerfettoConfigForChrome(
perfetto::TraceConfig* perfetto_config,
bool privacy_filtering_enabled,
bool enable_package_name_filter,
perfetto::protos::gen::ChromeConfig::ClientPriority client_priority) { … }
}