Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,9 @@ PERFETTO_PB_MSG_DECL(
perfetto_protos_AndroidSurfaceFlingerWorkload_Summary_Timings_Skia);

PERFETTO_PB_ENUM(perfetto_protos_ReceiverType){
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_UNKNOWN) = 0,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_RUNTIME) = 1,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_MANIFEST) = 2,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_RECEIVER_TYPE_UNKNOWN) = 0,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_RECEIVER_TYPE_RUNTIME) = 1,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_RECEIVER_TYPE_MANIFEST) = 2,
};

PERFETTO_PB_ENUM(perfetto_protos_ProcessStartType){
Expand Down Expand Up @@ -124,95 +124,120 @@ PERFETTO_PB_ENUM(perfetto_protos_ProcessCapabilityEnum){
};

PERFETTO_PB_ENUM(perfetto_protos_AppExitReasonCode){
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_REASON_UNKNOWN) = 0,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_REASON_EXIT_SELF) = 1,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_REASON_SIGNALED) = 2,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_REASON_LOW_MEMORY) = 3,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_REASON_CRASH) = 4,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_REASON_CRASH_NATIVE) = 5,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_REASON_ANR) = 6,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_REASON_INITIALIZATION_FAILURE) = 7,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_REASON_PERMISSION_CHANGE) = 8,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_REASON_EXCESSIVE_RESOURCE_USAGE) = 9,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_REASON_USER_REQUESTED) = 10,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_REASON_USER_STOPPED) = 11,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_REASON_DEPENDENCY_DIED) = 12,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_REASON_OTHER) = 13,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_REASON_FREEZER) = 14,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_REASON_PACKAGE_STATE_CHANGE) = 15,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_REASON_PACKAGE_UPDATED) = 16,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_REASON_UNKNOWN) = 0,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_REASON_EXIT_SELF) = 1,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_REASON_SIGNALED) = 2,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_REASON_LOW_MEMORY) = 3,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_REASON_CRASH) = 4,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_REASON_CRASH_NATIVE) = 5,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_REASON_ANR) = 6,
PERFETTO_PB_ENUM_ENTRY(
perfetto_protos_APP_EXIT_REASON_INITIALIZATION_FAILURE) = 7,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_REASON_PERMISSION_CHANGE) =
8,
PERFETTO_PB_ENUM_ENTRY(
perfetto_protos_APP_EXIT_REASON_EXCESSIVE_RESOURCE_USAGE) = 9,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_REASON_USER_REQUESTED) = 10,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_REASON_USER_STOPPED) = 11,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_REASON_DEPENDENCY_DIED) =
12,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_REASON_OTHER) = 13,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_REASON_FREEZER) = 14,
PERFETTO_PB_ENUM_ENTRY(
perfetto_protos_APP_EXIT_REASON_PACKAGE_STATE_CHANGE) = 15,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_REASON_PACKAGE_UPDATED) =
16,
};

