#include "content/browser/tracing/background_tracing_active_scenario.h"
#include <set>
#include <utility>
#include "base/functional/callback_helpers.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/ref_counted_memory.h"
#include "base/metrics/histogram_macros.h"
#include "base/rand_util.h"
#include "base/strings/string_tokenizer.h"
#include "base/timer/timer.h"
#include "build/build_config.h"
#include "components/variations/hashing.h"
#include "content/browser/tracing/background_tracing_config_impl.h"
#include "content/browser/tracing/background_tracing_manager_impl.h"
#include "content/browser/tracing/background_tracing_rule.h"
#include "content/browser/tracing/tracing_controller_impl.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/tracing_delegate.h"
#include "services/tracing/public/cpp/perfetto/perfetto_config.h"
#include "services/tracing/public/cpp/perfetto/perfetto_traced_process.h"
#include "services/tracing/public/cpp/perfetto/trace_event_data_source.h"
#include "services/tracing/public/cpp/perfetto/trace_packet_tokenizer.h"
#include "services/tracing/public/cpp/trace_startup.h"
#include "services/tracing/public/cpp/tracing_features.h"
#include "third_party/perfetto/include/perfetto/ext/tracing/core/trace_packet.h"
#include "third_party/perfetto/include/perfetto/tracing/tracing.h"
TraceConfig;
Metrics;
namespace content {
class BackgroundTracingActiveScenario::TracingTimer { … };
class BackgroundTracingActiveScenario::TracingSession { … };
BackgroundTracingActiveScenario::BackgroundTracingActiveScenario(
std::unique_ptr<BackgroundTracingConfigImpl> config,
TracingDelegate* delegate,
base::OnceClosure on_aborted_callback)
: … { … }
BackgroundTracingActiveScenario::~BackgroundTracingActiveScenario() { … }
const BackgroundTracingConfigImpl* BackgroundTracingActiveScenario::GetConfig()
const { … }
void BackgroundTracingActiveScenario::SetState(State new_state) { … }
void BackgroundTracingActiveScenario::FireTimerForTesting() { … }
void BackgroundTracingActiveScenario::SetRuleTriggeredCallbackForTesting(
const base::RepeatingClosure& callback) { … }
base::WeakPtr<BackgroundTracingActiveScenario>
BackgroundTracingActiveScenario::GetWeakPtr() { … }
void BackgroundTracingActiveScenario::StartTracingIfConfigNeedsIt() { … }
bool BackgroundTracingActiveScenario::StartTracing() { … }
void BackgroundTracingActiveScenario::BeginFinalizing() { … }
void BackgroundTracingActiveScenario::OnProtoDataComplete(
std::string&& serialized_trace) { … }
void BackgroundTracingActiveScenario::AbortScenario() { … }
bool BackgroundTracingActiveScenario::OnRuleTriggered(
const BackgroundTracingRule* triggered_rule) { … }
void BackgroundTracingActiveScenario::GenerateMetadataProto(
perfetto::protos::pbzero::ChromeMetadataPacket* metadata) { … }
}