#include "content/browser/tracing/startup_tracing_controller.h"
#include "base/command_line.h"
#include "base/compiler_specific.h"
#include "base/files/file.h"
#include "base/files/file_util.h"
#include "base/logging.h"
#include "base/no_destructor.h"
#include "base/run_loop.h"
#include "base/synchronization/waitable_event.h"
#include "base/task/bind_post_task.h"
#include "base/task/sequenced_task_runner.h"
#include "base/task/task_traits.h"
#include "base/task/thread_pool.h"
#include "base/thread_annotations.h"
#include "base/threading/thread_restrictions.h"
#include "base/trace_event/typed_macros.h"
#include "build/build_config.h"
#include "components/tracing/common/tracing_switches.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "services/tracing/public/cpp/perfetto/perfetto_config.h"
#include "services/tracing/public/cpp/perfetto/trace_packet_tokenizer.h"
#include "services/tracing/public/cpp/trace_startup_config.h"
#include "third_party/perfetto/include/perfetto/ext/tracing/core/trace_packet.h"
#include "third_party/perfetto/include/perfetto/tracing/core/trace_config.h"
#include "third_party/perfetto/include/perfetto/tracing/tracing.h"
#if BUILDFLAG(IS_ANDROID)
#include "content/browser/android/tracing_controller_android.h"
#endif
namespace content {
class EmergencyTraceFinalisationCoordinator { … };
class StartupTracingController::BackgroundTracer { … };
StartupTracingController& StartupTracingController::GetInstance() { … }
namespace {
base::FilePath BasenameToPath(std::string basename) { … }
}
StartupTracingController::StartupTracingController() = default;
StartupTracingController::~StartupTracingController() = default;
base::FilePath StartupTracingController::GetOutputPath() { … }
void StartupTracingController::StartIfNeeded() { … }
void StartupTracingController::Stop(base::OnceClosure on_tracing_finished) { … }
void StartupTracingController::OnStoppedOnUIThread() { … }
void StartupTracingController::SetUsingTemporaryFile(
StartupTracingController::TempFilePolicy temp_file_policy) { … }
void StartupTracingController::SetDefaultBasename(
std::string basename,
ExtensionType extension_type) { … }
void StartupTracingController::SetDefaultBasenameForTest(
std::string basename,
ExtensionType extension_type) { … }
void StartupTracingController::WaitUntilStopped() { … }
void StartupTracingController::ShutdownAndWaitForStopIfNeeded() { … }
void StartupTracingController::EmergencyStop() { … }
}