0

[tracing] Move record_host_app_package_name_ to TrackNameRecorder

It's only used in TrackNameRecorder, this is a small incremental step
in breaking down TraceLog.

Change-Id: I413f666b9b9ea7bba5d505321c3e4e3e882d11f7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6402133
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Reviewed-by: Nate Fischer <ntfschr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1438831}
This commit is contained in:
Etienne Pierre-doray
2025-03-27 09:55:57 -07:00
committed by Chromium LUCI CQ
parent ee7ced32e4
commit 865e0e310e
7 changed files with 15 additions and 18 deletions
android_webview/lib
base/trace_event
content/browser/tracing
services/tracing/public/cpp/perfetto

@ -10,6 +10,7 @@ include_rules = [
"+components/viz/common",
"+content/public",
"+device/base/features.h",
"+services/tracing/public/cpp/perfetto",
"+gin/public",
"+gin/v8_initializer.h",
"+mojo/core/embedder/embedder.h",

@ -65,6 +65,7 @@
#include "gpu/config/gpu_finch_features.h"
#include "media/media_buildflags.h"
#include "net/base/features.h"
#include "services/tracing/public/cpp/perfetto/track_name_recorder.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/common/switches.h"
#include "tools/v8_context_snapshot/buildflags.h"
@ -219,7 +220,7 @@ std::optional<int> AwMainDelegate::BasicStartupComplete() {
base::BindRepeating(&IsTraceEventArgsAllowlisted));
base::trace_event::TraceLog::GetInstance()->SetMetadataFilterPredicate(
base::BindRepeating(&IsTraceMetadataAllowlisted));
base::trace_event::TraceLog::GetInstance()->SetRecordHostAppPackageName(true);
tracing::TrackNameRecorder::GetInstance()->SetRecordHostAppPackageName(true);
// The TLS slot used by the memlog allocator shim needs to be initialized
// early to ensure that it gets assigned a low slot number. If it gets

@ -569,14 +569,6 @@ MetadataFilterPredicate TraceLog::GetMetadataFilterPredicate() const {
return metadata_filter_predicate_;
}
void TraceLog::SetRecordHostAppPackageName(bool record_host_app_package_name) {
record_host_app_package_name_ = record_host_app_package_name;
}
bool TraceLog::ShouldRecordHostAppPackageName() const {
return record_host_app_package_name_;
}
TraceConfig TraceLog::GetCurrentTraceConfig() const {
const auto chrome_config =
GetCurrentTrackEventDataSourceConfig().chrome_config();

@ -144,9 +144,6 @@ class BASE_EXPORT TraceLog : public perfetto::TrackEventSessionObserver {
const MetadataFilterPredicate& metadata_filter_predicate);
MetadataFilterPredicate GetMetadataFilterPredicate() const;
void SetRecordHostAppPackageName(bool record_host_app_package_name);
bool ShouldRecordHostAppPackageName() const;
// Flush all collected events to the given output callback. The callback will
// be called one or more times either synchronously or asynchronously from
// the current thread with IPC-bite-size chunks. The string format is
@ -242,7 +239,6 @@ class BASE_EXPORT TraceLog : public perfetto::TrackEventSessionObserver {
// Set when asynchronous Flush is in progress.
ArgumentFilterPredicate argument_filter_predicate_;
MetadataFilterPredicate metadata_filter_predicate_;
bool record_host_app_package_name_{false};
std::unique_ptr<perfetto::TracingSession> tracing_session_;
perfetto::TraceConfig perfetto_config_;

@ -21,6 +21,7 @@
#include "content/public/test/content_browser_test_utils.h"
#include "services/resource_coordinator/public/cpp/memory_instrumentation/tracing_observer_proto.h"
#include "services/tracing/public/cpp/perfetto/metadata_data_source.h"
#include "services/tracing/public/cpp/perfetto/track_name_recorder.h"
#include "services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.h"
#include "services/tracing/public/mojom/perfetto_service.mojom.h"
#include "testing/gmock/include/gmock/gmock.h"
@ -476,7 +477,7 @@ IN_PROC_BROWSER_TEST_F(TracingEndToEndBrowserTest,
#if BUILDFLAG(IS_ANDROID)
IN_PROC_BROWSER_TEST_F(TracingEndToEndBrowserTest,
PackageNameRecordedTraceLogSet) {
base::trace_event::TraceLog::GetInstance()->SetRecordHostAppPackageName(true);
tracing::TrackNameRecorder::GetInstance()->SetRecordHostAppPackageName(true);
base::test::TestTraceProcessor ttp;
ttp.StartTrace(base::test::DefaultTraceConfig("foo", false),
perfetto::kCustomBackend);
@ -508,8 +509,7 @@ IN_PROC_BROWSER_TEST_F(TracingEndToEndBrowserTest,
IN_PROC_BROWSER_TEST_F(TracingEndToEndBrowserTest,
PackageNameNotRecordedTraceLogNotSet) {
base::trace_event::TraceLog::GetInstance()->SetRecordHostAppPackageName(
false);
tracing::TrackNameRecorder::GetInstance()->SetRecordHostAppPackageName(false);
base::test::TestTraceProcessor ttp;
ttp.StartTrace(base::test::DefaultTraceConfig("foo", false),
perfetto::kCustomBackend);

@ -109,8 +109,7 @@ void TrackNameRecorder::SetProcessTrackDescriptor(
#if BUILDFLAG(IS_ANDROID)
// Host app package name is only recorded if the corresponding TraceLog
// setting is set to true.
if (base::trace_event::TraceLog::GetInstance()
->ShouldRecordHostAppPackageName()) {
if (record_host_app_package_name_) {
// Host app package name is used to group information from different
// processes that "belong" to the same WebView app.
if (process_type == ChromeProcessDescriptor::PROCESS_RENDERER ||
@ -200,4 +199,9 @@ void TrackNameRecorder::SetProcessTrackDescriptor() {
SetProcessTrackDescriptor(process_name, process_type);
}
void TrackNameRecorder::SetRecordHostAppPackageName(
bool record_host_app_package_name) {
record_host_app_package_name_ = record_host_app_package_name;
}
} // namespace tracing

@ -46,6 +46,8 @@ class COMPONENT_EXPORT(TRACING_CPP) TrackNameRecorder
void UpdateProcessLabel(int label_id, const std::string& current_label);
void RemoveProcessLabel(int label_id);
void SetRecordHostAppPackageName(bool record_host_app_package_name);
private:
friend class base::NoDestructor<TrackNameRecorder>;
using ChromeProcessDescriptor =
@ -66,6 +68,7 @@ class COMPONENT_EXPORT(TRACING_CPP) TrackNameRecorder
}
int64_t process_start_timestamp_;
bool record_host_app_package_name_{false};
// This lock protects `process_labels_` member accesses from arbitrary
// threads.