PERFETTO_PB_ENUM(perfetto_protos_AppExitSubReasonCode){
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_SUBREASON_UNKNOWN) = 0,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_SUBREASON_WAIT_FOR_DEBUGGER) = 1,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_SUBREASON_TOO_MANY_CACHED) = 2,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_SUBREASON_TOO_MANY_EMPTY) = 3,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_SUBREASON_TRIM_EMPTY) = 4,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_SUBREASON_LARGE_CACHED) = 5,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_SUBREASON_MEMORY_PRESSURE) = 6,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_SUBREASON_EXCESSIVE_CPU) = 7,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_SUBREASON_SYSTEM_UPDATE_DONE) = 8,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_SUBREASON_KILL_ALL_FG) = 9,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_SUBREASON_KILL_ALL_BG_EXCEPT) = 10,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_SUBREASON_KILL_UID) = 11,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_SUBREASON_KILL_PID) = 12,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_SUBREASON_INVALID_START) = 13,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_SUBREASON_INVALID_STATE) = 14,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_SUBREASON_IMPERCEPTIBLE) = 15,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_SUBREASON_REMOVE_LRU) = 16,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_SUBREASON_ISOLATED_NOT_NEEDED) = 17,
PERFETTO_PB_ENUM_ENTRY(
perfetto_protos_SUBREASON_CACHED_IDLE_FORCED_APP_STANDBY) = 18,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_SUBREASON_FREEZER_BINDER_IOCTL) = 19,
PERFETTO_PB_ENUM_ENTRY(
perfetto_protos_SUBREASON_FREEZER_BINDER_TRANSACTION) = 20,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_SUBREASON_FORCE_STOP) = 21,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_SUBREASON_REMOVE_TASK) = 22,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_SUBREASON_STOP_APP) = 23,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_SUBREASON_KILL_BACKGROUND) = 24,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_SUBREASON_PACKAGE_UPDATE) = 25,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_SUBREASON_UNDELIVERED_BROADCAST) =
26,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_SUBREASON_SDK_SANDBOX_DIED) = 27,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_SUBREASON_SDK_SANDBOX_NOT_NEEDED) =
28,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_SUBREASON_EXCESSIVE_BINDER_OBJECTS) =
29,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_SUBREASON_OOM_KILL) = 30,
PERFETTO_PB_ENUM_ENTRY(
perfetto_protos_SUBREASON_FREEZER_BINDER_ASYNC_FULL) = 31,
PERFETTO_PB_ENUM_ENTRY(
perfetto_protos_SUBREASON_EXCESSIVE_OUTGOING_BROADCASTS_WHILE_CACHED) =
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_SUBREASON_UNKNOWN) = 0,
PERFETTO_PB_ENUM_ENTRY(
perfetto_protos_APP_EXIT_SUBREASON_WAIT_FOR_DEBUGGER) = 1,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_SUBREASON_TOO_MANY_CACHED) =
2,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_SUBREASON_TOO_MANY_EMPTY) =
3,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_SUBREASON_TRIM_EMPTY) = 4,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_SUBREASON_LARGE_CACHED) = 5,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_SUBREASON_MEMORY_PRESSURE) =
6,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_SUBREASON_EXCESSIVE_CPU) =
7,
PERFETTO_PB_ENUM_ENTRY(
perfetto_protos_APP_EXIT_SUBREASON_SYSTEM_UPDATE_DONE) = 8,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_SUBREASON_KILL_ALL_FG) = 9,
PERFETTO_PB_ENUM_ENTRY(
perfetto_protos_APP_EXIT_SUBREASON_KILL_ALL_BG_EXCEPT) = 10,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_SUBREASON_KILL_UID) = 11,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_SUBREASON_KILL_PID) = 12,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_SUBREASON_INVALID_START) =
13,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_SUBREASON_INVALID_STATE) =
14,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_SUBREASON_IMPERCEPTIBLE) =
15,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_SUBREASON_REMOVE_LRU) = 16,
PERFETTO_PB_ENUM_ENTRY(
perfetto_protos_APP_EXIT_SUBREASON_ISOLATED_NOT_NEEDED) = 17,
PERFETTO_PB_ENUM_ENTRY(
perfetto_protos_APP_EXIT_SUBREASON_CACHED_IDLE_FORCED_APP_STANDBY) = 18,
PERFETTO_PB_ENUM_ENTRY(
perfetto_protos_APP_EXIT_SUBREASON_FREEZER_BINDER_IOCTL) = 19,
PERFETTO_PB_ENUM_ENTRY(
perfetto_protos_APP_EXIT_SUBREASON_FREEZER_BINDER_TRANSACTION) = 20,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_SUBREASON_FORCE_STOP) = 21,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_SUBREASON_REMOVE_TASK) = 22,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_SUBREASON_STOP_APP) = 23,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_SUBREASON_KILL_BACKGROUND) =
24,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_SUBREASON_PACKAGE_UPDATE) =
25,
PERFETTO_PB_ENUM_ENTRY(
perfetto_protos_APP_EXIT_SUBREASON_UNDELIVERED_BROADCAST) = 26,
PERFETTO_PB_ENUM_ENTRY(
perfetto_protos_APP_EXIT_SUBREASON_SDK_SANDBOX_DIED) = 27,
PERFETTO_PB_ENUM_ENTRY(
perfetto_protos_APP_EXIT_SUBREASON_SDK_SANDBOX_NOT_NEEDED) = 28,
PERFETTO_PB_ENUM_ENTRY(
perfetto_protos_APP_EXIT_SUBREASON_EXCESSIVE_BINDER_OBJECTS) = 29,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_APP_EXIT_SUBREASON_OOM_KILL) = 30,
PERFETTO_PB_ENUM_ENTRY(
perfetto_protos_APP_EXIT_SUBREASON_FREEZER_BINDER_ASYNC_FULL) = 31,
PERFETTO_PB_ENUM_ENTRY(
perfetto_protos_APP_EXIT_SUBREASON_EXCESSIVE_OUTGOING_BROADCASTS_WHILE_CACHED) =
32,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_SUBREASON_ANR_TYPE_APP_TRIGGERED) =
33,
PERFETTO_PB_ENUM_ENTRY(
perfetto_protos_SUBREASON_ANR_TYPE_BIND_APPLICATION) = 34,
perfetto_protos_APP_EXIT_SUBREASON_ANR_TYPE_APP_TRIGGERED) = 33,
PERFETTO_PB_ENUM_ENTRY(
perfetto_protos_APP_EXIT_SUBREASON_ANR_TYPE_BIND_APPLICATION) = 34,
PERFETTO_PB_ENUM_ENTRY(
perfetto_protos_SUBREASON_ANR_TYPE_BROADCAST_OF_INTENT) = 35,
perfetto_protos_APP_EXIT_SUBREASON_ANR_TYPE_BROADCAST_OF_INTENT) = 35,
PERFETTO_PB_ENUM_ENTRY(
perfetto_protos_SUBREASON_ANR_TYPE_CONTENT_PROVIDER_NOT_RESPONDING) =
perfetto_protos_APP_EXIT_SUBREASON_ANR_TYPE_CONTENT_PROVIDER_NOT_RESPONDING) =
36,
PERFETTO_PB_ENUM_ENTRY(
perfetto_protos_SUBREASON_ANR_TYPE_EXECUTING_SERVICE) = 37,
perfetto_protos_APP_EXIT_SUBREASON_ANR_TYPE_EXECUTING_SERVICE) = 37,
PERFETTO_PB_ENUM_ENTRY(
perfetto_protos_SUBREASON_ANR_TYPE_FOREGROUND_SHORT_SERVICE_TIMEOUT) =
perfetto_protos_APP_EXIT_SUBREASON_ANR_TYPE_FOREGROUND_SHORT_SERVICE_TIMEOUT) =
39,
PERFETTO_PB_ENUM_ENTRY(
perfetto_protos_SUBREASON_ANR_TYPE_INPUT_DISPATCHING_TIMEOUT) = 41,
perfetto_protos_APP_EXIT_SUBREASON_ANR_TYPE_INPUT_DISPATCHING_TIMEOUT) =
41,
PERFETTO_PB_ENUM_ENTRY(
perfetto_protos_SUBREASON_ANR_TYPE_INPUT_DISPATCHING_TIMEOUT_NO_FOCUSED_WINDOW) =
perfetto_protos_APP_EXIT_SUBREASON_ANR_TYPE_INPUT_DISPATCHING_TIMEOUT_NO_FOCUSED_WINDOW) =
42,
PERFETTO_PB_ENUM_ENTRY(
perfetto_protos_SUBREASON_ANR_TYPE_JOB_SERVICE_START) = 45,
perfetto_protos_APP_EXIT_SUBREASON_ANR_TYPE_JOB_SERVICE_START) = 45,
PERFETTO_PB_ENUM_ENTRY(
perfetto_protos_SUBREASON_ANR_TYPE_START_FOREGROUND_SERVICE) = 47,
perfetto_protos_APP_EXIT_SUBREASON_ANR_TYPE_START_FOREGROUND_SERVICE) =
47,
PERFETTO_PB_ENUM_ENTRY(
perfetto_protos_SUBREASON_EXCESSIVE_ENQUEUED_BROADCASTS_COUNT) = 49,
perfetto_protos_APP_EXIT_SUBREASON_EXCESSIVE_ENQUEUED_BROADCASTS_COUNT) =
49,
};

PERFETTO_PB_ENUM(perfetto_protos_Importance){
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_IMPORTANCE_UNKNOWN) = 0,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_IMPORTANCE_FOREGROUND) = 100,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_IMPORTANCE_FOREGROUND_SERVICE) = 125,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_IMPORTANCE_TOP_SLEEPING_PRE_28) =
Expand Down Expand Up @@ -316,8 +341,6 @@ PERFETTO_PB_ENUM(perfetto_protos_TriggerType){
};

PERFETTO_PB_ENUM(perfetto_protos_OomChangeReasonEnum){
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_OOM_ADJ_REASON_UNKNOWN_TO_PROTO) =
-1,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_OOM_ADJ_REASON_NONE) = 0,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_OOM_ADJ_REASON_ACTIVITY) = 1,
PERFETTO_PB_ENUM_ENTRY(perfetto_protos_OOM_ADJ_REASON_FINISH_RECEIVER) = 2,
Expand Down Expand Up @@ -897,6 +920,11 @@ PERFETTO_PB_FIELD(perfetto_protos_AndroidJobSchedulerJob,
int64_t,
job_state_flags,
20);
PERFETTO_PB_FIELD(perfetto_protos_AndroidJobSchedulerJob,
VARINT,
uint64_t,
job_name_iid,
21);

PERFETTO_PB_MSG(perfetto_protos_AndroidMessageQueue);
PERFETTO_PB_FIELD(perfetto_protos_AndroidMessageQueue,
Expand Down
2 changes: 2 additions & 0 deletions protos/perfetto/trace/android/android_track_event.proto
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,8 @@ message AndroidJobSchedulerJob {
optional int32 public_stop_reason = 19;
// Bitfield of boolean states of the job.
optional int64 job_state_flags = 20;
// Interned Job name.
optional uint64 job_name_iid = 21;
}

// Information about an android.graphics.Bitmap.
Expand Down
20 changes: 20 additions & 0 deletions src/trace_processor/importers/proto/track_event_parser.cc
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,20 @@ std::optional<base::Status> MaybeParseSourceLocation(
return base::OkStatus();
}

std::optional<base::Status> MaybeParseAndroidJobName(
const protozero::Field& field,
util::ProtoToArgsParser::Delegate& delegate) {
auto* decoder = delegate.GetInternedMessage(
protos::pbzero::InternedData::kAndroidJobName, field.as_uint64());
if (!decoder) {
return std::nullopt;
}

delegate.AddString(util::ProtoToArgsParser::Key("job_scheduler_job.job_name"),
decoder->name());
return base::OkStatus();
}

} // namespace

TrackEventParser::TrackEventParser(TraceProcessorContext* context,
Expand Down Expand Up @@ -253,6 +267,12 @@ TrackEventParser::TrackEventParser(TraceProcessorContext* context,
return MaybeParseSourceLocation("chrome_memory_pressure_notification",
field, delegate);
});
args_parser_.AddParsingOverrideForField(
"job_scheduler_job.job_name_iid",
[](const protozero::Field& field,
util::ProtoToArgsParser::Delegate& delegate) {
return MaybeParseAndroidJobName(field, delegate);
});

// Parse DebugAnnotations.
args_parser_.AddParsingOverrideForType(
Expand Down
Loading