aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2024-05-02 01:07:29 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2024-05-02 01:07:29 +0000
commit73898b17256af788050ba599577bfce1848e36b3 (patch)
tree132a807fbac369e48fa3a880a8c4ca40cea9cc76
parent6ba479ab62410cf99abecb5729301730dc04b613 (diff)
parent583bc03f543ae929b77725a90f80005de57037ee (diff)
downloadperfetto-sdk-release.tar.gz
Snap for 11790536 from 583bc03f543ae929b77725a90f80005de57037ee to sdk-releasesdk-release
Change-Id: I6a92b2f7cc30d75487c76910fe44b8ffe8451da2
-rw-r--r--Android.bp1144
-rw-r--r--Android.bp.extras4
-rw-r--r--BUILD139
-rw-r--r--protos/perfetto/trace/android/BUILD.gn61
-rw-r--r--protos/perfetto/trace/android/graphics/pixelformat.proto34
-rw-r--r--protos/perfetto/trace/android/graphics/point.proto24
-rw-r--r--protos/perfetto/trace/android/graphics/rect.proto26
-rw-r--r--protos/perfetto/trace/android/inputmethodeditor.proto75
-rw-r--r--protos/perfetto/trace/android/inputmethodservice/inputmethodservice.proto63
-rw-r--r--protos/perfetto/trace/android/inputmethodservice/softinputwindow.proto33
-rw-r--r--protos/perfetto/trace/android/server/inputmethod/inputmethodmanagerservice.proto49
-rw-r--r--protos/perfetto/trace/android/surfaceflinger_common.proto9
-rw-r--r--protos/perfetto/trace/android/surfaceflinger_layers.proto1
-rw-r--r--protos/perfetto/trace/android/surfaceflinger_transactions.proto1
-rw-r--r--protos/perfetto/trace/android/typedef.proto31
-rw-r--r--protos/perfetto/trace/android/view/display.proto35
-rw-r--r--protos/perfetto/trace/android/view/displaycutout.proto33
-rw-r--r--protos/perfetto/trace/android/view/imefocuscontroller.proto26
-rw-r--r--protos/perfetto/trace/android/view/imeinsetssourceconsumer.proto32
-rw-r--r--protos/perfetto/trace/android/view/inputmethod/editorinfo.proto29
-rw-r--r--protos/perfetto/trace/android/view/inputmethod/inputconnection.proto97
-rw-r--r--protos/perfetto/trace/android/view/inputmethod/inputmethodmanager.proto30
-rw-r--r--protos/perfetto/trace/android/view/insetsanimationcontrolimpl.proto31
-rw-r--r--protos/perfetto/trace/android/view/insetscontroller.proto28
-rw-r--r--protos/perfetto/trace/android/view/insetssource.proto30
-rw-r--r--protos/perfetto/trace/android/view/insetssourceconsumer.proto34
-rw-r--r--protos/perfetto/trace/android/view/insetssourcecontrol.proto30
-rw-r--r--protos/perfetto/trace/android/view/insetsstate.proto30
-rw-r--r--protos/perfetto/trace/android/view/surfacecontrol.proto26
-rw-r--r--protos/perfetto/trace/android/view/viewrootimpl.proto44
-rw-r--r--protos/perfetto/trace/android/view/windowlayoutparams.proto89
-rw-r--r--protos/perfetto/trace/android/winscope.proto2
-rw-r--r--protos/perfetto/trace/android/winscope_extensions.proto23
-rw-r--r--protos/perfetto/trace/android/winscope_extensions_impl.proto31
-rw-r--r--protos/perfetto/trace/perfetto_trace.proto30
-rw-r--r--protos/perfetto/trace/trace_packet.proto5
-rw-r--r--protos/third_party/chromium/chrome_track_event.proto1
-rw-r--r--src/trace_processor/importers/proto/winscope/BUILD.gn2
-rw-r--r--src/trace_processor/perfetto_sql/intrinsics/functions/layout_functions.cc7
-rw-r--r--src/trace_processor/perfetto_sql/intrinsics/operators/slice_mipmap_operator.cc12
-rw-r--r--src/trace_processor/perfetto_sql/stdlib/chrome/scroll_jank/scroll_jank_v3.sql179
-rw-r--r--src/trace_redaction/BUILD.gn4
-rw-r--r--src/trace_redaction/collect_system_info.cc81
-rw-r--r--src/trace_redaction/collect_system_info.h46
-rw-r--r--src/trace_redaction/collect_system_info_unittest.cc97
-rw-r--r--src/trace_redaction/main.cc12
-rw-r--r--src/trace_redaction/redact_ftrace_event.cc18
-rw-r--r--src/trace_redaction/redact_ftrace_event.h20
-rw-r--r--src/trace_redaction/redact_process_free.cc29
-rw-r--r--src/trace_redaction/redact_process_free.h3
-rw-r--r--src/trace_redaction/redact_sched_switch.cc4
-rw-r--r--src/trace_redaction/redact_sched_switch.h3
-rw-r--r--src/trace_redaction/redact_sched_switch_integrationtest.cc3
-rw-r--r--src/trace_redaction/redact_task_newtask.cc9
-rw-r--r--src/trace_redaction/redact_task_newtask.h3
-rw-r--r--src/trace_redaction/trace_redaction_framework.h57
-rw-r--r--test/data/api32_startup_warm.perfetto-trace.sha2561
-rw-r--r--test/data/api34_startup_cold.perfetto-trace.sha2561
-rw-r--r--test/data/ui-screenshots/ui-android_trace_30s_expand_camera.png.sha2562
-rw-r--r--test/data/ui-screenshots/ui-android_trace_30s_load.png.sha2562
-rw-r--r--test/data/ui-screenshots/ui-chrome_missing_track_names_load.png.sha2562
-rw-r--r--test/data/ui-screenshots/ui-chrome_rendering_desktop_expand_browser_proc.png.sha2562
-rw-r--r--test/data/ui-screenshots/ui-chrome_rendering_desktop_load.png.sha2562
-rw-r--r--test/data/ui-screenshots/ui-chrome_rendering_desktop_select_slice_with_flows.png.sha2562
-rw-r--r--test/data/ui-screenshots/ui-modal_dialog_dismiss_1.png.sha2562
-rw-r--r--test/data/ui-screenshots/ui-modal_dialog_dismiss_2.png.sha2562
-rw-r--r--test/data/ui-screenshots/ui-modal_dialog_show_dialog_1.png.sha2562
-rw-r--r--test/data/ui-screenshots/ui-modal_dialog_show_dialog_2.png.sha2562
-rw-r--r--test/data/ui-screenshots/ui-modal_dialog_switch_page_no_dialog.png.sha2562
-rw-r--r--test/data/ui-screenshots/ui-routing_navigate_navigate_back_and_forward.png.sha2562
-rw-r--r--test/data/ui-screenshots/ui-routing_navigate_open_trace_from_url.png.sha2562
-rw-r--r--test/data/ui-screenshots/ui-routing_open_invalid_trace_from_blank_page.png.sha2562
-rw-r--r--test/data/ui-screenshots/ui-routing_open_trace_and_go_back_to_landing_page.png.sha2562
-rw-r--r--test/data/ui-screenshots/ui-routing_open_two_traces_then_go_back_access_subpage_then_go_back.png.sha2562
-rw-r--r--test/data/ui-screenshots/ui-routing_open_two_traces_then_go_back_open_first_trace_from_url.png.sha2562
-rw-r--r--test/data/ui-screenshots/ui-routing_open_two_traces_then_go_back_open_second_trace_from_url.png.sha2562
-rw-r--r--test/data/ui-screenshots/ui-routing_start_from_no_trace_go_back_to_first_trace.png.sha2562
-rw-r--r--test/data/ui-screenshots/ui-routing_start_from_no_trace_go_to_page_with_no_trace.png.sha2562
-rw-r--r--test/data/ui-screenshots/ui-routing_start_from_no_trace_open_invalid_trace.png.sha2562
-rw-r--r--test/data/ui-screenshots/ui-routing_start_from_no_trace_open_second_trace.png.sha2562
-rw-r--r--test/data/ui-screenshots/ui-routing_start_from_no_trace_open_trace_.png.sha2562
-rw-r--r--test/data/ui-screenshots/ui-routing_start_from_no_trace_refresh.png.sha2562
-rwxr-xr-xtools/gen_android_bp9
-rwxr-xr-xtools/gen_tp_table_headers.py8
-rw-r--r--ui/package.json2
-rw-r--r--ui/pnpm-lock.yaml287
-rw-r--r--ui/src/assets/widgets/tree.scss96
-rw-r--r--ui/src/base/logging.ts37
-rw-r--r--ui/src/frontend/error_dialog.ts2
-rw-r--r--ui/src/frontend/widgets_page.ts12
-rw-r--r--ui/src/widgets/tree.ts37
91 files changed, 1023 insertions, 2516 deletions
diff --git a/Android.bp b/Android.bp
index a89a93967..f8e8b03ed 100644
--- a/Android.bp
+++ b/Android.bp
@@ -63,8 +63,6 @@ cc_binary {
":perfetto_protos_perfetto_ipc_cpp_gen",
":perfetto_protos_perfetto_ipc_ipc_gen",
":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_common_zero_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen",
":perfetto_protos_perfetto_trace_android_zero_gen",
":perfetto_protos_perfetto_trace_chrome_zero_gen",
":perfetto_protos_perfetto_trace_etw_zero_gen",
@@ -152,8 +150,6 @@ cc_binary {
"perfetto_protos_perfetto_ipc_cpp_gen_headers",
"perfetto_protos_perfetto_ipc_ipc_gen_headers",
"perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_common_zero_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen_headers",
"perfetto_protos_perfetto_trace_android_zero_gen_headers",
"perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
"perfetto_protos_perfetto_trace_etw_zero_gen_headers",
@@ -335,8 +331,6 @@ cc_library_shared {
":perfetto_protos_perfetto_ipc_cpp_gen",
":perfetto_protos_perfetto_ipc_ipc_gen",
":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_common_zero_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen",
":perfetto_protos_perfetto_trace_android_zero_gen",
":perfetto_protos_perfetto_trace_chrome_zero_gen",
":perfetto_protos_perfetto_trace_etw_zero_gen",
@@ -433,8 +427,6 @@ cc_library_shared {
"perfetto_protos_perfetto_ipc_cpp_gen_headers",
"perfetto_protos_perfetto_ipc_ipc_gen_headers",
"perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_common_zero_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen_headers",
"perfetto_protos_perfetto_trace_android_zero_gen_headers",
"perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
"perfetto_protos_perfetto_trace_etw_zero_gen_headers",
@@ -545,8 +537,6 @@ cc_library_shared {
":perfetto_protos_perfetto_ipc_cpp_gen",
":perfetto_protos_perfetto_ipc_ipc_gen",
":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_common_zero_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen",
":perfetto_protos_perfetto_trace_android_zero_gen",
":perfetto_protos_perfetto_trace_chrome_zero_gen",
":perfetto_protos_perfetto_trace_etw_zero_gen",
@@ -653,8 +643,6 @@ cc_library_shared {
"perfetto_protos_perfetto_ipc_cpp_gen_headers",
"perfetto_protos_perfetto_ipc_ipc_gen_headers",
"perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_common_zero_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen_headers",
"perfetto_protos_perfetto_trace_android_zero_gen_headers",
"perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
"perfetto_protos_perfetto_trace_etw_zero_gen_headers",
@@ -793,8 +781,6 @@ cc_library_shared {
":perfetto_protos_perfetto_ipc_cpp_gen",
":perfetto_protos_perfetto_ipc_ipc_gen",
":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_common_zero_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen",
":perfetto_protos_perfetto_trace_android_zero_gen",
":perfetto_protos_perfetto_trace_chrome_zero_gen",
":perfetto_protos_perfetto_trace_etw_zero_gen",
@@ -880,8 +866,6 @@ cc_library_shared {
"perfetto_protos_perfetto_ipc_cpp_gen_headers",
"perfetto_protos_perfetto_ipc_ipc_gen_headers",
"perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_common_zero_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen_headers",
"perfetto_protos_perfetto_trace_android_zero_gen_headers",
"perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
"perfetto_protos_perfetto_trace_etw_zero_gen_headers",
@@ -968,8 +952,6 @@ cc_library_static {
":perfetto_protos_perfetto_ipc_cpp_gen",
":perfetto_protos_perfetto_ipc_ipc_gen",
":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_common_zero_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen",
":perfetto_protos_perfetto_trace_android_zero_gen",
":perfetto_protos_perfetto_trace_chrome_zero_gen",
":perfetto_protos_perfetto_trace_etw_zero_gen",
@@ -1059,8 +1041,6 @@ cc_library_static {
"perfetto_protos_perfetto_ipc_cpp_gen_headers",
"perfetto_protos_perfetto_ipc_ipc_gen_headers",
"perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_common_zero_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen_headers",
"perfetto_protos_perfetto_trace_android_zero_gen_headers",
"perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
"perfetto_protos_perfetto_trace_etw_zero_gen_headers",
@@ -1114,8 +1094,6 @@ cc_library_static {
"perfetto_protos_perfetto_ipc_cpp_gen_headers",
"perfetto_protos_perfetto_ipc_ipc_gen_headers",
"perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_common_zero_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen_headers",
"perfetto_protos_perfetto_trace_android_zero_gen_headers",
"perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
"perfetto_protos_perfetto_trace_etw_zero_gen_headers",
@@ -1197,8 +1175,6 @@ cc_binary {
":perfetto_protos_perfetto_ipc_cpp_gen",
":perfetto_protos_perfetto_ipc_ipc_gen",
":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_common_zero_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen",
":perfetto_protos_perfetto_trace_android_zero_gen",
":perfetto_protos_perfetto_trace_chrome_zero_gen",
":perfetto_protos_perfetto_trace_etw_zero_gen",
@@ -1276,8 +1252,6 @@ cc_binary {
"perfetto_protos_perfetto_ipc_cpp_gen_headers",
"perfetto_protos_perfetto_ipc_ipc_gen_headers",
"perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_common_zero_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen_headers",
"perfetto_protos_perfetto_trace_android_zero_gen_headers",
"perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
"perfetto_protos_perfetto_trace_etw_zero_gen_headers",
@@ -1434,10 +1408,6 @@ cc_library_static {
":perfetto_protos_perfetto_ipc_ipc_gen",
":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
":perfetto_protos_perfetto_trace_android_cpp_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_common_cpp_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_common_zero_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_cpp_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen",
":perfetto_protos_perfetto_trace_android_zero_gen",
":perfetto_protos_perfetto_trace_chrome_cpp_gen",
":perfetto_protos_perfetto_trace_chrome_zero_gen",
@@ -1570,10 +1540,6 @@ cc_library_static {
"perfetto_protos_perfetto_ipc_ipc_gen_headers",
"perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
"perfetto_protos_perfetto_trace_android_cpp_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_common_cpp_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_common_zero_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_regular_cpp_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen_headers",
"perfetto_protos_perfetto_trace_android_zero_gen_headers",
"perfetto_protos_perfetto_trace_chrome_cpp_gen_headers",
"perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
@@ -1645,10 +1611,6 @@ cc_library_static {
"perfetto_protos_perfetto_ipc_ipc_gen_headers",
"perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
"perfetto_protos_perfetto_trace_android_cpp_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_common_cpp_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_common_zero_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_regular_cpp_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen_headers",
"perfetto_protos_perfetto_trace_android_zero_gen_headers",
"perfetto_protos_perfetto_trace_chrome_cpp_gen_headers",
"perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
@@ -1745,10 +1707,6 @@ cc_library_static {
":perfetto_protos_perfetto_ipc_ipc_gen",
":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
":perfetto_protos_perfetto_trace_android_cpp_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_common_cpp_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_common_zero_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_cpp_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen",
":perfetto_protos_perfetto_trace_android_zero_gen",
":perfetto_protos_perfetto_trace_chrome_cpp_gen",
":perfetto_protos_perfetto_trace_chrome_zero_gen",
@@ -1874,10 +1832,6 @@ cc_library_static {
"perfetto_protos_perfetto_ipc_ipc_gen_headers",
"perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
"perfetto_protos_perfetto_trace_android_cpp_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_common_cpp_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_common_zero_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_regular_cpp_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen_headers",
"perfetto_protos_perfetto_trace_android_zero_gen_headers",
"perfetto_protos_perfetto_trace_chrome_cpp_gen_headers",
"perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
@@ -1949,10 +1903,6 @@ cc_library_static {
"perfetto_protos_perfetto_ipc_ipc_gen_headers",
"perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
"perfetto_protos_perfetto_trace_android_cpp_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_common_cpp_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_common_zero_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_regular_cpp_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen_headers",
"perfetto_protos_perfetto_trace_android_zero_gen_headers",
"perfetto_protos_perfetto_trace_chrome_cpp_gen_headers",
"perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
@@ -2288,13 +2238,6 @@ cc_test {
":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
":perfetto_protos_perfetto_trace_android_cpp_gen",
":perfetto_protos_perfetto_trace_android_lite_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_common_cpp_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_common_lite_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_common_zero_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_extensions_zero_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_cpp_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_lite_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen",
":perfetto_protos_perfetto_trace_android_zero_gen",
":perfetto_protos_perfetto_trace_chrome_cpp_gen",
":perfetto_protos_perfetto_trace_chrome_lite_gen",
@@ -2572,13 +2515,6 @@ cc_test {
"perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
"perfetto_protos_perfetto_trace_android_cpp_gen_headers",
"perfetto_protos_perfetto_trace_android_lite_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_common_cpp_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_common_lite_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_common_zero_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_extensions_zero_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_regular_cpp_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_regular_lite_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen_headers",
"perfetto_protos_perfetto_trace_android_zero_gen_headers",
"perfetto_protos_perfetto_trace_chrome_cpp_gen_headers",
"perfetto_protos_perfetto_trace_chrome_lite_gen_headers",
@@ -5475,6 +5411,11 @@ filegroup {
"protos/perfetto/trace/android/network_trace.proto",
"protos/perfetto/trace/android/packages_list.proto",
"protos/perfetto/trace/android/pixel_modem_events.proto",
+ "protos/perfetto/trace/android/protolog.proto",
+ "protos/perfetto/trace/android/shell_transition.proto",
+ "protos/perfetto/trace/android/surfaceflinger_common.proto",
+ "protos/perfetto/trace/android/surfaceflinger_layers.proto",
+ "protos/perfetto/trace/android/surfaceflinger_transactions.proto",
],
}
@@ -5484,8 +5425,6 @@ genrule {
srcs: [
":perfetto_protos_perfetto_common_cpp",
":perfetto_protos_perfetto_trace_android_cpp",
- ":perfetto_protos_perfetto_trace_android_winscope_common_cpp",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_cpp",
],
tools: [
"aprotoc",
@@ -5505,6 +5444,11 @@ genrule {
"external/perfetto/protos/perfetto/trace/android/network_trace.gen.cc",
"external/perfetto/protos/perfetto/trace/android/packages_list.gen.cc",
"external/perfetto/protos/perfetto/trace/android/pixel_modem_events.gen.cc",
+ "external/perfetto/protos/perfetto/trace/android/protolog.gen.cc",
+ "external/perfetto/protos/perfetto/trace/android/shell_transition.gen.cc",
+ "external/perfetto/protos/perfetto/trace/android/surfaceflinger_common.gen.cc",
+ "external/perfetto/protos/perfetto/trace/android/surfaceflinger_layers.gen.cc",
+ "external/perfetto/protos/perfetto/trace/android/surfaceflinger_transactions.gen.cc",
],
}
@@ -5514,8 +5458,6 @@ genrule {
srcs: [
":perfetto_protos_perfetto_common_cpp",
":perfetto_protos_perfetto_trace_android_cpp",
- ":perfetto_protos_perfetto_trace_android_winscope_common_cpp",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_cpp",
],
tools: [
"aprotoc",
@@ -5535,6 +5477,11 @@ genrule {
"external/perfetto/protos/perfetto/trace/android/network_trace.gen.h",
"external/perfetto/protos/perfetto/trace/android/packages_list.gen.h",
"external/perfetto/protos/perfetto/trace/android/pixel_modem_events.gen.h",
+ "external/perfetto/protos/perfetto/trace/android/protolog.gen.h",
+ "external/perfetto/protos/perfetto/trace/android/shell_transition.gen.h",
+ "external/perfetto/protos/perfetto/trace/android/surfaceflinger_common.gen.h",
+ "external/perfetto/protos/perfetto/trace/android/surfaceflinger_layers.gen.h",
+ "external/perfetto/protos/perfetto/trace/android/surfaceflinger_transactions.gen.h",
],
export_include_dirs: [
".",
@@ -5558,6 +5505,11 @@ filegroup {
"protos/perfetto/trace/android/network_trace.proto",
"protos/perfetto/trace/android/packages_list.proto",
"protos/perfetto/trace/android/pixel_modem_events.proto",
+ "protos/perfetto/trace/android/protolog.proto",
+ "protos/perfetto/trace/android/shell_transition.proto",
+ "protos/perfetto/trace/android/surfaceflinger_common.proto",
+ "protos/perfetto/trace/android/surfaceflinger_layers.proto",
+ "protos/perfetto/trace/android/surfaceflinger_transactions.proto",
],
}
@@ -5567,8 +5519,6 @@ genrule {
srcs: [
":perfetto_protos_perfetto_common_lite",
":perfetto_protos_perfetto_trace_android_lite",
- ":perfetto_protos_perfetto_trace_android_winscope_common_lite",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_lite",
],
tools: [
"aprotoc",
@@ -5587,6 +5537,11 @@ genrule {
"external/perfetto/protos/perfetto/trace/android/network_trace.pb.cc",
"external/perfetto/protos/perfetto/trace/android/packages_list.pb.cc",
"external/perfetto/protos/perfetto/trace/android/pixel_modem_events.pb.cc",
+ "external/perfetto/protos/perfetto/trace/android/protolog.pb.cc",
+ "external/perfetto/protos/perfetto/trace/android/shell_transition.pb.cc",
+ "external/perfetto/protos/perfetto/trace/android/surfaceflinger_common.pb.cc",
+ "external/perfetto/protos/perfetto/trace/android/surfaceflinger_layers.pb.cc",
+ "external/perfetto/protos/perfetto/trace/android/surfaceflinger_transactions.pb.cc",
],
}
@@ -5596,8 +5551,6 @@ genrule {
srcs: [
":perfetto_protos_perfetto_common_lite",
":perfetto_protos_perfetto_trace_android_lite",
- ":perfetto_protos_perfetto_trace_android_winscope_common_lite",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_lite",
],
tools: [
"aprotoc",
@@ -5616,154 +5569,11 @@ genrule {
"external/perfetto/protos/perfetto/trace/android/network_trace.pb.h",
"external/perfetto/protos/perfetto/trace/android/packages_list.pb.h",
"external/perfetto/protos/perfetto/trace/android/pixel_modem_events.pb.h",
- ],
- export_include_dirs: [
- ".",
- "protos",
- ],
-}
-
-// GN: //protos/perfetto/trace/android:winscope_common:cpp
-filegroup {
- name: "perfetto_protos_perfetto_trace_android_winscope_common_cpp",
- srcs: [
- "protos/perfetto/trace/android/graphics/point.proto",
- "protos/perfetto/trace/android/graphics/rect.proto",
- "protos/perfetto/trace/android/winscope_extensions.proto",
- ],
-}
-
-// GN: //protos/perfetto/trace/android:winscope_common:cpp
-genrule {
- name: "perfetto_protos_perfetto_trace_android_winscope_common_cpp_gen",
- srcs: [
- ":perfetto_protos_perfetto_trace_android_winscope_common_cpp",
- ],
- tools: [
- "aprotoc",
- "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
- ],
- cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(locations :perfetto_protos_perfetto_trace_android_winscope_common_cpp)",
- out: [
- "external/perfetto/protos/perfetto/trace/android/graphics/point.gen.cc",
- "external/perfetto/protos/perfetto/trace/android/graphics/rect.gen.cc",
- "external/perfetto/protos/perfetto/trace/android/winscope_extensions.gen.cc",
- ],
-}
-
-// GN: //protos/perfetto/trace/android:winscope_common:cpp
-genrule {
- name: "perfetto_protos_perfetto_trace_android_winscope_common_cpp_gen_headers",
- srcs: [
- ":perfetto_protos_perfetto_trace_android_winscope_common_cpp",
- ],
- tools: [
- "aprotoc",
- "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
- ],
- cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(locations :perfetto_protos_perfetto_trace_android_winscope_common_cpp)",
- out: [
- "external/perfetto/protos/perfetto/trace/android/graphics/point.gen.h",
- "external/perfetto/protos/perfetto/trace/android/graphics/rect.gen.h",
- "external/perfetto/protos/perfetto/trace/android/winscope_extensions.gen.h",
- ],
- export_include_dirs: [
- ".",
- "protos",
- ],
-}
-
-// GN: //protos/perfetto/trace/android:winscope_common:lite
-filegroup {
- name: "perfetto_protos_perfetto_trace_android_winscope_common_lite",
- srcs: [
- "protos/perfetto/trace/android/graphics/point.proto",
- "protos/perfetto/trace/android/graphics/rect.proto",
- "protos/perfetto/trace/android/winscope_extensions.proto",
- ],
-}
-
-// GN: //protos/perfetto/trace/android:winscope_common:lite
-genrule {
- name: "perfetto_protos_perfetto_trace_android_winscope_common_lite_gen",
- srcs: [
- ":perfetto_protos_perfetto_trace_android_winscope_common_lite",
- ],
- tools: [
- "aprotoc",
- ],
- cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(locations :perfetto_protos_perfetto_trace_android_winscope_common_lite)",
- out: [
- "external/perfetto/protos/perfetto/trace/android/graphics/point.pb.cc",
- "external/perfetto/protos/perfetto/trace/android/graphics/rect.pb.cc",
- "external/perfetto/protos/perfetto/trace/android/winscope_extensions.pb.cc",
- ],
-}
-
-// GN: //protos/perfetto/trace/android:winscope_common:lite
-genrule {
- name: "perfetto_protos_perfetto_trace_android_winscope_common_lite_gen_headers",
- srcs: [
- ":perfetto_protos_perfetto_trace_android_winscope_common_lite",
- ],
- tools: [
- "aprotoc",
- ],
- cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(locations :perfetto_protos_perfetto_trace_android_winscope_common_lite)",
- out: [
- "external/perfetto/protos/perfetto/trace/android/graphics/point.pb.h",
- "external/perfetto/protos/perfetto/trace/android/graphics/rect.pb.h",
- "external/perfetto/protos/perfetto/trace/android/winscope_extensions.pb.h",
- ],
- export_include_dirs: [
- ".",
- "protos",
- ],
-}
-
-// GN: //protos/perfetto/trace/android:winscope_common:zero
-filegroup {
- name: "perfetto_protos_perfetto_trace_android_winscope_common_zero",
- srcs: [
- "protos/perfetto/trace/android/graphics/point.proto",
- "protos/perfetto/trace/android/graphics/rect.proto",
- "protos/perfetto/trace/android/winscope_extensions.proto",
- ],
-}
-
-// GN: //protos/perfetto/trace/android:winscope_common:zero
-genrule {
- name: "perfetto_protos_perfetto_trace_android_winscope_common_zero_gen",
- srcs: [
- ":perfetto_protos_perfetto_trace_android_winscope_common_zero",
- ],
- tools: [
- "aprotoc",
- "protozero_plugin",
- ],
- cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(locations :perfetto_protos_perfetto_trace_android_winscope_common_zero)",
- out: [
- "external/perfetto/protos/perfetto/trace/android/graphics/point.pbzero.cc",
- "external/perfetto/protos/perfetto/trace/android/graphics/rect.pbzero.cc",
- "external/perfetto/protos/perfetto/trace/android/winscope_extensions.pbzero.cc",
- ],
-}
-
-// GN: //protos/perfetto/trace/android:winscope_common:zero
-genrule {
- name: "perfetto_protos_perfetto_trace_android_winscope_common_zero_gen_headers",
- srcs: [
- ":perfetto_protos_perfetto_trace_android_winscope_common_zero",
- ],
- tools: [
- "aprotoc",
- "protozero_plugin",
- ],
- cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(locations :perfetto_protos_perfetto_trace_android_winscope_common_zero)",
- out: [
- "external/perfetto/protos/perfetto/trace/android/graphics/point.pbzero.h",
- "external/perfetto/protos/perfetto/trace/android/graphics/rect.pbzero.h",
- "external/perfetto/protos/perfetto/trace/android/winscope_extensions.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/android/protolog.pb.h",
+ "external/perfetto/protos/perfetto/trace/android/shell_transition.pb.h",
+ "external/perfetto/protos/perfetto/trace/android/surfaceflinger_common.pb.h",
+ "external/perfetto/protos/perfetto/trace/android/surfaceflinger_layers.pb.h",
+ "external/perfetto/protos/perfetto/trace/android/surfaceflinger_transactions.pb.h",
],
export_include_dirs: [
".",
@@ -5775,7 +5585,6 @@ genrule {
genrule {
name: "perfetto_protos_perfetto_trace_android_winscope_descriptor",
srcs: [
- ":libprotobuf-internal-descriptor-proto",
"protos/perfetto/common/android_energy_consumer_descriptor.proto",
"protos/perfetto/common/android_log_constants.proto",
"protos/perfetto/common/builtin_clock.proto",
@@ -5793,340 +5602,22 @@ genrule {
"protos/perfetto/common/tracing_service_capabilities.proto",
"protos/perfetto/common/tracing_service_state.proto",
"protos/perfetto/common/track_event_descriptor.proto",
- "protos/perfetto/trace/android/graphics/pixelformat.proto",
- "protos/perfetto/trace/android/graphics/point.proto",
- "protos/perfetto/trace/android/graphics/rect.proto",
- "protos/perfetto/trace/android/inputmethodeditor.proto",
- "protos/perfetto/trace/android/inputmethodservice/inputmethodservice.proto",
- "protos/perfetto/trace/android/inputmethodservice/softinputwindow.proto",
"protos/perfetto/trace/android/protolog.proto",
- "protos/perfetto/trace/android/server/inputmethod/inputmethodmanagerservice.proto",
"protos/perfetto/trace/android/shell_transition.proto",
"protos/perfetto/trace/android/surfaceflinger_common.proto",
"protos/perfetto/trace/android/surfaceflinger_layers.proto",
"protos/perfetto/trace/android/surfaceflinger_transactions.proto",
- "protos/perfetto/trace/android/typedef.proto",
- "protos/perfetto/trace/android/view/display.proto",
- "protos/perfetto/trace/android/view/displaycutout.proto",
- "protos/perfetto/trace/android/view/imefocuscontroller.proto",
- "protos/perfetto/trace/android/view/imeinsetssourceconsumer.proto",
- "protos/perfetto/trace/android/view/inputmethod/editorinfo.proto",
- "protos/perfetto/trace/android/view/inputmethod/inputconnection.proto",
- "protos/perfetto/trace/android/view/inputmethod/inputmethodmanager.proto",
- "protos/perfetto/trace/android/view/insetsanimationcontrolimpl.proto",
- "protos/perfetto/trace/android/view/insetscontroller.proto",
- "protos/perfetto/trace/android/view/insetssource.proto",
- "protos/perfetto/trace/android/view/insetssourceconsumer.proto",
- "protos/perfetto/trace/android/view/insetssourcecontrol.proto",
- "protos/perfetto/trace/android/view/insetsstate.proto",
- "protos/perfetto/trace/android/view/surfacecontrol.proto",
- "protos/perfetto/trace/android/view/viewrootimpl.proto",
- "protos/perfetto/trace/android/view/windowlayoutparams.proto",
"protos/perfetto/trace/android/winscope.proto",
- "protos/perfetto/trace/android/winscope_extensions.proto",
- "protos/perfetto/trace/android/winscope_extensions_impl.proto",
],
tools: [
"aprotoc",
],
- cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --proto_path=external/protobuf/src --descriptor_set_out=$(out) $(in)",
+ cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --descriptor_set_out=$(out) $(in)",
out: [
"perfetto_protos_perfetto_trace_android_winscope_descriptor.bin",
],
}
-// GN: //protos/perfetto/trace/android:winscope_extensions:zero
-filegroup {
- name: "perfetto_protos_perfetto_trace_android_winscope_extensions_zero",
- srcs: [
- "protos/perfetto/trace/android/graphics/pixelformat.proto",
- "protos/perfetto/trace/android/inputmethodeditor.proto",
- "protos/perfetto/trace/android/inputmethodservice/inputmethodservice.proto",
- "protos/perfetto/trace/android/inputmethodservice/softinputwindow.proto",
- "protos/perfetto/trace/android/server/inputmethod/inputmethodmanagerservice.proto",
- "protos/perfetto/trace/android/typedef.proto",
- "protos/perfetto/trace/android/view/display.proto",
- "protos/perfetto/trace/android/view/displaycutout.proto",
- "protos/perfetto/trace/android/view/imefocuscontroller.proto",
- "protos/perfetto/trace/android/view/imeinsetssourceconsumer.proto",
- "protos/perfetto/trace/android/view/inputmethod/editorinfo.proto",
- "protos/perfetto/trace/android/view/inputmethod/inputconnection.proto",
- "protos/perfetto/trace/android/view/inputmethod/inputmethodmanager.proto",
- "protos/perfetto/trace/android/view/insetsanimationcontrolimpl.proto",
- "protos/perfetto/trace/android/view/insetscontroller.proto",
- "protos/perfetto/trace/android/view/insetssource.proto",
- "protos/perfetto/trace/android/view/insetssourceconsumer.proto",
- "protos/perfetto/trace/android/view/insetssourcecontrol.proto",
- "protos/perfetto/trace/android/view/insetsstate.proto",
- "protos/perfetto/trace/android/view/surfacecontrol.proto",
- "protos/perfetto/trace/android/view/viewrootimpl.proto",
- "protos/perfetto/trace/android/view/windowlayoutparams.proto",
- "protos/perfetto/trace/android/winscope_extensions_impl.proto",
- ],
-}
-
-// GN: //protos/perfetto/trace/android:winscope_extensions:zero
-genrule {
- name: "perfetto_protos_perfetto_trace_android_winscope_extensions_zero_gen",
- srcs: [
- ":libprotobuf-internal-descriptor-proto",
- ":perfetto_protos_perfetto_trace_android_winscope_common_zero",
- ":perfetto_protos_perfetto_trace_android_winscope_extensions_zero",
- ],
- tools: [
- "aprotoc",
- "protozero_plugin",
- ],
- cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --proto_path=external/protobuf/src --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(locations :perfetto_protos_perfetto_trace_android_winscope_extensions_zero)",
- out: [
- "external/perfetto/protos/perfetto/trace/android/graphics/pixelformat.pbzero.cc",
- "external/perfetto/protos/perfetto/trace/android/inputmethodeditor.pbzero.cc",
- "external/perfetto/protos/perfetto/trace/android/inputmethodservice/inputmethodservice.pbzero.cc",
- "external/perfetto/protos/perfetto/trace/android/inputmethodservice/softinputwindow.pbzero.cc",
- "external/perfetto/protos/perfetto/trace/android/server/inputmethod/inputmethodmanagerservice.pbzero.cc",
- "external/perfetto/protos/perfetto/trace/android/typedef.pbzero.cc",
- "external/perfetto/protos/perfetto/trace/android/view/display.pbzero.cc",
- "external/perfetto/protos/perfetto/trace/android/view/displaycutout.pbzero.cc",
- "external/perfetto/protos/perfetto/trace/android/view/imefocuscontroller.pbzero.cc",
- "external/perfetto/protos/perfetto/trace/android/view/imeinsetssourceconsumer.pbzero.cc",
- "external/perfetto/protos/perfetto/trace/android/view/inputmethod/editorinfo.pbzero.cc",
- "external/perfetto/protos/perfetto/trace/android/view/inputmethod/inputconnection.pbzero.cc",
- "external/perfetto/protos/perfetto/trace/android/view/inputmethod/inputmethodmanager.pbzero.cc",
- "external/perfetto/protos/perfetto/trace/android/view/insetsanimationcontrolimpl.pbzero.cc",
- "external/perfetto/protos/perfetto/trace/android/view/insetscontroller.pbzero.cc",
- "external/perfetto/protos/perfetto/trace/android/view/insetssource.pbzero.cc",
- "external/perfetto/protos/perfetto/trace/android/view/insetssourceconsumer.pbzero.cc",
- "external/perfetto/protos/perfetto/trace/android/view/insetssourcecontrol.pbzero.cc",
- "external/perfetto/protos/perfetto/trace/android/view/insetsstate.pbzero.cc",
- "external/perfetto/protos/perfetto/trace/android/view/surfacecontrol.pbzero.cc",
- "external/perfetto/protos/perfetto/trace/android/view/viewrootimpl.pbzero.cc",
- "external/perfetto/protos/perfetto/trace/android/view/windowlayoutparams.pbzero.cc",
- "external/perfetto/protos/perfetto/trace/android/winscope_extensions_impl.pbzero.cc",
- ],
-}
-
-// GN: //protos/perfetto/trace/android:winscope_extensions:zero
-genrule {
- name: "perfetto_protos_perfetto_trace_android_winscope_extensions_zero_gen_headers",
- srcs: [
- ":libprotobuf-internal-descriptor-proto",
- ":perfetto_protos_perfetto_trace_android_winscope_common_zero",
- ":perfetto_protos_perfetto_trace_android_winscope_extensions_zero",
- ],
- tools: [
- "aprotoc",
- "protozero_plugin",
- ],
- cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --proto_path=external/protobuf/src --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(locations :perfetto_protos_perfetto_trace_android_winscope_extensions_zero)",
- out: [
- "external/perfetto/protos/perfetto/trace/android/graphics/pixelformat.pbzero.h",
- "external/perfetto/protos/perfetto/trace/android/inputmethodeditor.pbzero.h",
- "external/perfetto/protos/perfetto/trace/android/inputmethodservice/inputmethodservice.pbzero.h",
- "external/perfetto/protos/perfetto/trace/android/inputmethodservice/softinputwindow.pbzero.h",
- "external/perfetto/protos/perfetto/trace/android/server/inputmethod/inputmethodmanagerservice.pbzero.h",
- "external/perfetto/protos/perfetto/trace/android/typedef.pbzero.h",
- "external/perfetto/protos/perfetto/trace/android/view/display.pbzero.h",
- "external/perfetto/protos/perfetto/trace/android/view/displaycutout.pbzero.h",
- "external/perfetto/protos/perfetto/trace/android/view/imefocuscontroller.pbzero.h",
- "external/perfetto/protos/perfetto/trace/android/view/imeinsetssourceconsumer.pbzero.h",
- "external/perfetto/protos/perfetto/trace/android/view/inputmethod/editorinfo.pbzero.h",
- "external/perfetto/protos/perfetto/trace/android/view/inputmethod/inputconnection.pbzero.h",
- "external/perfetto/protos/perfetto/trace/android/view/inputmethod/inputmethodmanager.pbzero.h",
- "external/perfetto/protos/perfetto/trace/android/view/insetsanimationcontrolimpl.pbzero.h",
- "external/perfetto/protos/perfetto/trace/android/view/insetscontroller.pbzero.h",
- "external/perfetto/protos/perfetto/trace/android/view/insetssource.pbzero.h",
- "external/perfetto/protos/perfetto/trace/android/view/insetssourceconsumer.pbzero.h",
- "external/perfetto/protos/perfetto/trace/android/view/insetssourcecontrol.pbzero.h",
- "external/perfetto/protos/perfetto/trace/android/view/insetsstate.pbzero.h",
- "external/perfetto/protos/perfetto/trace/android/view/surfacecontrol.pbzero.h",
- "external/perfetto/protos/perfetto/trace/android/view/viewrootimpl.pbzero.h",
- "external/perfetto/protos/perfetto/trace/android/view/windowlayoutparams.pbzero.h",
- "external/perfetto/protos/perfetto/trace/android/winscope_extensions_impl.pbzero.h",
- ],
- export_include_dirs: [
- ".",
- "protos",
- ],
-}
-
-// GN: //protos/perfetto/trace/android:winscope_regular:cpp
-filegroup {
- name: "perfetto_protos_perfetto_trace_android_winscope_regular_cpp",
- srcs: [
- "protos/perfetto/trace/android/protolog.proto",
- "protos/perfetto/trace/android/shell_transition.proto",
- "protos/perfetto/trace/android/surfaceflinger_common.proto",
- "protos/perfetto/trace/android/surfaceflinger_layers.proto",
- "protos/perfetto/trace/android/surfaceflinger_transactions.proto",
- ],
-}
-
-// GN: //protos/perfetto/trace/android:winscope_regular:cpp
-genrule {
- name: "perfetto_protos_perfetto_trace_android_winscope_regular_cpp_gen",
- srcs: [
- ":perfetto_protos_perfetto_common_cpp",
- ":perfetto_protos_perfetto_trace_android_winscope_common_cpp",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_cpp",
- ],
- tools: [
- "aprotoc",
- "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
- ],
- cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(locations :perfetto_protos_perfetto_trace_android_winscope_regular_cpp)",
- out: [
- "external/perfetto/protos/perfetto/trace/android/protolog.gen.cc",
- "external/perfetto/protos/perfetto/trace/android/shell_transition.gen.cc",
- "external/perfetto/protos/perfetto/trace/android/surfaceflinger_common.gen.cc",
- "external/perfetto/protos/perfetto/trace/android/surfaceflinger_layers.gen.cc",
- "external/perfetto/protos/perfetto/trace/android/surfaceflinger_transactions.gen.cc",
- ],
-}
-
-// GN: //protos/perfetto/trace/android:winscope_regular:cpp
-genrule {
- name: "perfetto_protos_perfetto_trace_android_winscope_regular_cpp_gen_headers",
- srcs: [
- ":perfetto_protos_perfetto_common_cpp",
- ":perfetto_protos_perfetto_trace_android_winscope_common_cpp",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_cpp",
- ],
- tools: [
- "aprotoc",
- "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
- ],
- cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(locations :perfetto_protos_perfetto_trace_android_winscope_regular_cpp)",
- out: [
- "external/perfetto/protos/perfetto/trace/android/protolog.gen.h",
- "external/perfetto/protos/perfetto/trace/android/shell_transition.gen.h",
- "external/perfetto/protos/perfetto/trace/android/surfaceflinger_common.gen.h",
- "external/perfetto/protos/perfetto/trace/android/surfaceflinger_layers.gen.h",
- "external/perfetto/protos/perfetto/trace/android/surfaceflinger_transactions.gen.h",
- ],
- export_include_dirs: [
- ".",
- "protos",
- ],
-}
-
-// GN: //protos/perfetto/trace/android:winscope_regular:lite
-filegroup {
- name: "perfetto_protos_perfetto_trace_android_winscope_regular_lite",
- srcs: [
- "protos/perfetto/trace/android/protolog.proto",
- "protos/perfetto/trace/android/shell_transition.proto",
- "protos/perfetto/trace/android/surfaceflinger_common.proto",
- "protos/perfetto/trace/android/surfaceflinger_layers.proto",
- "protos/perfetto/trace/android/surfaceflinger_transactions.proto",
- ],
-}
-
-// GN: //protos/perfetto/trace/android:winscope_regular:lite
-genrule {
- name: "perfetto_protos_perfetto_trace_android_winscope_regular_lite_gen",
- srcs: [
- ":perfetto_protos_perfetto_common_lite",
- ":perfetto_protos_perfetto_trace_android_winscope_common_lite",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_lite",
- ],
- tools: [
- "aprotoc",
- ],
- cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(locations :perfetto_protos_perfetto_trace_android_winscope_regular_lite)",
- out: [
- "external/perfetto/protos/perfetto/trace/android/protolog.pb.cc",
- "external/perfetto/protos/perfetto/trace/android/shell_transition.pb.cc",
- "external/perfetto/protos/perfetto/trace/android/surfaceflinger_common.pb.cc",
- "external/perfetto/protos/perfetto/trace/android/surfaceflinger_layers.pb.cc",
- "external/perfetto/protos/perfetto/trace/android/surfaceflinger_transactions.pb.cc",
- ],
-}
-
-// GN: //protos/perfetto/trace/android:winscope_regular:lite
-genrule {
- name: "perfetto_protos_perfetto_trace_android_winscope_regular_lite_gen_headers",
- srcs: [
- ":perfetto_protos_perfetto_common_lite",
- ":perfetto_protos_perfetto_trace_android_winscope_common_lite",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_lite",
- ],
- tools: [
- "aprotoc",
- ],
- cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(locations :perfetto_protos_perfetto_trace_android_winscope_regular_lite)",
- out: [
- "external/perfetto/protos/perfetto/trace/android/protolog.pb.h",
- "external/perfetto/protos/perfetto/trace/android/shell_transition.pb.h",
- "external/perfetto/protos/perfetto/trace/android/surfaceflinger_common.pb.h",
- "external/perfetto/protos/perfetto/trace/android/surfaceflinger_layers.pb.h",
- "external/perfetto/protos/perfetto/trace/android/surfaceflinger_transactions.pb.h",
- ],
- export_include_dirs: [
- ".",
- "protos",
- ],
-}
-
-// GN: //protos/perfetto/trace/android:winscope_regular:zero
-filegroup {
- name: "perfetto_protos_perfetto_trace_android_winscope_regular_zero",
- srcs: [
- "protos/perfetto/trace/android/protolog.proto",
- "protos/perfetto/trace/android/shell_transition.proto",
- "protos/perfetto/trace/android/surfaceflinger_common.proto",
- "protos/perfetto/trace/android/surfaceflinger_layers.proto",
- "protos/perfetto/trace/android/surfaceflinger_transactions.proto",
- ],
-}
-
-// GN: //protos/perfetto/trace/android:winscope_regular:zero
-genrule {
- name: "perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen",
- srcs: [
- ":perfetto_protos_perfetto_common_zero",
- ":perfetto_protos_perfetto_trace_android_winscope_common_zero",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_zero",
- ],
- tools: [
- "aprotoc",
- "protozero_plugin",
- ],
- cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(locations :perfetto_protos_perfetto_trace_android_winscope_regular_zero)",
- out: [
- "external/perfetto/protos/perfetto/trace/android/protolog.pbzero.cc",
- "external/perfetto/protos/perfetto/trace/android/shell_transition.pbzero.cc",
- "external/perfetto/protos/perfetto/trace/android/surfaceflinger_common.pbzero.cc",
- "external/perfetto/protos/perfetto/trace/android/surfaceflinger_layers.pbzero.cc",
- "external/perfetto/protos/perfetto/trace/android/surfaceflinger_transactions.pbzero.cc",
- ],
-}
-
-// GN: //protos/perfetto/trace/android:winscope_regular:zero
-genrule {
- name: "perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen_headers",
- srcs: [
- ":perfetto_protos_perfetto_common_zero",
- ":perfetto_protos_perfetto_trace_android_winscope_common_zero",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_zero",
- ],
- tools: [
- "aprotoc",
- "protozero_plugin",
- ],
- cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(locations :perfetto_protos_perfetto_trace_android_winscope_regular_zero)",
- out: [
- "external/perfetto/protos/perfetto/trace/android/protolog.pbzero.h",
- "external/perfetto/protos/perfetto/trace/android/shell_transition.pbzero.h",
- "external/perfetto/protos/perfetto/trace/android/surfaceflinger_common.pbzero.h",
- "external/perfetto/protos/perfetto/trace/android/surfaceflinger_layers.pbzero.h",
- "external/perfetto/protos/perfetto/trace/android/surfaceflinger_transactions.pbzero.h",
- ],
- export_include_dirs: [
- ".",
- "protos",
- ],
-}
-
// GN: //protos/perfetto/trace/android:zero
filegroup {
name: "perfetto_protos_perfetto_trace_android_zero",
@@ -6143,6 +5634,11 @@ filegroup {
"protos/perfetto/trace/android/network_trace.proto",
"protos/perfetto/trace/android/packages_list.proto",
"protos/perfetto/trace/android/pixel_modem_events.proto",
+ "protos/perfetto/trace/android/protolog.proto",
+ "protos/perfetto/trace/android/shell_transition.proto",
+ "protos/perfetto/trace/android/surfaceflinger_common.proto",
+ "protos/perfetto/trace/android/surfaceflinger_layers.proto",
+ "protos/perfetto/trace/android/surfaceflinger_transactions.proto",
],
}
@@ -6151,8 +5647,6 @@ genrule {
name: "perfetto_protos_perfetto_trace_android_zero_gen",
srcs: [
":perfetto_protos_perfetto_common_zero",
- ":perfetto_protos_perfetto_trace_android_winscope_common_zero",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_zero",
":perfetto_protos_perfetto_trace_android_zero",
],
tools: [
@@ -6173,6 +5667,11 @@ genrule {
"external/perfetto/protos/perfetto/trace/android/network_trace.pbzero.cc",
"external/perfetto/protos/perfetto/trace/android/packages_list.pbzero.cc",
"external/perfetto/protos/perfetto/trace/android/pixel_modem_events.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/android/protolog.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/android/shell_transition.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/android/surfaceflinger_common.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/android/surfaceflinger_layers.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/android/surfaceflinger_transactions.pbzero.cc",
],
}
@@ -6181,8 +5680,6 @@ genrule {
name: "perfetto_protos_perfetto_trace_android_zero_gen_headers",
srcs: [
":perfetto_protos_perfetto_common_zero",
- ":perfetto_protos_perfetto_trace_android_winscope_common_zero",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_zero",
":perfetto_protos_perfetto_trace_android_zero",
],
tools: [
@@ -6203,6 +5700,11 @@ genrule {
"external/perfetto/protos/perfetto/trace/android/network_trace.pbzero.h",
"external/perfetto/protos/perfetto/trace/android/packages_list.pbzero.h",
"external/perfetto/protos/perfetto/trace/android/pixel_modem_events.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/android/protolog.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/android/shell_transition.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/android/surfaceflinger_common.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/android/surfaceflinger_layers.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/android/surfaceflinger_transactions.pbzero.h",
],
export_include_dirs: [
".",
@@ -6440,8 +5942,6 @@ genrule {
"protos/perfetto/trace/android/camera_event.proto",
"protos/perfetto/trace/android/frame_timeline_event.proto",
"protos/perfetto/trace/android/gpu_mem_event.proto",
- "protos/perfetto/trace/android/graphics/point.proto",
- "protos/perfetto/trace/android/graphics/rect.proto",
"protos/perfetto/trace/android/graphics_frame_event.proto",
"protos/perfetto/trace/android/initial_display_state.proto",
"protos/perfetto/trace/android/network_trace.proto",
@@ -6452,7 +5952,6 @@ genrule {
"protos/perfetto/trace/android/surfaceflinger_common.proto",
"protos/perfetto/trace/android/surfaceflinger_layers.proto",
"protos/perfetto/trace/android/surfaceflinger_transactions.proto",
- "protos/perfetto/trace/android/winscope_extensions.proto",
"protos/perfetto/trace/chrome/chrome_benchmark_metadata.proto",
"protos/perfetto/trace/chrome/chrome_metadata.proto",
"protos/perfetto/trace/chrome/chrome_trace_event.proto",
@@ -7801,8 +7300,6 @@ genrule {
srcs: [
":perfetto_protos_perfetto_common_cpp",
":perfetto_protos_perfetto_trace_android_cpp",
- ":perfetto_protos_perfetto_trace_android_winscope_common_cpp",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_cpp",
":perfetto_protos_perfetto_trace_chrome_cpp",
":perfetto_protos_perfetto_trace_gpu_cpp",
":perfetto_protos_perfetto_trace_interned_data_cpp",
@@ -7825,8 +7322,6 @@ genrule {
srcs: [
":perfetto_protos_perfetto_common_cpp",
":perfetto_protos_perfetto_trace_android_cpp",
- ":perfetto_protos_perfetto_trace_android_winscope_common_cpp",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_cpp",
":perfetto_protos_perfetto_trace_chrome_cpp",
":perfetto_protos_perfetto_trace_gpu_cpp",
":perfetto_protos_perfetto_trace_interned_data_cpp",
@@ -7861,8 +7356,6 @@ genrule {
srcs: [
":perfetto_protos_perfetto_common_lite",
":perfetto_protos_perfetto_trace_android_lite",
- ":perfetto_protos_perfetto_trace_android_winscope_common_lite",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_lite",
":perfetto_protos_perfetto_trace_chrome_lite",
":perfetto_protos_perfetto_trace_gpu_lite",
":perfetto_protos_perfetto_trace_interned_data_lite",
@@ -7884,8 +7377,6 @@ genrule {
srcs: [
":perfetto_protos_perfetto_common_lite",
":perfetto_protos_perfetto_trace_android_lite",
- ":perfetto_protos_perfetto_trace_android_winscope_common_lite",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_lite",
":perfetto_protos_perfetto_trace_chrome_lite",
":perfetto_protos_perfetto_trace_gpu_lite",
":perfetto_protos_perfetto_trace_interned_data_lite",
@@ -7918,8 +7409,6 @@ genrule {
name: "perfetto_protos_perfetto_trace_interned_data_zero_gen",
srcs: [
":perfetto_protos_perfetto_common_zero",
- ":perfetto_protos_perfetto_trace_android_winscope_common_zero",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_zero",
":perfetto_protos_perfetto_trace_android_zero",
":perfetto_protos_perfetto_trace_chrome_zero",
":perfetto_protos_perfetto_trace_gpu_zero",
@@ -7942,8 +7431,6 @@ genrule {
name: "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
srcs: [
":perfetto_protos_perfetto_common_zero",
- ":perfetto_protos_perfetto_trace_android_winscope_common_zero",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_zero",
":perfetto_protos_perfetto_trace_android_zero",
":perfetto_protos_perfetto_trace_chrome_zero",
":perfetto_protos_perfetto_trace_gpu_zero",
@@ -8241,8 +7728,6 @@ genrule {
":perfetto_protos_perfetto_config_system_info_cpp",
":perfetto_protos_perfetto_config_track_event_cpp",
":perfetto_protos_perfetto_trace_android_cpp",
- ":perfetto_protos_perfetto_trace_android_winscope_common_cpp",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_cpp",
":perfetto_protos_perfetto_trace_chrome_cpp",
":perfetto_protos_perfetto_trace_etw_cpp",
":perfetto_protos_perfetto_trace_filesystem_cpp",
@@ -8298,8 +7783,6 @@ genrule {
":perfetto_protos_perfetto_config_system_info_cpp",
":perfetto_protos_perfetto_config_track_event_cpp",
":perfetto_protos_perfetto_trace_android_cpp",
- ":perfetto_protos_perfetto_trace_android_winscope_common_cpp",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_cpp",
":perfetto_protos_perfetto_trace_chrome_cpp",
":perfetto_protos_perfetto_trace_etw_cpp",
":perfetto_protos_perfetto_trace_filesystem_cpp",
@@ -8375,8 +7858,6 @@ genrule {
":perfetto_protos_perfetto_config_system_info_lite",
":perfetto_protos_perfetto_config_track_event_lite",
":perfetto_protos_perfetto_trace_android_lite",
- ":perfetto_protos_perfetto_trace_android_winscope_common_lite",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_lite",
":perfetto_protos_perfetto_trace_chrome_lite",
":perfetto_protos_perfetto_trace_etw_lite",
":perfetto_protos_perfetto_trace_filesystem_lite",
@@ -8431,8 +7912,6 @@ genrule {
":perfetto_protos_perfetto_config_system_info_lite",
":perfetto_protos_perfetto_config_track_event_lite",
":perfetto_protos_perfetto_trace_android_lite",
- ":perfetto_protos_perfetto_trace_android_winscope_common_lite",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_lite",
":perfetto_protos_perfetto_trace_chrome_lite",
":perfetto_protos_perfetto_trace_etw_lite",
":perfetto_protos_perfetto_trace_filesystem_lite",
@@ -8506,8 +7985,6 @@ genrule {
":perfetto_protos_perfetto_config_system_info_zero",
":perfetto_protos_perfetto_config_track_event_zero",
":perfetto_protos_perfetto_config_zero",
- ":perfetto_protos_perfetto_trace_android_winscope_common_zero",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_zero",
":perfetto_protos_perfetto_trace_android_zero",
":perfetto_protos_perfetto_trace_chrome_zero",
":perfetto_protos_perfetto_trace_etw_zero",
@@ -8563,8 +8040,6 @@ genrule {
":perfetto_protos_perfetto_config_system_info_zero",
":perfetto_protos_perfetto_config_track_event_zero",
":perfetto_protos_perfetto_config_zero",
- ":perfetto_protos_perfetto_trace_android_winscope_common_zero",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_zero",
":perfetto_protos_perfetto_trace_android_zero",
":perfetto_protos_perfetto_trace_chrome_zero",
":perfetto_protos_perfetto_trace_etw_zero",
@@ -13431,6 +12906,7 @@ filegroup {
name: "perfetto_src_trace_redaction_trace_redaction",
srcs: [
"src/trace_redaction/collect_frame_cookies.cc",
+ "src/trace_redaction/collect_system_info.cc",
"src/trace_redaction/collect_timeline_events.cc",
"src/trace_redaction/filter_ftrace_using_allowlist.cc",
"src/trace_redaction/filter_packet_using_allowlist.cc",
@@ -13462,6 +12938,7 @@ filegroup {
name: "perfetto_src_trace_redaction_unittests",
srcs: [
"src/trace_redaction/collect_frame_cookies_unittest.cc",
+ "src/trace_redaction/collect_system_info_unittest.cc",
"src/trace_redaction/collect_timeline_events_unittest.cc",
"src/trace_redaction/filter_ftrace_using_allowlist_unittest.cc",
"src/trace_redaction/filter_packet_using_allowlist_unittest.cc",
@@ -14321,6 +13798,224 @@ filegroup {
}
// GN: [//protos/perfetto/trace:non_minimal_source_set, //protos/perfetto/trace:minimal_source_set]
+filegroup {
+ name: "perfetto_trace_filegroup_proto",
+ srcs: [
+ "protos/perfetto/common/android_energy_consumer_descriptor.proto",
+ "protos/perfetto/common/android_log_constants.proto",
+ "protos/perfetto/common/builtin_clock.proto",
+ "protos/perfetto/common/commit_data_request.proto",
+ "protos/perfetto/common/data_source_descriptor.proto",
+ "protos/perfetto/common/descriptor.proto",
+ "protos/perfetto/common/ftrace_descriptor.proto",
+ "protos/perfetto/common/gpu_counter_descriptor.proto",
+ "protos/perfetto/common/interceptor_descriptor.proto",
+ "protos/perfetto/common/observable_events.proto",
+ "protos/perfetto/common/perf_events.proto",
+ "protos/perfetto/common/protolog_common.proto",
+ "protos/perfetto/common/sys_stats_counters.proto",
+ "protos/perfetto/common/trace_stats.proto",
+ "protos/perfetto/common/tracing_service_capabilities.proto",
+ "protos/perfetto/common/tracing_service_state.proto",
+ "protos/perfetto/common/track_event_descriptor.proto",
+ "protos/perfetto/config/android/android_game_intervention_list_config.proto",
+ "protos/perfetto/config/android/android_input_event_config.proto",
+ "protos/perfetto/config/android/android_log_config.proto",
+ "protos/perfetto/config/android/android_polled_state_config.proto",
+ "protos/perfetto/config/android/android_sdk_sysprop_guard_config.proto",
+ "protos/perfetto/config/android/android_system_property_config.proto",
+ "protos/perfetto/config/android/network_trace_config.proto",
+ "protos/perfetto/config/android/packages_list_config.proto",
+ "protos/perfetto/config/android/pixel_modem_config.proto",
+ "protos/perfetto/config/android/protolog_config.proto",
+ "protos/perfetto/config/android/surfaceflinger_layers_config.proto",
+ "protos/perfetto/config/android/surfaceflinger_transactions_config.proto",
+ "protos/perfetto/config/chrome/chrome_config.proto",
+ "protos/perfetto/config/chrome/scenario_config.proto",
+ "protos/perfetto/config/chrome/v8_config.proto",
+ "protos/perfetto/config/data_source_config.proto",
+ "protos/perfetto/config/etw/etw_config.proto",
+ "protos/perfetto/config/ftrace/ftrace_config.proto",
+ "protos/perfetto/config/gpu/gpu_counter_config.proto",
+ "protos/perfetto/config/gpu/vulkan_memory_config.proto",
+ "protos/perfetto/config/inode_file/inode_file_config.proto",
+ "protos/perfetto/config/interceptor_config.proto",
+ "protos/perfetto/config/interceptors/console_config.proto",
+ "protos/perfetto/config/power/android_power_config.proto",
+ "protos/perfetto/config/process_stats/process_stats_config.proto",
+ "protos/perfetto/config/profiling/heapprofd_config.proto",
+ "protos/perfetto/config/profiling/java_hprof_config.proto",
+ "protos/perfetto/config/profiling/perf_event_config.proto",
+ "protos/perfetto/config/statsd/atom_ids.proto",
+ "protos/perfetto/config/statsd/statsd_tracing_config.proto",
+ "protos/perfetto/config/stress_test_config.proto",
+ "protos/perfetto/config/sys_stats/sys_stats_config.proto",
+ "protos/perfetto/config/system_info/system_info.proto",
+ "protos/perfetto/config/test_config.proto",
+ "protos/perfetto/config/trace_config.proto",
+ "protos/perfetto/config/track_event/track_event_config.proto",
+ "protos/perfetto/trace/android/android_game_intervention_list.proto",
+ "protos/perfetto/trace/android/android_input_event.proto",
+ "protos/perfetto/trace/android/android_log.proto",
+ "protos/perfetto/trace/android/android_system_property.proto",
+ "protos/perfetto/trace/android/camera_event.proto",
+ "protos/perfetto/trace/android/frame_timeline_event.proto",
+ "protos/perfetto/trace/android/gpu_mem_event.proto",
+ "protos/perfetto/trace/android/graphics_frame_event.proto",
+ "protos/perfetto/trace/android/initial_display_state.proto",
+ "protos/perfetto/trace/android/network_trace.proto",
+ "protos/perfetto/trace/android/packages_list.proto",
+ "protos/perfetto/trace/android/pixel_modem_events.proto",
+ "protos/perfetto/trace/android/protolog.proto",
+ "protos/perfetto/trace/android/shell_transition.proto",
+ "protos/perfetto/trace/android/surfaceflinger_common.proto",
+ "protos/perfetto/trace/android/surfaceflinger_layers.proto",
+ "protos/perfetto/trace/android/surfaceflinger_transactions.proto",
+ "protos/perfetto/trace/chrome/chrome_benchmark_metadata.proto",
+ "protos/perfetto/trace/chrome/chrome_metadata.proto",
+ "protos/perfetto/trace/chrome/chrome_trace_event.proto",
+ "protos/perfetto/trace/chrome/chrome_trigger.proto",
+ "protos/perfetto/trace/chrome/v8.proto",
+ "protos/perfetto/trace/clock_snapshot.proto",
+ "protos/perfetto/trace/etw/etw.proto",
+ "protos/perfetto/trace/etw/etw_event.proto",
+ "protos/perfetto/trace/etw/etw_event_bundle.proto",
+ "protos/perfetto/trace/extension_descriptor.proto",
+ "protos/perfetto/trace/filesystem/inode_file_map.proto",
+ "protos/perfetto/trace/ftrace/android_fs.proto",
+ "protos/perfetto/trace/ftrace/binder.proto",
+ "protos/perfetto/trace/ftrace/block.proto",
+ "protos/perfetto/trace/ftrace/cgroup.proto",
+ "protos/perfetto/trace/ftrace/clk.proto",
+ "protos/perfetto/trace/ftrace/cma.proto",
+ "protos/perfetto/trace/ftrace/compaction.proto",
+ "protos/perfetto/trace/ftrace/cpuhp.proto",
+ "protos/perfetto/trace/ftrace/cros_ec.proto",
+ "protos/perfetto/trace/ftrace/dma_fence.proto",
+ "protos/perfetto/trace/ftrace/dmabuf_heap.proto",
+ "protos/perfetto/trace/ftrace/dpu.proto",
+ "protos/perfetto/trace/ftrace/drm.proto",
+ "protos/perfetto/trace/ftrace/ext4.proto",
+ "protos/perfetto/trace/ftrace/f2fs.proto",
+ "protos/perfetto/trace/ftrace/fastrpc.proto",
+ "protos/perfetto/trace/ftrace/fence.proto",
+ "protos/perfetto/trace/ftrace/filemap.proto",
+ "protos/perfetto/trace/ftrace/ftrace.proto",
+ "protos/perfetto/trace/ftrace/ftrace_event.proto",
+ "protos/perfetto/trace/ftrace/ftrace_event_bundle.proto",
+ "protos/perfetto/trace/ftrace/ftrace_stats.proto",
+ "protos/perfetto/trace/ftrace/g2d.proto",
+ "protos/perfetto/trace/ftrace/generic.proto",
+ "protos/perfetto/trace/ftrace/gpu_mem.proto",
+ "protos/perfetto/trace/ftrace/gpu_scheduler.proto",
+ "protos/perfetto/trace/ftrace/hyp.proto",
+ "protos/perfetto/trace/ftrace/i2c.proto",
+ "protos/perfetto/trace/ftrace/ion.proto",
+ "protos/perfetto/trace/ftrace/ipi.proto",
+ "protos/perfetto/trace/ftrace/irq.proto",
+ "protos/perfetto/trace/ftrace/kmem.proto",
+ "protos/perfetto/trace/ftrace/kvm.proto",
+ "protos/perfetto/trace/ftrace/lowmemorykiller.proto",
+ "protos/perfetto/trace/ftrace/lwis.proto",
+ "protos/perfetto/trace/ftrace/mali.proto",
+ "protos/perfetto/trace/ftrace/mdss.proto",
+ "protos/perfetto/trace/ftrace/mm_event.proto",
+ "protos/perfetto/trace/ftrace/net.proto",
+ "protos/perfetto/trace/ftrace/oom.proto",
+ "protos/perfetto/trace/ftrace/panel.proto",
+ "protos/perfetto/trace/ftrace/perf_trace_counters.proto",
+ "protos/perfetto/trace/ftrace/power.proto",
+ "protos/perfetto/trace/ftrace/printk.proto",
+ "protos/perfetto/trace/ftrace/raw_syscalls.proto",
+ "protos/perfetto/trace/ftrace/regulator.proto",
+ "protos/perfetto/trace/ftrace/rpm.proto",
+ "protos/perfetto/trace/ftrace/samsung.proto",
+ "protos/perfetto/trace/ftrace/sched.proto",
+ "protos/perfetto/trace/ftrace/scm.proto",
+ "protos/perfetto/trace/ftrace/sde.proto",
+ "protos/perfetto/trace/ftrace/signal.proto",
+ "protos/perfetto/trace/ftrace/skb.proto",
+ "protos/perfetto/trace/ftrace/sock.proto",
+ "protos/perfetto/trace/ftrace/sync.proto",
+ "protos/perfetto/trace/ftrace/synthetic.proto",
+ "protos/perfetto/trace/ftrace/systrace.proto",
+ "protos/perfetto/trace/ftrace/task.proto",
+ "protos/perfetto/trace/ftrace/tcp.proto",
+ "protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
+ "protos/perfetto/trace/ftrace/thermal.proto",
+ "protos/perfetto/trace/ftrace/trusty.proto",
+ "protos/perfetto/trace/ftrace/ufs.proto",
+ "protos/perfetto/trace/ftrace/v4l2.proto",
+ "protos/perfetto/trace/ftrace/virtio_gpu.proto",
+ "protos/perfetto/trace/ftrace/virtio_video.proto",
+ "protos/perfetto/trace/ftrace/vmscan.proto",
+ "protos/perfetto/trace/ftrace/workqueue.proto",
+ "protos/perfetto/trace/gpu/gpu_counter_event.proto",
+ "protos/perfetto/trace/gpu/gpu_log.proto",
+ "protos/perfetto/trace/gpu/gpu_render_stage_event.proto",
+ "protos/perfetto/trace/gpu/vulkan_api_event.proto",
+ "protos/perfetto/trace/gpu/vulkan_memory_event.proto",
+ "protos/perfetto/trace/interned_data/interned_data.proto",
+ "protos/perfetto/trace/memory_graph.proto",
+ "protos/perfetto/trace/perfetto/perfetto_metatrace.proto",
+ "protos/perfetto/trace/perfetto/tracing_service_event.proto",
+ "protos/perfetto/trace/power/android_energy_estimation_breakdown.proto",
+ "protos/perfetto/trace/power/android_entity_state_residency.proto",
+ "protos/perfetto/trace/power/battery_counters.proto",
+ "protos/perfetto/trace/power/power_rails.proto",
+ "protos/perfetto/trace/profiling/deobfuscation.proto",
+ "protos/perfetto/trace/profiling/heap_graph.proto",
+ "protos/perfetto/trace/profiling/profile_common.proto",
+ "protos/perfetto/trace/profiling/profile_packet.proto",
+ "protos/perfetto/trace/profiling/smaps.proto",
+ "protos/perfetto/trace/ps/process_stats.proto",
+ "protos/perfetto/trace/ps/process_tree.proto",
+ "protos/perfetto/trace/remote_clock_sync.proto",
+ "protos/perfetto/trace/statsd/statsd_atom.proto",
+ "protos/perfetto/trace/sys_stats/sys_stats.proto",
+ "protos/perfetto/trace/system_info.proto",
+ "protos/perfetto/trace/system_info/cpu_info.proto",
+ "protos/perfetto/trace/test_event.proto",
+ "protos/perfetto/trace/test_extensions.proto",
+ "protos/perfetto/trace/trace.proto",
+ "protos/perfetto/trace/trace_packet.proto",
+ "protos/perfetto/trace/trace_packet_defaults.proto",
+ "protos/perfetto/trace/trace_uuid.proto",
+ "protos/perfetto/trace/track_event/chrome_active_processes.proto",
+ "protos/perfetto/trace/track_event/chrome_application_state_info.proto",
+ "protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.proto",
+ "protos/perfetto/trace/track_event/chrome_content_settings_event_info.proto",
+ "protos/perfetto/trace/track_event/chrome_frame_reporter.proto",
+ "protos/perfetto/trace/track_event/chrome_histogram_sample.proto",
+ "protos/perfetto/trace/track_event/chrome_keyed_service.proto",
+ "protos/perfetto/trace/track_event/chrome_latency_info.proto",
+ "protos/perfetto/trace/track_event/chrome_legacy_ipc.proto",
+ "protos/perfetto/trace/track_event/chrome_message_pump.proto",
+ "protos/perfetto/trace/track_event/chrome_mojo_event_info.proto",
+ "protos/perfetto/trace/track_event/chrome_process_descriptor.proto",
+ "protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.proto",
+ "protos/perfetto/trace/track_event/chrome_thread_descriptor.proto",
+ "protos/perfetto/trace/track_event/chrome_user_event.proto",
+ "protos/perfetto/trace/track_event/chrome_window_handle_event_info.proto",
+ "protos/perfetto/trace/track_event/counter_descriptor.proto",
+ "protos/perfetto/trace/track_event/debug_annotation.proto",
+ "protos/perfetto/trace/track_event/log_message.proto",
+ "protos/perfetto/trace/track_event/pixel_modem.proto",
+ "protos/perfetto/trace/track_event/process_descriptor.proto",
+ "protos/perfetto/trace/track_event/range_of_interest.proto",
+ "protos/perfetto/trace/track_event/screenshot.proto",
+ "protos/perfetto/trace/track_event/source_location.proto",
+ "protos/perfetto/trace/track_event/task_execution.proto",
+ "protos/perfetto/trace/track_event/thread_descriptor.proto",
+ "protos/perfetto/trace/track_event/track_descriptor.proto",
+ "protos/perfetto/trace/track_event/track_event.proto",
+ "protos/perfetto/trace/translation/translation_table.proto",
+ "protos/perfetto/trace/trigger.proto",
+ "protos/perfetto/trace/ui_state.proto",
+ ],
+}
+
+// GN: [//protos/perfetto/trace:non_minimal_source_set, //protos/perfetto/trace:minimal_source_set]
java_library {
name: "perfetto_trace_java_protos",
srcs: [
@@ -14384,8 +14079,6 @@ java_library {
"protos/perfetto/trace/android/camera_event.proto",
"protos/perfetto/trace/android/frame_timeline_event.proto",
"protos/perfetto/trace/android/gpu_mem_event.proto",
- "protos/perfetto/trace/android/graphics/point.proto",
- "protos/perfetto/trace/android/graphics/rect.proto",
"protos/perfetto/trace/android/graphics_frame_event.proto",
"protos/perfetto/trace/android/initial_display_state.proto",
"protos/perfetto/trace/android/network_trace.proto",
@@ -14396,7 +14089,6 @@ java_library {
"protos/perfetto/trace/android/surfaceflinger_common.proto",
"protos/perfetto/trace/android/surfaceflinger_layers.proto",
"protos/perfetto/trace/android/surfaceflinger_transactions.proto",
- "protos/perfetto/trace/android/winscope_extensions.proto",
"protos/perfetto/trace/chrome/chrome_benchmark_metadata.proto",
"protos/perfetto/trace/chrome/chrome_metadata.proto",
"protos/perfetto/trace/chrome/chrome_trace_event.proto",
@@ -14564,8 +14256,6 @@ cc_library_static {
":perfetto_protos_perfetto_config_system_info_lite_gen",
":perfetto_protos_perfetto_config_track_event_lite_gen",
":perfetto_protos_perfetto_trace_android_lite_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_common_lite_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_lite_gen",
":perfetto_protos_perfetto_trace_chrome_lite_gen",
":perfetto_protos_perfetto_trace_etw_lite_gen",
":perfetto_protos_perfetto_trace_filesystem_lite_gen",
@@ -14604,8 +14294,6 @@ cc_library_static {
"perfetto_protos_perfetto_config_system_info_lite_gen_headers",
"perfetto_protos_perfetto_config_track_event_lite_gen_headers",
"perfetto_protos_perfetto_trace_android_lite_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_common_lite_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_regular_lite_gen_headers",
"perfetto_protos_perfetto_trace_chrome_lite_gen_headers",
"perfetto_protos_perfetto_trace_etw_lite_gen_headers",
"perfetto_protos_perfetto_trace_filesystem_lite_gen_headers",
@@ -14640,8 +14328,6 @@ cc_library_static {
"perfetto_protos_perfetto_config_system_info_lite_gen_headers",
"perfetto_protos_perfetto_config_track_event_lite_gen_headers",
"perfetto_protos_perfetto_trace_android_lite_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_common_lite_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_regular_lite_gen_headers",
"perfetto_protos_perfetto_trace_chrome_lite_gen_headers",
"perfetto_protos_perfetto_trace_etw_lite_gen_headers",
"perfetto_protos_perfetto_trace_filesystem_lite_gen_headers",
@@ -14757,13 +14443,6 @@ cc_test {
":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
":perfetto_protos_perfetto_trace_android_cpp_gen",
":perfetto_protos_perfetto_trace_android_lite_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_common_cpp_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_common_lite_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_common_zero_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_extensions_zero_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_cpp_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_lite_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen",
":perfetto_protos_perfetto_trace_android_zero_gen",
":perfetto_protos_perfetto_trace_chrome_cpp_gen",
":perfetto_protos_perfetto_trace_chrome_lite_gen",
@@ -15130,13 +14809,6 @@ cc_test {
"perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
"perfetto_protos_perfetto_trace_android_cpp_gen_headers",
"perfetto_protos_perfetto_trace_android_lite_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_common_cpp_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_common_lite_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_common_zero_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_extensions_zero_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_regular_cpp_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_regular_lite_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen_headers",
"perfetto_protos_perfetto_trace_android_zero_gen_headers",
"perfetto_protos_perfetto_trace_chrome_cpp_gen_headers",
"perfetto_protos_perfetto_trace_chrome_lite_gen_headers",
@@ -15310,10 +14982,6 @@ cc_library_static {
":perfetto_protos_perfetto_ipc_ipc_gen",
":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
":perfetto_protos_perfetto_trace_android_cpp_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_common_cpp_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_common_zero_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_cpp_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen",
":perfetto_protos_perfetto_trace_android_zero_gen",
":perfetto_protos_perfetto_trace_chrome_cpp_gen",
":perfetto_protos_perfetto_trace_chrome_zero_gen",
@@ -15439,10 +15107,6 @@ cc_library_static {
"perfetto_protos_perfetto_ipc_ipc_gen_headers",
"perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
"perfetto_protos_perfetto_trace_android_cpp_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_common_cpp_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_common_zero_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_regular_cpp_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen_headers",
"perfetto_protos_perfetto_trace_android_zero_gen_headers",
"perfetto_protos_perfetto_trace_chrome_cpp_gen_headers",
"perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
@@ -15514,10 +15178,6 @@ cc_library_static {
"perfetto_protos_perfetto_ipc_ipc_gen_headers",
"perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
"perfetto_protos_perfetto_trace_android_cpp_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_common_cpp_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_common_zero_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_regular_cpp_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen_headers",
"perfetto_protos_perfetto_trace_android_zero_gen_headers",
"perfetto_protos_perfetto_trace_chrome_cpp_gen_headers",
"perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
@@ -15561,250 +15221,6 @@ cc_library_static {
],
}
-// GN: [//protos/perfetto/trace:non_minimal_source_set, //protos/perfetto/trace/android:winscope_extensions:source_set]
-filegroup {
- name: "perfetto_winscope_filegroup_proto",
- srcs: [
- "protos/perfetto/common/android_energy_consumer_descriptor.proto",
- "protos/perfetto/common/android_log_constants.proto",
- "protos/perfetto/common/builtin_clock.proto",
- "protos/perfetto/common/commit_data_request.proto",
- "protos/perfetto/common/data_source_descriptor.proto",
- "protos/perfetto/common/descriptor.proto",
- "protos/perfetto/common/ftrace_descriptor.proto",
- "protos/perfetto/common/gpu_counter_descriptor.proto",
- "protos/perfetto/common/interceptor_descriptor.proto",
- "protos/perfetto/common/observable_events.proto",
- "protos/perfetto/common/perf_events.proto",
- "protos/perfetto/common/protolog_common.proto",
- "protos/perfetto/common/sys_stats_counters.proto",
- "protos/perfetto/common/trace_stats.proto",
- "protos/perfetto/common/tracing_service_capabilities.proto",
- "protos/perfetto/common/tracing_service_state.proto",
- "protos/perfetto/common/track_event_descriptor.proto",
- "protos/perfetto/config/android/android_game_intervention_list_config.proto",
- "protos/perfetto/config/android/android_input_event_config.proto",
- "protos/perfetto/config/android/android_log_config.proto",
- "protos/perfetto/config/android/android_polled_state_config.proto",
- "protos/perfetto/config/android/android_sdk_sysprop_guard_config.proto",
- "protos/perfetto/config/android/android_system_property_config.proto",
- "protos/perfetto/config/android/network_trace_config.proto",
- "protos/perfetto/config/android/packages_list_config.proto",
- "protos/perfetto/config/android/pixel_modem_config.proto",
- "protos/perfetto/config/android/protolog_config.proto",
- "protos/perfetto/config/android/surfaceflinger_layers_config.proto",
- "protos/perfetto/config/android/surfaceflinger_transactions_config.proto",
- "protos/perfetto/config/chrome/chrome_config.proto",
- "protos/perfetto/config/chrome/scenario_config.proto",
- "protos/perfetto/config/chrome/v8_config.proto",
- "protos/perfetto/config/data_source_config.proto",
- "protos/perfetto/config/etw/etw_config.proto",
- "protos/perfetto/config/ftrace/ftrace_config.proto",
- "protos/perfetto/config/gpu/gpu_counter_config.proto",
- "protos/perfetto/config/gpu/vulkan_memory_config.proto",
- "protos/perfetto/config/inode_file/inode_file_config.proto",
- "protos/perfetto/config/interceptor_config.proto",
- "protos/perfetto/config/interceptors/console_config.proto",
- "protos/perfetto/config/power/android_power_config.proto",
- "protos/perfetto/config/process_stats/process_stats_config.proto",
- "protos/perfetto/config/profiling/heapprofd_config.proto",
- "protos/perfetto/config/profiling/java_hprof_config.proto",
- "protos/perfetto/config/profiling/perf_event_config.proto",
- "protos/perfetto/config/statsd/atom_ids.proto",
- "protos/perfetto/config/statsd/statsd_tracing_config.proto",
- "protos/perfetto/config/stress_test_config.proto",
- "protos/perfetto/config/sys_stats/sys_stats_config.proto",
- "protos/perfetto/config/system_info/system_info.proto",
- "protos/perfetto/config/test_config.proto",
- "protos/perfetto/config/trace_config.proto",
- "protos/perfetto/config/track_event/track_event_config.proto",
- "protos/perfetto/trace/android/android_game_intervention_list.proto",
- "protos/perfetto/trace/android/android_input_event.proto",
- "protos/perfetto/trace/android/android_log.proto",
- "protos/perfetto/trace/android/android_system_property.proto",
- "protos/perfetto/trace/android/camera_event.proto",
- "protos/perfetto/trace/android/frame_timeline_event.proto",
- "protos/perfetto/trace/android/gpu_mem_event.proto",
- "protos/perfetto/trace/android/graphics/pixelformat.proto",
- "protos/perfetto/trace/android/graphics/point.proto",
- "protos/perfetto/trace/android/graphics/rect.proto",
- "protos/perfetto/trace/android/graphics_frame_event.proto",
- "protos/perfetto/trace/android/initial_display_state.proto",
- "protos/perfetto/trace/android/inputmethodeditor.proto",
- "protos/perfetto/trace/android/inputmethodservice/inputmethodservice.proto",
- "protos/perfetto/trace/android/inputmethodservice/softinputwindow.proto",
- "protos/perfetto/trace/android/network_trace.proto",
- "protos/perfetto/trace/android/packages_list.proto",
- "protos/perfetto/trace/android/pixel_modem_events.proto",
- "protos/perfetto/trace/android/protolog.proto",
- "protos/perfetto/trace/android/server/inputmethod/inputmethodmanagerservice.proto",
- "protos/perfetto/trace/android/shell_transition.proto",
- "protos/perfetto/trace/android/surfaceflinger_common.proto",
- "protos/perfetto/trace/android/surfaceflinger_layers.proto",
- "protos/perfetto/trace/android/surfaceflinger_transactions.proto",
- "protos/perfetto/trace/android/typedef.proto",
- "protos/perfetto/trace/android/view/display.proto",
- "protos/perfetto/trace/android/view/displaycutout.proto",
- "protos/perfetto/trace/android/view/imefocuscontroller.proto",
- "protos/perfetto/trace/android/view/imeinsetssourceconsumer.proto",
- "protos/perfetto/trace/android/view/inputmethod/editorinfo.proto",
- "protos/perfetto/trace/android/view/inputmethod/inputconnection.proto",
- "protos/perfetto/trace/android/view/inputmethod/inputmethodmanager.proto",
- "protos/perfetto/trace/android/view/insetsanimationcontrolimpl.proto",
- "protos/perfetto/trace/android/view/insetscontroller.proto",
- "protos/perfetto/trace/android/view/insetssource.proto",
- "protos/perfetto/trace/android/view/insetssourceconsumer.proto",
- "protos/perfetto/trace/android/view/insetssourcecontrol.proto",
- "protos/perfetto/trace/android/view/insetsstate.proto",
- "protos/perfetto/trace/android/view/surfacecontrol.proto",
- "protos/perfetto/trace/android/view/viewrootimpl.proto",
- "protos/perfetto/trace/android/view/windowlayoutparams.proto",
- "protos/perfetto/trace/android/winscope_extensions.proto",
- "protos/perfetto/trace/android/winscope_extensions_impl.proto",
- "protos/perfetto/trace/chrome/chrome_benchmark_metadata.proto",
- "protos/perfetto/trace/chrome/chrome_metadata.proto",
- "protos/perfetto/trace/chrome/chrome_trace_event.proto",
- "protos/perfetto/trace/chrome/chrome_trigger.proto",
- "protos/perfetto/trace/chrome/v8.proto",
- "protos/perfetto/trace/clock_snapshot.proto",
- "protos/perfetto/trace/etw/etw.proto",
- "protos/perfetto/trace/etw/etw_event.proto",
- "protos/perfetto/trace/etw/etw_event_bundle.proto",
- "protos/perfetto/trace/extension_descriptor.proto",
- "protos/perfetto/trace/filesystem/inode_file_map.proto",
- "protos/perfetto/trace/ftrace/android_fs.proto",
- "protos/perfetto/trace/ftrace/binder.proto",
- "protos/perfetto/trace/ftrace/block.proto",
- "protos/perfetto/trace/ftrace/cgroup.proto",
- "protos/perfetto/trace/ftrace/clk.proto",
- "protos/perfetto/trace/ftrace/cma.proto",
- "protos/perfetto/trace/ftrace/compaction.proto",
- "protos/perfetto/trace/ftrace/cpuhp.proto",
- "protos/perfetto/trace/ftrace/cros_ec.proto",
- "protos/perfetto/trace/ftrace/dma_fence.proto",
- "protos/perfetto/trace/ftrace/dmabuf_heap.proto",
- "protos/perfetto/trace/ftrace/dpu.proto",
- "protos/perfetto/trace/ftrace/drm.proto",
- "protos/perfetto/trace/ftrace/ext4.proto",
- "protos/perfetto/trace/ftrace/f2fs.proto",
- "protos/perfetto/trace/ftrace/fastrpc.proto",
- "protos/perfetto/trace/ftrace/fence.proto",
- "protos/perfetto/trace/ftrace/filemap.proto",
- "protos/perfetto/trace/ftrace/ftrace.proto",
- "protos/perfetto/trace/ftrace/ftrace_event.proto",
- "protos/perfetto/trace/ftrace/ftrace_event_bundle.proto",
- "protos/perfetto/trace/ftrace/ftrace_stats.proto",
- "protos/perfetto/trace/ftrace/g2d.proto",
- "protos/perfetto/trace/ftrace/generic.proto",
- "protos/perfetto/trace/ftrace/gpu_mem.proto",
- "protos/perfetto/trace/ftrace/gpu_scheduler.proto",
- "protos/perfetto/trace/ftrace/hyp.proto",
- "protos/perfetto/trace/ftrace/i2c.proto",
- "protos/perfetto/trace/ftrace/ion.proto",
- "protos/perfetto/trace/ftrace/ipi.proto",
- "protos/perfetto/trace/ftrace/irq.proto",
- "protos/perfetto/trace/ftrace/kmem.proto",
- "protos/perfetto/trace/ftrace/kvm.proto",
- "protos/perfetto/trace/ftrace/lowmemorykiller.proto",
- "protos/perfetto/trace/ftrace/lwis.proto",
- "protos/perfetto/trace/ftrace/mali.proto",
- "protos/perfetto/trace/ftrace/mdss.proto",
- "protos/perfetto/trace/ftrace/mm_event.proto",
- "protos/perfetto/trace/ftrace/net.proto",
- "protos/perfetto/trace/ftrace/oom.proto",
- "protos/perfetto/trace/ftrace/panel.proto",
- "protos/perfetto/trace/ftrace/perf_trace_counters.proto",
- "protos/perfetto/trace/ftrace/power.proto",
- "protos/perfetto/trace/ftrace/printk.proto",
- "protos/perfetto/trace/ftrace/raw_syscalls.proto",
- "protos/perfetto/trace/ftrace/regulator.proto",
- "protos/perfetto/trace/ftrace/rpm.proto",
- "protos/perfetto/trace/ftrace/samsung.proto",
- "protos/perfetto/trace/ftrace/sched.proto",
- "protos/perfetto/trace/ftrace/scm.proto",
- "protos/perfetto/trace/ftrace/sde.proto",
- "protos/perfetto/trace/ftrace/signal.proto",
- "protos/perfetto/trace/ftrace/skb.proto",
- "protos/perfetto/trace/ftrace/sock.proto",
- "protos/perfetto/trace/ftrace/sync.proto",
- "protos/perfetto/trace/ftrace/synthetic.proto",
- "protos/perfetto/trace/ftrace/systrace.proto",
- "protos/perfetto/trace/ftrace/task.proto",
- "protos/perfetto/trace/ftrace/tcp.proto",
- "protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
- "protos/perfetto/trace/ftrace/thermal.proto",
- "protos/perfetto/trace/ftrace/trusty.proto",
- "protos/perfetto/trace/ftrace/ufs.proto",
- "protos/perfetto/trace/ftrace/v4l2.proto",
- "protos/perfetto/trace/ftrace/virtio_gpu.proto",
- "protos/perfetto/trace/ftrace/virtio_video.proto",
- "protos/perfetto/trace/ftrace/vmscan.proto",
- "protos/perfetto/trace/ftrace/workqueue.proto",
- "protos/perfetto/trace/gpu/gpu_counter_event.proto",
- "protos/perfetto/trace/gpu/gpu_log.proto",
- "protos/perfetto/trace/gpu/gpu_render_stage_event.proto",
- "protos/perfetto/trace/gpu/vulkan_api_event.proto",
- "protos/perfetto/trace/gpu/vulkan_memory_event.proto",
- "protos/perfetto/trace/interned_data/interned_data.proto",
- "protos/perfetto/trace/memory_graph.proto",
- "protos/perfetto/trace/perfetto/perfetto_metatrace.proto",
- "protos/perfetto/trace/perfetto/tracing_service_event.proto",
- "protos/perfetto/trace/power/android_energy_estimation_breakdown.proto",
- "protos/perfetto/trace/power/android_entity_state_residency.proto",
- "protos/perfetto/trace/power/battery_counters.proto",
- "protos/perfetto/trace/power/power_rails.proto",
- "protos/perfetto/trace/profiling/deobfuscation.proto",
- "protos/perfetto/trace/profiling/heap_graph.proto",
- "protos/perfetto/trace/profiling/profile_common.proto",
- "protos/perfetto/trace/profiling/profile_packet.proto",
- "protos/perfetto/trace/profiling/smaps.proto",
- "protos/perfetto/trace/ps/process_stats.proto",
- "protos/perfetto/trace/ps/process_tree.proto",
- "protos/perfetto/trace/remote_clock_sync.proto",
- "protos/perfetto/trace/statsd/statsd_atom.proto",
- "protos/perfetto/trace/sys_stats/sys_stats.proto",
- "protos/perfetto/trace/system_info.proto",
- "protos/perfetto/trace/system_info/cpu_info.proto",
- "protos/perfetto/trace/test_event.proto",
- "protos/perfetto/trace/test_extensions.proto",
- "protos/perfetto/trace/trace.proto",
- "protos/perfetto/trace/trace_packet.proto",
- "protos/perfetto/trace/trace_packet_defaults.proto",
- "protos/perfetto/trace/trace_uuid.proto",
- "protos/perfetto/trace/track_event/chrome_active_processes.proto",
- "protos/perfetto/trace/track_event/chrome_application_state_info.proto",
- "protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.proto",
- "protos/perfetto/trace/track_event/chrome_content_settings_event_info.proto",
- "protos/perfetto/trace/track_event/chrome_frame_reporter.proto",
- "protos/perfetto/trace/track_event/chrome_histogram_sample.proto",
- "protos/perfetto/trace/track_event/chrome_keyed_service.proto",
- "protos/perfetto/trace/track_event/chrome_latency_info.proto",
- "protos/perfetto/trace/track_event/chrome_legacy_ipc.proto",
- "protos/perfetto/trace/track_event/chrome_message_pump.proto",
- "protos/perfetto/trace/track_event/chrome_mojo_event_info.proto",
- "protos/perfetto/trace/track_event/chrome_process_descriptor.proto",
- "protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.proto",
- "protos/perfetto/trace/track_event/chrome_thread_descriptor.proto",
- "protos/perfetto/trace/track_event/chrome_user_event.proto",
- "protos/perfetto/trace/track_event/chrome_window_handle_event_info.proto",
- "protos/perfetto/trace/track_event/counter_descriptor.proto",
- "protos/perfetto/trace/track_event/debug_annotation.proto",
- "protos/perfetto/trace/track_event/log_message.proto",
- "protos/perfetto/trace/track_event/pixel_modem.proto",
- "protos/perfetto/trace/track_event/process_descriptor.proto",
- "protos/perfetto/trace/track_event/range_of_interest.proto",
- "protos/perfetto/trace/track_event/screenshot.proto",
- "protos/perfetto/trace/track_event/source_location.proto",
- "protos/perfetto/trace/track_event/task_execution.proto",
- "protos/perfetto/trace/track_event/thread_descriptor.proto",
- "protos/perfetto/trace/track_event/track_descriptor.proto",
- "protos/perfetto/trace/track_event/track_event.proto",
- "protos/perfetto/trace/translation/translation_table.proto",
- "protos/perfetto/trace/trigger.proto",
- "protos/perfetto/trace/ui_state.proto",
- ],
-}
-
// GN: //src/protozero/protoc_plugin:protozero_plugin
cc_binary_host {
name: "protozero_plugin",
@@ -15865,9 +15281,6 @@ cc_binary {
":perfetto_protos_perfetto_config_system_info_zero_gen",
":perfetto_protos_perfetto_config_track_event_zero_gen",
":perfetto_protos_perfetto_config_zero_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_common_zero_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_extensions_zero_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen",
":perfetto_protos_perfetto_trace_android_zero_gen",
":perfetto_protos_perfetto_trace_chrome_zero_gen",
":perfetto_protos_perfetto_trace_etw_zero_gen",
@@ -15989,9 +15402,6 @@ cc_binary {
"perfetto_protos_perfetto_config_system_info_zero_gen_headers",
"perfetto_protos_perfetto_config_track_event_zero_gen_headers",
"perfetto_protos_perfetto_config_zero_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_common_zero_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_extensions_zero_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen_headers",
"perfetto_protos_perfetto_trace_android_zero_gen_headers",
"perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
"perfetto_protos_perfetto_trace_etw_zero_gen_headers",
@@ -16106,8 +15516,6 @@ cc_binary {
":perfetto_protos_perfetto_config_system_info_zero_gen",
":perfetto_protos_perfetto_config_track_event_zero_gen",
":perfetto_protos_perfetto_config_zero_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_common_zero_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen",
":perfetto_protos_perfetto_trace_android_zero_gen",
":perfetto_protos_perfetto_trace_chrome_zero_gen",
":perfetto_protos_perfetto_trace_etw_zero_gen",
@@ -16183,8 +15591,6 @@ cc_binary {
"perfetto_protos_perfetto_config_system_info_zero_gen_headers",
"perfetto_protos_perfetto_config_track_event_zero_gen_headers",
"perfetto_protos_perfetto_config_zero_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_common_zero_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen_headers",
"perfetto_protos_perfetto_trace_android_zero_gen_headers",
"perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
"perfetto_protos_perfetto_trace_etw_zero_gen_headers",
@@ -16251,9 +15657,6 @@ cc_binary_host {
":perfetto_protos_perfetto_config_system_info_zero_gen",
":perfetto_protos_perfetto_config_track_event_zero_gen",
":perfetto_protos_perfetto_config_zero_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_common_zero_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_extensions_zero_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen",
":perfetto_protos_perfetto_trace_android_zero_gen",
":perfetto_protos_perfetto_trace_chrome_zero_gen",
":perfetto_protos_perfetto_trace_etw_zero_gen",
@@ -16375,9 +15778,6 @@ cc_binary_host {
"perfetto_protos_perfetto_config_system_info_zero_gen_headers",
"perfetto_protos_perfetto_config_track_event_zero_gen_headers",
"perfetto_protos_perfetto_config_zero_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_common_zero_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_extensions_zero_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen_headers",
"perfetto_protos_perfetto_trace_android_zero_gen_headers",
"perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
"perfetto_protos_perfetto_trace_etw_zero_gen_headers",
@@ -16507,8 +15907,6 @@ cc_binary {
":perfetto_protos_perfetto_ipc_cpp_gen",
":perfetto_protos_perfetto_ipc_ipc_gen",
":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_common_zero_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen",
":perfetto_protos_perfetto_trace_android_zero_gen",
":perfetto_protos_perfetto_trace_chrome_zero_gen",
":perfetto_protos_perfetto_trace_etw_zero_gen",
@@ -16608,8 +16006,6 @@ cc_binary {
"perfetto_protos_perfetto_ipc_cpp_gen_headers",
"perfetto_protos_perfetto_ipc_ipc_gen_headers",
"perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_common_zero_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen_headers",
"perfetto_protos_perfetto_trace_android_zero_gen_headers",
"perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
"perfetto_protos_perfetto_trace_etw_zero_gen_headers",
@@ -16712,8 +16108,6 @@ cc_binary {
":perfetto_protos_perfetto_ipc_cpp_gen",
":perfetto_protos_perfetto_ipc_ipc_gen",
":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_common_zero_gen",
- ":perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen",
":perfetto_protos_perfetto_trace_android_zero_gen",
":perfetto_protos_perfetto_trace_chrome_zero_gen",
":perfetto_protos_perfetto_trace_etw_zero_gen",
@@ -16788,8 +16182,6 @@ cc_binary {
"perfetto_protos_perfetto_ipc_cpp_gen_headers",
"perfetto_protos_perfetto_ipc_ipc_gen_headers",
"perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_common_zero_gen_headers",
- "perfetto_protos_perfetto_trace_android_winscope_regular_zero_gen_headers",
"perfetto_protos_perfetto_trace_android_zero_gen_headers",
"perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
"perfetto_protos_perfetto_trace_etw_zero_gen_headers",
@@ -16994,7 +16386,7 @@ license {
gensrcs {
name: "perfetto_trace_javastream_protos",
srcs: [
- ":perfetto_winscope_filegroup_proto",
+ ":perfetto_trace_filegroup_proto",
],
tools: [
"aprotoc",
@@ -17004,7 +16396,7 @@ gensrcs {
cmd: "mkdir -p $(genDir)/$(in) " +
"&& $(location aprotoc) " +
"--plugin=$(location protoc-gen-javastream) " +
- "--javastream_opt=include_filter:perfetto.protos.TracePacket,perfetto.protos.ShellTransition,perfetto.protos.ShellHandlerMappings,perfetto.protos.ProtoLogMessage,perfetto.protos.ProtoLogViewerConfig,perfetto.protos.ShellHandlerMapping,perfetto.protos.ShellHandlerMappings,perfetto.protos.ProtoLogGroup,perfetto.protos.ProtoLogConfig,perfetto.protos.DataSourceConfig,perfetto.protos.InternedString,perfetto.protos.InternedData,perfetto.protos.ProtoLogLevel,perfetto.protos.TestEvent,perfetto.protos.TestEvent.TestPayload,perfetto.protos.TestConfig,perfetto.protos.TestConfig.DummyFields,perfetto.protos.WinscopeExtensionsImpl,perfetto.protos.InputMethodClientsTraceProto,perfetto.protos.InputMethodManagerServiceTraceProto,perfetto.protos.InputMethodServiceTraceProto " +
+ "--javastream_opt=include_filter:perfetto.protos.TracePacket,perfetto.protos.ShellTransition,perfetto.protos.ShellHandlerMappings,perfetto.protos.ProtoLogMessage,perfetto.protos.ProtoLogViewerConfig,perfetto.protos.ShellHandlerMapping,perfetto.protos.ShellHandlerMappings,perfetto.protos.ProtoLogGroup,perfetto.protos.ProtoLogConfig,perfetto.protos.DataSourceConfig,perfetto.protos.InternedString,perfetto.protos.InternedData,perfetto.protos.ProtoLogLevel,perfetto.protos.TestEvent,perfetto.protos.TestEvent.TestPayload,perfetto.protos.TestConfig,perfetto.protos.TestConfig.DummyFields " +
"--javastream_out=$(genDir)/$(in) " +
"-Iexternal/protobuf/src " +
"-Iexternal/perfetto " +
diff --git a/Android.bp.extras b/Android.bp.extras
index 75d3a81b7..3ebf51e72 100644
--- a/Android.bp.extras
+++ b/Android.bp.extras
@@ -175,7 +175,7 @@ license {
gensrcs {
name: "perfetto_trace_javastream_protos",
srcs: [
- ":perfetto_winscope_filegroup_proto",
+ ":perfetto_trace_filegroup_proto",
],
tools: [
"aprotoc",
@@ -185,7 +185,7 @@ gensrcs {
cmd: "mkdir -p $(genDir)/$(in) " +
"&& $(location aprotoc) " +
"--plugin=$(location protoc-gen-javastream) " +
- "--javastream_opt=include_filter:perfetto.protos.TracePacket,perfetto.protos.ShellTransition,perfetto.protos.ShellHandlerMappings,perfetto.protos.ProtoLogMessage,perfetto.protos.ProtoLogViewerConfig,perfetto.protos.ShellHandlerMapping,perfetto.protos.ShellHandlerMappings,perfetto.protos.ProtoLogGroup,perfetto.protos.ProtoLogConfig,perfetto.protos.DataSourceConfig,perfetto.protos.InternedString,perfetto.protos.InternedData,perfetto.protos.ProtoLogLevel,perfetto.protos.TestEvent,perfetto.protos.TestEvent.TestPayload,perfetto.protos.TestConfig,perfetto.protos.TestConfig.DummyFields,perfetto.protos.WinscopeExtensionsImpl,perfetto.protos.InputMethodClientsTraceProto,perfetto.protos.InputMethodManagerServiceTraceProto,perfetto.protos.InputMethodServiceTraceProto " +
+ "--javastream_opt=include_filter:perfetto.protos.TracePacket,perfetto.protos.ShellTransition,perfetto.protos.ShellHandlerMappings,perfetto.protos.ProtoLogMessage,perfetto.protos.ProtoLogViewerConfig,perfetto.protos.ShellHandlerMapping,perfetto.protos.ShellHandlerMappings,perfetto.protos.ProtoLogGroup,perfetto.protos.ProtoLogConfig,perfetto.protos.DataSourceConfig,perfetto.protos.InternedString,perfetto.protos.InternedData,perfetto.protos.ProtoLogLevel,perfetto.protos.TestEvent,perfetto.protos.TestEvent.TestPayload,perfetto.protos.TestConfig,perfetto.protos.TestConfig.DummyFields " +
"--javastream_out=$(genDir)/$(in) " +
"-Iexternal/protobuf/src " +
"-Iexternal/perfetto " +
diff --git a/BUILD b/BUILD
index 0b3a5822e..c6408f179 100644
--- a/BUILD
+++ b/BUILD
@@ -318,9 +318,6 @@ perfetto_cc_library(
":protos_perfetto_config_system_info_zero",
":protos_perfetto_config_track_event_zero",
":protos_perfetto_config_zero",
- ":protos_perfetto_trace_android_winscope_common_zero",
- ":protos_perfetto_trace_android_winscope_extensions_zero",
- ":protos_perfetto_trace_android_winscope_regular_zero",
":protos_perfetto_trace_android_zero",
":protos_perfetto_trace_chrome_zero",
":protos_perfetto_trace_etw_zero",
@@ -409,8 +406,6 @@ perfetto_cc_binary(
":protos_perfetto_config_track_event_cpp",
":protos_perfetto_config_track_event_zero",
":protos_perfetto_config_zero",
- ":protos_perfetto_trace_android_winscope_common_zero",
- ":protos_perfetto_trace_android_winscope_regular_zero",
":protos_perfetto_trace_android_zero",
":protos_perfetto_trace_chrome_zero",
":protos_perfetto_trace_etw_zero",
@@ -527,8 +522,6 @@ perfetto_cc_library(
":protos_perfetto_config_zero",
":protos_perfetto_ipc_cpp",
":protos_perfetto_ipc_ipc",
- ":protos_perfetto_trace_android_winscope_common_zero",
- ":protos_perfetto_trace_android_winscope_regular_zero",
":protos_perfetto_trace_android_zero",
":protos_perfetto_trace_chrome_zero",
":protos_perfetto_trace_etw_zero",
@@ -3608,8 +3601,6 @@ perfetto_proto_library(
":protos_perfetto_config_system_info_protos",
":protos_perfetto_config_track_event_protos",
":protos_perfetto_trace_android_protos",
- ":protos_perfetto_trace_android_winscope_common_protos",
- ":protos_perfetto_trace_android_winscope_regular_protos",
":protos_perfetto_trace_chrome_protos",
":protos_perfetto_trace_etw_protos",
":protos_perfetto_trace_filesystem_protos",
@@ -4635,98 +4626,23 @@ perfetto_proto_library(
"protos/perfetto/trace/android/network_trace.proto",
"protos/perfetto/trace/android/packages_list.proto",
"protos/perfetto/trace/android/pixel_modem_events.proto",
+ "protos/perfetto/trace/android/protolog.proto",
+ "protos/perfetto/trace/android/shell_transition.proto",
+ "protos/perfetto/trace/android/surfaceflinger_common.proto",
+ "protos/perfetto/trace/android/surfaceflinger_layers.proto",
+ "protos/perfetto/trace/android/surfaceflinger_transactions.proto",
],
visibility = [
PERFETTO_CONFIG.proto_library_visibility,
],
deps = [
":protos_perfetto_common_protos",
- ":protos_perfetto_trace_android_winscope_common_protos",
- ":protos_perfetto_trace_android_winscope_regular_protos",
- ],
-)
-
-# GN target: //protos/perfetto/trace/android:winscope_common:source_set
-perfetto_proto_library(
- name = "protos_perfetto_trace_android_winscope_common_protos",
- srcs = [
- "protos/perfetto/trace/android/graphics/point.proto",
- "protos/perfetto/trace/android/graphics/rect.proto",
- "protos/perfetto/trace/android/winscope_extensions.proto",
- ],
- visibility = [
- PERFETTO_CONFIG.proto_library_visibility,
- ],
-)
-
-# GN target: //protos/perfetto/trace/android:winscope_common:zero
-perfetto_cc_protozero_library(
- name = "protos_perfetto_trace_android_winscope_common_zero",
- deps = [
- ":protos_perfetto_trace_android_winscope_common_protos",
- ],
-)
-
-# GN target: //protos/perfetto/trace/android:winscope_descriptor
-perfetto_proto_descriptor(
- name = "protos_perfetto_trace_android_winscope_descriptor",
- deps = [
- ":protos_perfetto_trace_android_winscope_extensions_protos",
- ":protos_perfetto_trace_android_winscope_regular_protos",
- ],
- outs = [
- "protos_perfetto_trace_android_winscope_descriptor.bin",
],
)
-# GN target: //protos/perfetto/trace/android:winscope_extensions:source_set
+# GN target: //protos/perfetto/trace/android:winscope_deps
perfetto_proto_library(
- name = "protos_perfetto_trace_android_winscope_extensions_protos",
- srcs = [
- "protos/perfetto/trace/android/graphics/pixelformat.proto",
- "protos/perfetto/trace/android/inputmethodeditor.proto",
- "protos/perfetto/trace/android/inputmethodservice/inputmethodservice.proto",
- "protos/perfetto/trace/android/inputmethodservice/softinputwindow.proto",
- "protos/perfetto/trace/android/server/inputmethod/inputmethodmanagerservice.proto",
- "protos/perfetto/trace/android/typedef.proto",
- "protos/perfetto/trace/android/view/display.proto",
- "protos/perfetto/trace/android/view/displaycutout.proto",
- "protos/perfetto/trace/android/view/imefocuscontroller.proto",
- "protos/perfetto/trace/android/view/imeinsetssourceconsumer.proto",
- "protos/perfetto/trace/android/view/inputmethod/editorinfo.proto",
- "protos/perfetto/trace/android/view/inputmethod/inputconnection.proto",
- "protos/perfetto/trace/android/view/inputmethod/inputmethodmanager.proto",
- "protos/perfetto/trace/android/view/insetsanimationcontrolimpl.proto",
- "protos/perfetto/trace/android/view/insetscontroller.proto",
- "protos/perfetto/trace/android/view/insetssource.proto",
- "protos/perfetto/trace/android/view/insetssourceconsumer.proto",
- "protos/perfetto/trace/android/view/insetssourcecontrol.proto",
- "protos/perfetto/trace/android/view/insetsstate.proto",
- "protos/perfetto/trace/android/view/surfacecontrol.proto",
- "protos/perfetto/trace/android/view/viewrootimpl.proto",
- "protos/perfetto/trace/android/view/windowlayoutparams.proto",
- "protos/perfetto/trace/android/winscope_extensions_impl.proto",
- ],
- visibility = [
- PERFETTO_CONFIG.proto_library_visibility,
- ],
- deps = [
- ":protos_perfetto_trace_android_winscope_common_protos",
- ] + PERFETTO_CONFIG.deps.protobuf_descriptor_proto,
-)
-
-# GN target: //protos/perfetto/trace/android:winscope_extensions:zero
-perfetto_cc_protozero_library(
- name = "protos_perfetto_trace_android_winscope_extensions_zero",
- deps = [
- ":protos_perfetto_trace_android_winscope_common_zero",
- ":protos_perfetto_trace_android_winscope_extensions_protos",
- ],
-)
-
-# GN target: //protos/perfetto/trace/android:winscope_regular:source_set
-perfetto_proto_library(
- name = "protos_perfetto_trace_android_winscope_regular_protos",
+ name = "protos_perfetto_trace_android_winscope_deps_protos",
srcs = [
"protos/perfetto/trace/android/protolog.proto",
"protos/perfetto/trace/android/shell_transition.proto",
@@ -4739,17 +4655,17 @@ perfetto_proto_library(
],
deps = [
":protos_perfetto_common_protos",
- ":protos_perfetto_trace_android_winscope_common_protos",
],
)
-# GN target: //protos/perfetto/trace/android:winscope_regular:zero
-perfetto_cc_protozero_library(
- name = "protos_perfetto_trace_android_winscope_regular_zero",
+# GN target: //protos/perfetto/trace/android:winscope_descriptor
+perfetto_proto_descriptor(
+ name = "protos_perfetto_trace_android_winscope_descriptor",
deps = [
- ":protos_perfetto_common_zero",
- ":protos_perfetto_trace_android_winscope_common_zero",
- ":protos_perfetto_trace_android_winscope_regular_protos",
+ ":protos_perfetto_trace_android_winscope_deps_protos",
+ ],
+ outs = [
+ "protos_perfetto_trace_android_winscope_descriptor.bin",
],
)
@@ -4759,8 +4675,6 @@ perfetto_cc_protozero_library(
deps = [
":protos_perfetto_common_zero",
":protos_perfetto_trace_android_protos",
- ":protos_perfetto_trace_android_winscope_common_zero",
- ":protos_perfetto_trace_android_winscope_regular_zero",
],
)
@@ -4963,8 +4877,6 @@ perfetto_proto_library(
deps = [
":protos_perfetto_common_protos",
":protos_perfetto_trace_android_protos",
- ":protos_perfetto_trace_android_winscope_common_protos",
- ":protos_perfetto_trace_android_winscope_regular_protos",
":protos_perfetto_trace_chrome_protos",
":protos_perfetto_trace_gpu_protos",
":protos_perfetto_trace_profiling_protos",
@@ -4977,8 +4889,6 @@ perfetto_cc_protozero_library(
name = "protos_perfetto_trace_interned_data_zero",
deps = [
":protos_perfetto_common_zero",
- ":protos_perfetto_trace_android_winscope_common_zero",
- ":protos_perfetto_trace_android_winscope_regular_zero",
":protos_perfetto_trace_android_zero",
":protos_perfetto_trace_chrome_zero",
":protos_perfetto_trace_gpu_zero",
@@ -5073,8 +4983,6 @@ perfetto_proto_library(
":protos_perfetto_config_system_info_protos",
":protos_perfetto_config_track_event_protos",
":protos_perfetto_trace_android_protos",
- ":protos_perfetto_trace_android_winscope_common_protos",
- ":protos_perfetto_trace_android_winscope_regular_protos",
":protos_perfetto_trace_chrome_protos",
":protos_perfetto_trace_etw_protos",
":protos_perfetto_trace_filesystem_protos",
@@ -5115,8 +5023,6 @@ perfetto_cc_protozero_library(
":protos_perfetto_config_system_info_zero",
":protos_perfetto_config_track_event_zero",
":protos_perfetto_config_zero",
- ":protos_perfetto_trace_android_winscope_common_zero",
- ":protos_perfetto_trace_android_winscope_regular_zero",
":protos_perfetto_trace_android_zero",
":protos_perfetto_trace_chrome_zero",
":protos_perfetto_trace_etw_zero",
@@ -5597,8 +5503,6 @@ perfetto_cc_library(
":protos_perfetto_config_zero",
":protos_perfetto_ipc_cpp",
":protos_perfetto_ipc_ipc",
- ":protos_perfetto_trace_android_winscope_common_zero",
- ":protos_perfetto_trace_android_winscope_regular_zero",
":protos_perfetto_trace_android_zero",
":protos_perfetto_trace_chrome_zero",
":protos_perfetto_trace_etw_zero",
@@ -5691,8 +5595,6 @@ perfetto_cc_binary(
":protos_perfetto_config_zero",
":protos_perfetto_ipc_cpp",
":protos_perfetto_ipc_ipc",
- ":protos_perfetto_trace_android_winscope_common_zero",
- ":protos_perfetto_trace_android_winscope_regular_zero",
":protos_perfetto_trace_android_zero",
":protos_perfetto_trace_chrome_zero",
":protos_perfetto_trace_etw_zero",
@@ -5800,8 +5702,6 @@ perfetto_cc_library(
":protos_perfetto_config_zero",
":protos_perfetto_ipc_cpp",
":protos_perfetto_ipc_ipc",
- ":protos_perfetto_trace_android_winscope_common_zero",
- ":protos_perfetto_trace_android_winscope_regular_zero",
":protos_perfetto_trace_android_zero",
":protos_perfetto_trace_chrome_zero",
":protos_perfetto_trace_etw_zero",
@@ -5935,9 +5835,6 @@ perfetto_cc_library(
":protos_perfetto_config_system_info_zero",
":protos_perfetto_config_track_event_zero",
":protos_perfetto_config_zero",
- ":protos_perfetto_trace_android_winscope_common_zero",
- ":protos_perfetto_trace_android_winscope_extensions_zero",
- ":protos_perfetto_trace_android_winscope_regular_zero",
":protos_perfetto_trace_android_zero",
":protos_perfetto_trace_chrome_zero",
":protos_perfetto_trace_etw_zero",
@@ -6097,9 +5994,6 @@ perfetto_cc_binary(
":protos_perfetto_config_system_info_zero",
":protos_perfetto_config_track_event_zero",
":protos_perfetto_config_zero",
- ":protos_perfetto_trace_android_winscope_common_zero",
- ":protos_perfetto_trace_android_winscope_extensions_zero",
- ":protos_perfetto_trace_android_winscope_regular_zero",
":protos_perfetto_trace_android_zero",
":protos_perfetto_trace_chrome_zero",
":protos_perfetto_trace_etw_zero",
@@ -6188,8 +6082,6 @@ perfetto_cc_library(
":protos_perfetto_config_system_info_zero",
":protos_perfetto_config_track_event_zero",
":protos_perfetto_config_zero",
- ":protos_perfetto_trace_android_winscope_common_zero",
- ":protos_perfetto_trace_android_winscope_regular_zero",
":protos_perfetto_trace_android_zero",
":protos_perfetto_trace_chrome_zero",
":protos_perfetto_trace_etw_zero",
@@ -6330,9 +6222,6 @@ perfetto_cc_binary(
":protos_perfetto_config_system_info_zero",
":protos_perfetto_config_track_event_zero",
":protos_perfetto_config_zero",
- ":protos_perfetto_trace_android_winscope_common_zero",
- ":protos_perfetto_trace_android_winscope_extensions_zero",
- ":protos_perfetto_trace_android_winscope_regular_zero",
":protos_perfetto_trace_android_zero",
":protos_perfetto_trace_chrome_zero",
":protos_perfetto_trace_etw_zero",
diff --git a/protos/perfetto/trace/android/BUILD.gn b/protos/perfetto/trace/android/BUILD.gn
index ae9ccfe55..1910078f3 100644
--- a/protos/perfetto/trace/android/BUILD.gn
+++ b/protos/perfetto/trace/android/BUILD.gn
@@ -15,7 +15,7 @@
import("../../../../gn/proto_library.gni")
perfetto_proto_library("@TYPE@") {
- deps = [ "../../common:@TYPE@", ":winscope_regular:@TYPE@" ]
+ deps = [ "../../common:@TYPE@" ]
sources = [
"android_game_intervention_list.proto",
@@ -30,24 +30,6 @@ perfetto_proto_library("@TYPE@") {
"network_trace.proto",
"packages_list.proto",
"pixel_modem_events.proto",
- ]
-}
-
-perfetto_proto_library("winscope_common:@TYPE@") {
- sources = [
- "graphics/point.proto",
- "graphics/rect.proto",
- "winscope_extensions.proto",
- ]
-}
-
-# Winscope messages added to TracePacket directly
-perfetto_proto_library("winscope_regular:@TYPE@") {
- deps = [
- "../../common:@TYPE@",
- ":winscope_common:@TYPE@",
- ]
- sources = [
"protolog.proto",
"shell_transition.proto",
"surfaceflinger_common.proto",
@@ -56,44 +38,21 @@ perfetto_proto_library("winscope_regular:@TYPE@") {
]
}
-# Winscope messages added to TracePacket as extensions
-perfetto_proto_library("winscope_extensions:@TYPE@") {
- deps = [ ":winscope_common:@TYPE@" ]
+perfetto_proto_library("winscope_deps") {
+ proto_generators = [ "source_set" ]
+ deps = [ "../../common:@TYPE@" ]
sources = [
- "inputmethodeditor.proto",
- "graphics/pixelformat.proto",
- "inputmethodservice/inputmethodservice.proto",
- "inputmethodservice/softinputwindow.proto",
- "server/inputmethod/inputmethodmanagerservice.proto",
- "typedef.proto",
- "view/inputmethod/editorinfo.proto",
- "view/inputmethod/inputconnection.proto",
- "view/inputmethod/inputmethodmanager.proto",
- "view/display.proto",
- "view/displaycutout.proto",
- "view/imefocuscontroller.proto",
- "view/imeinsetssourceconsumer.proto",
- "view/insetsanimationcontrolimpl.proto",
- "view/insetscontroller.proto",
- "view/insetssource.proto",
- "view/insetssourceconsumer.proto",
- "view/insetssourcecontrol.proto",
- "view/insetsstate.proto",
- "view/surfacecontrol.proto",
- "view/viewrootimpl.proto",
- "view/windowlayoutparams.proto",
- "winscope_extensions_impl.proto",
+ "protolog.proto",
+ "shell_transition.proto",
+ "surfaceflinger_common.proto",
+ "surfaceflinger_layers.proto",
+ "surfaceflinger_transactions.proto",
]
- import_dirs = [ "${perfetto_protobuf_src_dir}" ]
}
perfetto_proto_library("winscope_descriptor") {
proto_generators = [ "descriptor" ]
generate_descriptor = "winscope.descriptor"
- deps = [
- ":winscope_regular:source_set",
- ":winscope_extensions:source_set",
- ]
+ deps = [ ":winscope_deps" ]
sources = [ "winscope.proto" ]
- import_dirs = [ "${perfetto_protobuf_src_dir}" ]
}
diff --git a/protos/perfetto/trace/android/graphics/pixelformat.proto b/protos/perfetto/trace/android/graphics/pixelformat.proto
deleted file mode 100644
index 71dd94819..000000000
--- a/protos/perfetto/trace/android/graphics/pixelformat.proto
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-syntax = "proto2";
-
-package perfetto.protos;
-
-message PixelFormatProto {
- enum Format {
- UNKNOWN = 0;
- TRANSLUCENT = -3;
- TRANSPARENT = -2;
- OPAQUE = -1;
- RGBA_8888 = 1;
- RGBX_8888 = 2;
- RGB_888 = 3;
- RGB_565 = 4;
- RGBA_F16 = 0x16;
- RGBA_1010102 = 0x2B;
- }
-}
diff --git a/protos/perfetto/trace/android/graphics/point.proto b/protos/perfetto/trace/android/graphics/point.proto
deleted file mode 100644
index cd25fa361..000000000
--- a/protos/perfetto/trace/android/graphics/point.proto
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-syntax = "proto2";
-
-package perfetto.protos;
-
-message PointProto {
- optional int32 x = 1;
- optional int32 y = 2;
-}
diff --git a/protos/perfetto/trace/android/graphics/rect.proto b/protos/perfetto/trace/android/graphics/rect.proto
deleted file mode 100644
index 337a4f171..000000000
--- a/protos/perfetto/trace/android/graphics/rect.proto
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-syntax = "proto2";
-
-package perfetto.protos;
-
-message RectProto {
- optional int32 left = 1;
- optional int32 top = 2;
- optional int32 right = 3;
- optional int32 bottom = 4;
-}
diff --git a/protos/perfetto/trace/android/inputmethodeditor.proto b/protos/perfetto/trace/android/inputmethodeditor.proto
deleted file mode 100644
index 29aeef157..000000000
--- a/protos/perfetto/trace/android/inputmethodeditor.proto
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-syntax = "proto2";
-
-package perfetto.protos;
-
-import "protos/perfetto/trace/android/inputmethodservice/inputmethodservice.proto";
-import "protos/perfetto/trace/android/server/inputmethod/inputmethodmanagerservice.proto";
-import "protos/perfetto/trace/android/view/inputmethod/inputmethodmanager.proto";
-import "protos/perfetto/trace/android/view/viewrootimpl.proto";
-import "protos/perfetto/trace/android/view/insetscontroller.proto";
-import "protos/perfetto/trace/android/view/imeinsetssourceconsumer.proto";
-import "protos/perfetto/trace/android/view/inputmethod/editorinfo.proto";
-import "protos/perfetto/trace/android/view/inputmethod/inputconnection.proto";
-import "protos/perfetto/trace/android/view/imefocuscontroller.proto";
-
-// One dump entry for clients that use InputMethod
-message InputMethodClientsTraceProto {
- // elapsed realtime in nanos since boot of when this entry was logged
- optional fixed64 elapsed_realtime_nanos = 1;
-
- // where the trace originated
- optional string where = 2;
-
- optional ClientSideProto client = 3;
-
- // groups together the dump from ime related client side classes
- message ClientSideProto {
- optional int32 display_id = 1;
- optional InputMethodManagerProto input_method_manager = 2;
- optional ViewRootImplProto view_root_impl = 3;
- optional InsetsControllerProto insets_controller = 4;
- optional ImeInsetsSourceConsumerProto ime_insets_source_consumer = 5;
- optional EditorInfoProto editor_info = 6;
- optional ImeFocusControllerProto ime_focus_controller = 7;
- optional InputConnectionProto input_connection = 8;
- optional InputConnectionCallProto input_connection_call = 9;
- }
-}
-
-// One dump entry for InputMethodService
-message InputMethodServiceTraceProto {
- // elapsed realtime in nanos since boot of when this entry was logged
- optional fixed64 elapsed_realtime_nanos = 1;
-
- // where the trace originated
- optional string where = 2;
-
- optional InputMethodServiceProto input_method_service = 3;
-}
-
-// One dump entry for InputMethodManagerService
-message InputMethodManagerServiceTraceProto {
- // elapsed realtime in nanos since boot of when this entry was logged
- optional fixed64 elapsed_realtime_nanos = 1;
-
- // where the trace originated
- optional string where = 2;
-
- optional InputMethodManagerServiceProto input_method_manager_service = 3;
-} \ No newline at end of file
diff --git a/protos/perfetto/trace/android/inputmethodservice/inputmethodservice.proto b/protos/perfetto/trace/android/inputmethodservice/inputmethodservice.proto
deleted file mode 100644
index 982dedb6f..000000000
--- a/protos/perfetto/trace/android/inputmethodservice/inputmethodservice.proto
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-syntax = "proto2";
-
-import "protos/perfetto/trace/android/inputmethodservice/softinputwindow.proto";
-import "protos/perfetto/trace/android/view/inputmethod/editorinfo.proto";
-import "protos/perfetto/trace/android/view/inputmethod/inputconnection.proto";
-
-package perfetto.protos;
-
-message InputMethodServiceProto {
- optional SoftInputWindowProto soft_input_window = 1;
- optional bool views_created = 2;
- optional bool decor_view_visible = 3;
- optional bool decor_view_was_visible = 4;
- optional bool window_visible = 5;
- optional bool in_show_window = 6;
- optional string configuration = 7;
- optional string token = 8;
- optional string input_binding = 9;
- optional bool input_started = 10;
- optional bool input_view_started = 11;
- optional bool candidates_view_started = 12;
- optional EditorInfoProto input_editor_info = 13;
- optional bool show_input_requested = 14;
- optional bool last_show_input_requested = 15;
- // can_pre_render
- reserved 16;
- // is_pre_rendered
- reserved 17;
- optional int32 show_input_flags = 18;
- optional int32 candidates_visibility = 19;
- optional bool fullscreen_applied = 20;
- optional bool is_fullscreen = 21;
- optional bool extract_view_hidden = 22;
- optional int32 extracted_token = 23;
- optional bool is_input_view_shown = 24;
- optional int32 status_icon = 25;
- optional InsetsProto last_computed_insets = 26;
- optional string settings_observer = 27;
- optional InputConnectionCallProto input_connection_call = 28;
-
- message InsetsProto {
- optional int32 content_top_insets = 1;
- optional int32 visible_top_insets = 2;
- optional int32 touchable_insets = 3;
- optional string touchable_region = 4;
- }
-} \ No newline at end of file
diff --git a/protos/perfetto/trace/android/inputmethodservice/softinputwindow.proto b/protos/perfetto/trace/android/inputmethodservice/softinputwindow.proto
deleted file mode 100644
index 1066ea399..000000000
--- a/protos/perfetto/trace/android/inputmethodservice/softinputwindow.proto
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-syntax = "proto2";
-
-package perfetto.protos;
-
-message SoftInputWindowProto {
- // name
- reserved 1;
- // window_type
- reserved 2;
- // gravity
- reserved 3;
- // takes_focus
- reserved 4;
- // bounds
- reserved 5;
- optional int32 window_state = 6;
-} \ No newline at end of file
diff --git a/protos/perfetto/trace/android/server/inputmethod/inputmethodmanagerservice.proto b/protos/perfetto/trace/android/server/inputmethod/inputmethodmanagerservice.proto
deleted file mode 100644
index a9a0d9a7c..000000000
--- a/protos/perfetto/trace/android/server/inputmethod/inputmethodmanagerservice.proto
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-syntax = "proto2";
-
-import "protos/perfetto/trace/android/view/inputmethod/editorinfo.proto";
-
-package perfetto.protos;
-
-message InputMethodManagerServiceProto {
- optional string cur_method_id = 1;
- optional int32 cur_seq = 2;
- optional string cur_client = 3;
- optional string cur_focused_window_name = 4;
- optional string last_ime_target_window_name = 5;
- optional string cur_focused_window_soft_input_mode = 6;
- optional EditorInfoProto cur_attribute = 7;
- optional string cur_id = 8;
- // deprecated show_requested
- reserved 9;
- optional bool show_explicitly_requested = 10;
- optional bool show_forced = 11;
- optional bool input_shown = 12;
- optional bool in_fullscreen_mode = 13;
- optional string cur_token = 14;
- optional int32 cur_token_display_id = 15;
- optional bool system_ready = 16;
- optional int32 last_switch_user_id = 17;
- optional bool have_connection = 18;
- optional bool bound_to_method = 19;
- optional bool is_interactive = 20;
- optional int32 back_disposition = 21;
- optional int32 ime_window_visibility = 22;
- optional bool show_ime_with_hard_keyboard = 23;
- optional bool accessibility_requesting_no_soft_keyboard = 24;
-} \ No newline at end of file
diff --git a/protos/perfetto/trace/android/surfaceflinger_common.proto b/protos/perfetto/trace/android/surfaceflinger_common.proto
index 72f815971..ef27e1125 100644
--- a/protos/perfetto/trace/android/surfaceflinger_common.proto
+++ b/protos/perfetto/trace/android/surfaceflinger_common.proto
@@ -16,8 +16,6 @@
syntax = "proto2";
-import "protos/perfetto/trace/android/graphics/rect.proto";
-
package perfetto.protos;
message RegionProto {
@@ -26,6 +24,13 @@ message RegionProto {
repeated RectProto rect = 2;
}
+message RectProto {
+ optional int32 left = 1;
+ optional int32 top = 2;
+ optional int32 right = 3;
+ optional int32 bottom = 4;
+}
+
message SizeProto {
optional int32 w = 1;
optional int32 h = 2;
diff --git a/protos/perfetto/trace/android/surfaceflinger_layers.proto b/protos/perfetto/trace/android/surfaceflinger_layers.proto
index bdc40d826..6640fa7b0 100644
--- a/protos/perfetto/trace/android/surfaceflinger_layers.proto
+++ b/protos/perfetto/trace/android/surfaceflinger_layers.proto
@@ -19,7 +19,6 @@ syntax = "proto2";
package perfetto.protos;
import "protos/perfetto/trace/android/surfaceflinger_common.proto";
-import "protos/perfetto/trace/android/graphics/rect.proto";
// Message used by Winscope to process legacy trace files.
// Represents a file full of surface flinger trace entries.
diff --git a/protos/perfetto/trace/android/surfaceflinger_transactions.proto b/protos/perfetto/trace/android/surfaceflinger_transactions.proto
index bd128d86b..efc709c16 100644
--- a/protos/perfetto/trace/android/surfaceflinger_transactions.proto
+++ b/protos/perfetto/trace/android/surfaceflinger_transactions.proto
@@ -19,7 +19,6 @@ syntax = "proto2";
package perfetto.protos;
import "protos/perfetto/trace/android/surfaceflinger_common.proto";
-import "protos/perfetto/trace/android/graphics/rect.proto";
// Message used by Winscope to process legacy trace files.
// Represents a file full of surface flinger transactions.
diff --git a/protos/perfetto/trace/android/typedef.proto b/protos/perfetto/trace/android/typedef.proto
deleted file mode 100644
index 495c648e1..000000000
--- a/protos/perfetto/trace/android/typedef.proto
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-syntax = "proto2";
-
-package perfetto.protos;
-
-import "google/protobuf/descriptor.proto";
-
-extend google.protobuf.FieldOptions {
- // Used to specify the IntDef annotation type so that ints
- // can be associated with their string representation
-
- // 60001 is a random field numbers assigned to the custom options
- // numbers between 50000 and 99999 are reserved for internal use within
- // individual organizations
- optional string typedef = 60001;
-}
diff --git a/protos/perfetto/trace/android/view/display.proto b/protos/perfetto/trace/android/view/display.proto
deleted file mode 100644
index 43844c801..000000000
--- a/protos/perfetto/trace/android/view/display.proto
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-syntax = "proto2";
-package perfetto.protos;
-
-message ViewDisplayProto {
- enum ColorMode {
- COLOR_MODE_INVALID = -1;
- // The default or native gamut of the display.
- COLOR_MODE_DEFAULT = 0;
- COLOR_MODE_BT601_625 = 1;
- COLOR_MODE_BT601_625_UNADJUSTED = 2;
- COLOR_MODE_BT601_525 = 3;
- COLOR_MODE_BT601_525_UNADJUSTED = 4;
- COLOR_MODE_BT709 = 5;
- COLOR_MODE_DCI_P3 = 6;
- COLOR_MODE_SRGB = 7;
- COLOR_MODE_ADOBE_RGB = 8;
- COLOR_MODE_DISPLAY_P3 = 9;
- }
-}
diff --git a/protos/perfetto/trace/android/view/displaycutout.proto b/protos/perfetto/trace/android/view/displaycutout.proto
deleted file mode 100644
index a7e5c94f6..000000000
--- a/protos/perfetto/trace/android/view/displaycutout.proto
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-syntax = "proto2";
-
-import "protos/perfetto/trace/android/graphics/rect.proto";
-
-package perfetto.protos;
-
-message DisplayCutoutProto {
- optional RectProto insets = 1;
- // RectProto bounds
- reserved 2;
- optional RectProto bound_left = 3;
- optional RectProto bound_top = 4;
- optional RectProto bound_right = 5;
- optional RectProto bound_bottom = 6;
- optional RectProto waterfall_insets = 7;
- repeated int32 side_overrides = 8;
-}
diff --git a/protos/perfetto/trace/android/view/imefocuscontroller.proto b/protos/perfetto/trace/android/view/imefocuscontroller.proto
deleted file mode 100644
index 3e863044f..000000000
--- a/protos/perfetto/trace/android/view/imefocuscontroller.proto
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-syntax = "proto2";
-
-package perfetto.protos;
-
-// Represents a {@link android.view.ImeFocusController} object
-message ImeFocusControllerProto {
- optional bool has_ime_focus = 1;
- optional string served_view = 2 [deprecated = true];
- optional string next_served_view = 3 [deprecated = true];
-} \ No newline at end of file
diff --git a/protos/perfetto/trace/android/view/imeinsetssourceconsumer.proto b/protos/perfetto/trace/android/view/imeinsetssourceconsumer.proto
deleted file mode 100644
index 280c2fd08..000000000
--- a/protos/perfetto/trace/android/view/imeinsetssourceconsumer.proto
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-syntax = "proto2";
-
-import "protos/perfetto/trace/android/view/insetssourceconsumer.proto";
-
-package perfetto.protos;
-
-// Represents a {@link android.view.ImeInsetsSourceConsumer} object
-message ImeInsetsSourceConsumerProto {
- optional InsetsSourceConsumerProto insets_source_consumer = 1;
- // focused_editor = 2
- reserved 2;
- optional bool is_requested_visible_awaiting_control = 3;
- optional bool is_hide_animation_running = 4 [deprecated = true];
- optional bool is_show_requested_during_hide_animation = 5 [deprecated = true];
- optional bool has_pending_request = 6;
-} \ No newline at end of file
diff --git a/protos/perfetto/trace/android/view/inputmethod/editorinfo.proto b/protos/perfetto/trace/android/view/inputmethod/editorinfo.proto
deleted file mode 100644
index bc2847f8a..000000000
--- a/protos/perfetto/trace/android/view/inputmethod/editorinfo.proto
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-syntax = "proto2";
-
-package perfetto.protos;
-
-// Represents a {@link android.view.inputmethod.EditorInfo} object
-message EditorInfoProto {
- optional int32 input_type = 1;
- optional int32 ime_options = 2;
- optional string private_ime_options = 3;
- optional string package_name = 4;
- optional int32 field_id = 5;
- optional int32 target_input_method_user_id = 6;
-} \ No newline at end of file
diff --git a/protos/perfetto/trace/android/view/inputmethod/inputconnection.proto b/protos/perfetto/trace/android/view/inputmethod/inputconnection.proto
deleted file mode 100644
index 5a5f177ac..000000000
--- a/protos/perfetto/trace/android/view/inputmethod/inputconnection.proto
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-syntax = "proto2";
-
-package perfetto.protos;
-
-// Represents a {@link android.view.inputmethod.InputConnection} object
-message InputConnectionProto {
- // string editable_text
- reserved 1;
- // string selected_text
- reserved 2;
- optional int32 selected_text_start = 3;
- optional int32 selected_text_end = 4;
- optional int32 cursor_caps_mode = 5;
-}
-
-// Shows information about parameters and result for method calls to
-// {@link android.view.inputmethod.InputConnection}
-message InputConnectionCallProto {
- oneof method_call {
- GetTextBeforeCursor get_text_before_cursor = 1;
- GetTextAfterCursor get_text_after_cursor = 2;
- GetSelectedText get_selected_text = 3;
- GetSurroundingText get_surrounding_text = 4;
- GetCursorCapsMode get_cursor_caps_mode = 5;
- GetExtractedText get_extracted_text = 6;
- }
-
- message GetTextBeforeCursor {
- optional int32 length = 1;
- optional int32 flags = 2;
- // string result
- reserved 3;
- }
-
- message GetTextAfterCursor {
- optional int32 length = 1;
- optional int32 flags = 2;
- // string result
- reserved 3;
- }
-
- message GetSelectedText {
- optional int32 flags = 1;
- // string result
- reserved 2;
- }
-
- message GetSurroundingText {
- optional int32 before_length = 1;
- optional int32 after_length = 2;
- optional int32 flags = 3;
- optional SurroundingText result = 4;
-
- message SurroundingText {
- // string text
- reserved 1;
- optional int32 selection_start = 2;
- optional int32 selection_end = 3;
- optional int32 offset = 4;
- }
- }
-
- message GetCursorCapsMode {
- optional int32 req_modes = 1;
- optional int32 result = 2;
- }
-
- message GetExtractedText {
- optional ExtractedTextRequest request = 1;
- optional int32 flags = 2;
- // string result
- reserved 3;
-
- message ExtractedTextRequest {
- optional int32 token = 1;
- optional int32 flags = 2;
- optional int32 hint_max_lines = 3;
- optional int32 hint_max_chars = 4;
- }
- }
-} \ No newline at end of file
diff --git a/protos/perfetto/trace/android/view/inputmethod/inputmethodmanager.proto b/protos/perfetto/trace/android/view/inputmethod/inputmethodmanager.proto
deleted file mode 100644
index e93be02b3..000000000
--- a/protos/perfetto/trace/android/view/inputmethod/inputmethodmanager.proto
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-syntax = "proto2";
-
-package perfetto.protos;
-
-// Represents a {@link android.view.inputmethod.InputMethodManager} object
-message InputMethodManagerProto {
- optional string cur_id = 1;
- optional bool fullscreen_mode = 2;
- optional int32 display_id = 3;
- optional bool active = 4;
- optional bool served_connecting = 5;
- optional string served_view = 6;
- optional string next_served_view = 7;
-} \ No newline at end of file
diff --git a/protos/perfetto/trace/android/view/insetsanimationcontrolimpl.proto b/protos/perfetto/trace/android/view/insetsanimationcontrolimpl.proto
deleted file mode 100644
index 9cd871d91..000000000
--- a/protos/perfetto/trace/android/view/insetsanimationcontrolimpl.proto
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-syntax = "proto2";
-
-package perfetto.protos;
-
-// Represents a {@link android.view.InsetsAnimationControlImpl} object
-message InsetsAnimationControlImplProto {
- optional bool is_cancelled = 1;
- optional bool is_finished = 2;
- optional string tmp_matrix = 3;
- optional string pending_insets = 4;
- optional float pending_fraction = 5;
- optional bool shown_on_finish = 6;
- optional float current_alpha = 7;
- optional float pending_alpha = 8;
-} \ No newline at end of file
diff --git a/protos/perfetto/trace/android/view/insetscontroller.proto b/protos/perfetto/trace/android/view/insetscontroller.proto
deleted file mode 100644
index e5728ee65..000000000
--- a/protos/perfetto/trace/android/view/insetscontroller.proto
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-syntax = "proto2";
-
-import "protos/perfetto/trace/android/view/insetsstate.proto";
-import "protos/perfetto/trace/android/view/insetsanimationcontrolimpl.proto";
-
-package perfetto.protos;
-
-// Represents a {@link android.view.InsetsController} object
-message InsetsControllerProto {
- optional InsetsStateProto state = 1;
- repeated InsetsAnimationControlImplProto control = 2;
-} \ No newline at end of file
diff --git a/protos/perfetto/trace/android/view/insetssource.proto b/protos/perfetto/trace/android/view/insetssource.proto
deleted file mode 100644
index b09d81d71..000000000
--- a/protos/perfetto/trace/android/view/insetssource.proto
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-syntax = "proto2";
-
-import "protos/perfetto/trace/android/graphics/rect.proto";
-
-package perfetto.protos;
-
-// Represents a {@link android.view.InsetsSource} object
-message InsetsSourceProto {
- optional string type = 1 [deprecated = true];
- optional RectProto frame = 2;
- optional RectProto visible_frame = 3;
- optional bool visible = 4;
- optional int32 type_number = 5;
-} \ No newline at end of file
diff --git a/protos/perfetto/trace/android/view/insetssourceconsumer.proto b/protos/perfetto/trace/android/view/insetssourceconsumer.proto
deleted file mode 100644
index 1d0a860fe..000000000
--- a/protos/perfetto/trace/android/view/insetssourceconsumer.proto
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-syntax = "proto2";
-
-import "protos/perfetto/trace/android/view/insetssourcecontrol.proto";
-import "protos/perfetto/trace/android/graphics/rect.proto";
-
-package perfetto.protos;
-
-// Represents a {@link android.view.InsetsSourceConsumer} object
-message InsetsSourceConsumerProto {
- optional string internal_insets_type = 1 [deprecated = true];
- optional bool has_window_focus = 2;
- optional bool is_requested_visible = 3;
- optional InsetsSourceControlProto source_control = 4;
- optional RectProto pending_frame = 5;
- optional RectProto pending_visible_frame = 6;
- optional int32 animation_state = 7;
- optional int32 type_number = 8;
-} \ No newline at end of file
diff --git a/protos/perfetto/trace/android/view/insetssourcecontrol.proto b/protos/perfetto/trace/android/view/insetssourcecontrol.proto
deleted file mode 100644
index 5507f8b1d..000000000
--- a/protos/perfetto/trace/android/view/insetssourcecontrol.proto
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-syntax = "proto2";
-
-import "protos/perfetto/trace/android/graphics/point.proto";
-import "protos/perfetto/trace/android/view/surfacecontrol.proto";
-
-package perfetto.protos;
-
-// Represents a {@link android.view.InsetsSourceControl} object
-message InsetsSourceControlProto {
- optional string type = 1 [deprecated = true];
- optional PointProto position = 2;
- optional SurfaceControlProto leash = 3;
- optional int32 type_number = 4;
-} \ No newline at end of file
diff --git a/protos/perfetto/trace/android/view/insetsstate.proto b/protos/perfetto/trace/android/view/insetsstate.proto
deleted file mode 100644
index 89ac0160e..000000000
--- a/protos/perfetto/trace/android/view/insetsstate.proto
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-syntax = "proto2";
-
-import "protos/perfetto/trace/android/graphics/rect.proto";
-import "protos/perfetto/trace/android/view/displaycutout.proto";
-import "protos/perfetto/trace/android/view/insetssource.proto";
-
-package perfetto.protos;
-
-// Represents a {@link android.view.InsetsState} object
-message InsetsStateProto {
- repeated InsetsSourceProto sources = 1;
- optional RectProto display_frame = 2;
- optional DisplayCutoutProto display_cutout = 3;
-}
diff --git a/protos/perfetto/trace/android/view/surfacecontrol.proto b/protos/perfetto/trace/android/view/surfacecontrol.proto
deleted file mode 100644
index 5b6a0c823..000000000
--- a/protos/perfetto/trace/android/view/surfacecontrol.proto
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-syntax = "proto2";
-
-package perfetto.protos;
-
-// Represents a {@link android.view.SurfaceControl} object
-message SurfaceControlProto {
- optional int32 hash_code = 1;
- optional string name = 2;
- optional int32 layerId = 3;
-}
diff --git a/protos/perfetto/trace/android/view/viewrootimpl.proto b/protos/perfetto/trace/android/view/viewrootimpl.proto
deleted file mode 100644
index aab3ea175..000000000
--- a/protos/perfetto/trace/android/view/viewrootimpl.proto
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-syntax = "proto2";
-
-import "protos/perfetto/trace/android/graphics/rect.proto";
-import "protos/perfetto/trace/android/view/displaycutout.proto";
-import "protos/perfetto/trace/android/view/windowlayoutparams.proto";
-
-package perfetto.protos;
-
-// Represents a {@link android.view.ViewRootImpl} object
-message ViewRootImplProto {
- optional string view = 1;
- optional int32 display_id = 2;
- optional bool app_visible = 3;
- optional int32 width = 4;
- optional int32 height = 5;
- optional bool is_animating = 6;
- optional RectProto visible_rect = 7;
- optional bool is_drawing = 8;
- optional bool added = 9;
- optional RectProto win_frame = 10;
- optional DisplayCutoutProto pending_display_cutout = 11 [deprecated = true];
- optional string last_window_insets = 12;
- optional string soft_input_mode = 13;
- optional int32 scroll_y = 14;
- optional int32 cur_scroll_y = 15;
- optional bool removed = 16;
- optional WindowLayoutParamsProto window_attributes = 17;
-} \ No newline at end of file
diff --git a/protos/perfetto/trace/android/view/windowlayoutparams.proto b/protos/perfetto/trace/android/view/windowlayoutparams.proto
deleted file mode 100644
index ec60e94cc..000000000
--- a/protos/perfetto/trace/android/view/windowlayoutparams.proto
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-syntax = "proto2";
-
-import "protos/perfetto/trace/android/graphics/pixelformat.proto";
-import "protos/perfetto/trace/android/view/display.proto";
-import "protos/perfetto/trace/android/typedef.proto";
-
-package perfetto.protos;
-
-// represents WindowManager.LayoutParams
-message WindowLayoutParamsProto {
- optional int32 type = 1
- [(.perfetto.protos.typedef) =
- "android.view.WindowManager.LayoutParams.WindowType"];
- optional int32 x = 2;
- optional int32 y = 3;
- optional int32 width = 4;
- optional int32 height = 5;
- optional float horizontal_margin = 6;
- optional float vertical_margin = 7;
- optional int32 gravity = 8
- [(.perfetto.protos.typedef) = "android.view.Gravity.GravityFlags"];
- optional int32 soft_input_mode = 9
- [(.perfetto.protos.typedef) =
- "android.view.WindowManager.LayoutParams.SoftInputModeFlags"];
- optional PixelFormatProto.Format format = 10;
- optional int32 window_animations = 11;
- optional float alpha = 12;
- optional float screen_brightness = 13;
- optional float button_brightness = 14;
-
- enum RotationAnimation {
- ROTATION_ANIMATION_UNSPECIFIED = -1;
- ROTATION_ANIMATION_CROSSFADE = 1;
- ROTATION_ANIMATION_JUMPCUT = 2;
- ROTATION_ANIMATION_SEAMLESS = 3;
- }
- optional RotationAnimation rotation_animation = 15;
-
- optional float preferred_refresh_rate = 16;
- optional int32 preferred_display_mode_id = 17;
- optional bool has_system_ui_listeners = 18;
- optional uint32 input_feature_flags = 19
- [(.perfetto.protos.typedef) =
- "android.view.WindowManager.LayoutParams.InputFeatureFlags"];
- optional int64 user_activity_timeout = 20;
-
- optional ViewDisplayProto.ColorMode color_mode = 23;
- optional uint32 flags = 24
- [(.perfetto.protos.typedef) =
- "android.view.WindowManager.LayoutParams.Flags"];
- optional uint32 private_flags = 26
- [(.perfetto.protos.typedef) =
- "android.view.WindowManager.LayoutParams.PrivateFlags"];
- optional uint32 system_ui_visibility_flags = 27
- [(.perfetto.protos.typedef) =
- "android.view.WindowManager.LayoutParams.SystemUiVisibilityFlags"];
- optional uint32 subtree_system_ui_visibility_flags = 28
- [(.perfetto.protos.typedef) =
- "android.view.WindowManager.LayoutParams.SystemUiVisibilityFlags"];
- optional uint32 appearance = 29
- [(.perfetto.protos.typedef) =
- "android.view.WindowInsetsController.Appearance"];
- optional uint32 behavior = 30
- [(.perfetto.protos.typedef) =
- "android.view.WindowInsetsController.Behavior"];
- optional uint32 fit_insets_types = 31
- [(.perfetto.protos.typedef) =
- "android.view.WindowInsets.Type.InsetsType"];
- optional uint32 fit_insets_sides = 32
- [(.perfetto.protos.typedef) =
- "android.view.WindowInsets.Side.InsetsSide"];
- optional bool fit_ignore_visibility = 33;
-}
diff --git a/protos/perfetto/trace/android/winscope.proto b/protos/perfetto/trace/android/winscope.proto
index d7927d874..a0c61f7ef 100644
--- a/protos/perfetto/trace/android/winscope.proto
+++ b/protos/perfetto/trace/android/winscope.proto
@@ -22,7 +22,6 @@ import "protos/perfetto/trace/android/protolog.proto";
import "protos/perfetto/trace/android/shell_transition.proto";
import "protos/perfetto/trace/android/surfaceflinger_layers.proto";
import "protos/perfetto/trace/android/surfaceflinger_transactions.proto";
-import "protos/perfetto/trace/android/winscope_extensions_impl.proto";
// This file is used to generated descriptors for all the winscope protos.
// List all the winscope top-level trace messages here:
@@ -31,5 +30,4 @@ message WinscopeTraceData {
optional TransactionTraceEntry transactions = 2;
optional ShellTransition shell_transition = 3;
optional ProtoLogMessage protolog_message = 4;
- optional WinscopeExtensionsImpl winscope_extensions = 5;
}
diff --git a/protos/perfetto/trace/android/winscope_extensions.proto b/protos/perfetto/trace/android/winscope_extensions.proto
deleted file mode 100644
index 76e6c9e48..000000000
--- a/protos/perfetto/trace/android/winscope_extensions.proto
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-syntax = "proto2";
-
-package perfetto.protos;
-
-message WinscopeExtensions {
- extensions 1 to 3;
-}
diff --git a/protos/perfetto/trace/android/winscope_extensions_impl.proto b/protos/perfetto/trace/android/winscope_extensions_impl.proto
deleted file mode 100644
index 9af35a133..000000000
--- a/protos/perfetto/trace/android/winscope_extensions_impl.proto
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-syntax = "proto2";
-
-package perfetto.protos;
-
-import "protos/perfetto/trace/android/inputmethodeditor.proto";
-import "protos/perfetto/trace/android/winscope_extensions.proto";
-
-message WinscopeExtensionsImpl {
- extend WinscopeExtensions {
- optional InputMethodClientsTraceProto inputmethod_clients = 1;
- optional InputMethodServiceTraceProto inputmethod_service = 2;
- optional InputMethodManagerServiceTraceProto inputmethod_manager_service =
- 3;
- }
-}
diff --git a/protos/perfetto/trace/perfetto_trace.proto b/protos/perfetto/trace/perfetto_trace.proto
index e6c78161d..81977bfa4 100644
--- a/protos/perfetto/trace/perfetto_trace.proto
+++ b/protos/perfetto/trace/perfetto_trace.proto
@@ -5189,17 +5189,6 @@ message ShellHandlerMapping {
// End of protos/perfetto/trace/android/shell_transition.proto
-// Begin of protos/perfetto/trace/android/graphics/rect.proto
-
-message RectProto {
- optional int32 left = 1;
- optional int32 top = 2;
- optional int32 right = 3;
- optional int32 bottom = 4;
-}
-
-// End of protos/perfetto/trace/android/graphics/rect.proto
-
// Begin of protos/perfetto/trace/android/surfaceflinger_common.proto
message RegionProto {
@@ -5208,6 +5197,13 @@ message RegionProto {
repeated RectProto rect = 2;
}
+message RectProto {
+ optional int32 left = 1;
+ optional int32 top = 2;
+ optional int32 right = 3;
+ optional int32 bottom = 4;
+}
+
message SizeProto {
optional int32 w = 1;
optional int32 h = 2;
@@ -5816,14 +5812,6 @@ message DisplayState {
// End of protos/perfetto/trace/android/surfaceflinger_transactions.proto
-// Begin of protos/perfetto/trace/android/winscope_extensions.proto
-
-message WinscopeExtensions {
- extensions 1 to 3;
-}
-
-// End of protos/perfetto/trace/android/winscope_extensions.proto
-
// Begin of protos/perfetto/trace/chrome/chrome_benchmark_metadata.proto
// This message is not intended to be written by the chrome on the device.
@@ -14783,7 +14771,7 @@ message UiState {
// See the [Buffers and Dataflow](/docs/concepts/buffers.md) doc for details.
//
// Next reserved id: 14 (up to 15).
-// Next id: 113.
+// Next id: 112.
message TracePacket {
// The timestamp of the TracePacket.
// By default this timestamps refers to the trace clock (CLOCK_BOOTTIME on
@@ -14935,8 +14923,6 @@ message TracePacket {
TestEvent for_testing = 900;
}
- optional WinscopeExtensions winscope_extensions = 112;
-
// Trusted user id of the producer which generated this packet. Keep in sync
// with TrustedPacket.trusted_uid.
//
diff --git a/protos/perfetto/trace/trace_packet.proto b/protos/perfetto/trace/trace_packet.proto
index 974f6d328..62d7e6fc2 100644
--- a/protos/perfetto/trace/trace_packet.proto
+++ b/protos/perfetto/trace/trace_packet.proto
@@ -35,7 +35,6 @@ import "protos/perfetto/trace/android/protolog.proto";
import "protos/perfetto/trace/android/shell_transition.proto";
import "protos/perfetto/trace/android/surfaceflinger_layers.proto";
import "protos/perfetto/trace/android/surfaceflinger_transactions.proto";
-import "protos/perfetto/trace/android/winscope_extensions.proto";
import "protos/perfetto/trace/chrome/chrome_benchmark_metadata.proto";
import "protos/perfetto/trace/chrome/chrome_metadata.proto";
import "protos/perfetto/trace/chrome/chrome_trace_event.proto";
@@ -105,7 +104,7 @@ package perfetto.protos;
// See the [Buffers and Dataflow](/docs/concepts/buffers.md) doc for details.
//
// Next reserved id: 14 (up to 15).
-// Next id: 113.
+// Next id: 112.
message TracePacket {
// The timestamp of the TracePacket.
// By default this timestamps refers to the trace clock (CLOCK_BOOTTIME on
@@ -257,8 +256,6 @@ message TracePacket {
TestEvent for_testing = 900;
}
- optional WinscopeExtensions winscope_extensions = 112;
-
// Trusted user id of the producer which generated this packet. Keep in sync
// with TrustedPacket.trusted_uid.
//
diff --git a/protos/third_party/chromium/chrome_track_event.proto b/protos/third_party/chromium/chrome_track_event.proto
index 0a8842f72..8b766cbc4 100644
--- a/protos/third_party/chromium/chrome_track_event.proto
+++ b/protos/third_party/chromium/chrome_track_event.proto
@@ -39,6 +39,7 @@ message BlinkTaskScope {
TASK_SCOPE_SCHEDULER_POST_TASK = 6;
TASK_SCOPE_REQUEST_IDLE_CALLBACK = 7;
TASK_SCOPE_XML_HTTP_REQUEST = 8;
+ TASK_SCOPE_SOFT_NAVIGATION = 9;
}
optional TaskScopeType type = 1;
optional int64 scope_task_id = 2;
diff --git a/src/trace_processor/importers/proto/winscope/BUILD.gn b/src/trace_processor/importers/proto/winscope/BUILD.gn
index c5a631656..93f9d1bd8 100644
--- a/src/trace_processor/importers/proto/winscope/BUILD.gn
+++ b/src/trace_processor/importers/proto/winscope/BUILD.gn
@@ -39,8 +39,6 @@ source_set("full") {
"../../../../../gn:default_deps",
"../../../../../protos/perfetto/trace:zero",
"../../../../../protos/perfetto/trace/android:zero",
- "../../../../../protos/perfetto/trace/android:winscope_regular:zero",
- "../../../../../protos/perfetto/trace/android:winscope_extensions:zero",
"../../../../../protos/perfetto/trace/interned_data:zero",
"../../../../../protos/perfetto/trace/profiling:zero",
"../../../../protozero",
diff --git a/src/trace_processor/perfetto_sql/intrinsics/functions/layout_functions.cc b/src/trace_processor/perfetto_sql/intrinsics/functions/layout_functions.cc
index 33843761d..4029384a4 100644
--- a/src/trace_processor/perfetto_sql/intrinsics/functions/layout_functions.cc
+++ b/src/trace_processor/perfetto_sql/intrinsics/functions/layout_functions.cc
@@ -16,6 +16,7 @@
#include <cstddef>
#include <cstdint>
+#include <limits>
#include <queue>
#include <vector>
#include "perfetto/base/logging.h"
@@ -64,8 +65,10 @@ Please specify "ORDER BY ts" in the window clause.
size_t depth = SelectAvailableDepth(is_busy);
// If the slice has an end and is not an instant, schedule this depth
// to be marked available again when it ends.
- if (dur > 0) {
- slice_ends_.push({ts + dur, depth});
+ if (dur != 0) {
+ int64_t ts_end =
+ dur == -1 ? std::numeric_limits<int64_t>::max() : ts + dur;
+ slice_ends_.push({ts_end, depth});
}
last_depth_ = depth;
return base::OkStatus();
diff --git a/src/trace_processor/perfetto_sql/intrinsics/operators/slice_mipmap_operator.cc b/src/trace_processor/perfetto_sql/intrinsics/operators/slice_mipmap_operator.cc
index 6fe695640..f1c6b084c 100644
--- a/src/trace_processor/perfetto_sql/intrinsics/operators/slice_mipmap_operator.cc
+++ b/src/trace_processor/perfetto_sql/intrinsics/operators/slice_mipmap_operator.cc
@@ -77,7 +77,7 @@ int SliceMipmapOperator::Create(sqlite3* db,
sqlite3_vtab** vtab,
char** zErr) {
if (argc != 4) {
- *zErr = sqlite3_mprintf("zoom_index_operator: wrong number of arguments");
+ *zErr = sqlite3_mprintf("slice_mipmap: wrong number of arguments");
return SQLITE_ERROR;
}
@@ -93,8 +93,7 @@ int SliceMipmapOperator::Create(sqlite3* db,
auto res = ctx->engine->ExecuteUntilLastStatement(
SqlSource::FromTraceProcessorImplementation(std::move(sql)));
if (!res.ok()) {
- *zErr =
- sqlite3_mprintf("zoom_index_operator: %s", res.status().c_message());
+ *zErr = sqlite3_mprintf("%s", res.status().c_message());
return SQLITE_ERROR;
}
do {
@@ -113,8 +112,7 @@ int SliceMipmapOperator::Create(sqlite3* db,
by_depth.timestamps.push_back(ts);
} while (res->stmt.Step());
if (!res->stmt.status().ok()) {
- *zErr = sqlite3_mprintf("zoom_index_operator: %s",
- res->stmt.status().c_message());
+ *zErr = sqlite3_mprintf("%s", res->stmt.status().c_message());
return SQLITE_ERROR;
}
@@ -208,8 +206,8 @@ int SliceMipmapOperator::Filter(sqlite3_vtab_cursor* cursor,
tses.begin(), std::lower_bound(tses.begin(), tses.end(), start)));
if (start_idx != 0 &&
(static_cast<size_t>(start_idx) == tses.size() ||
- tses[start_idx] != start) &&
- (tses[start_idx] + by_depth.forest[start_idx].dur > start)) {
+ (tses[start_idx] != start &&
+ tses[start_idx] + by_depth.forest[start_idx].dur > start))) {
--start_idx;
}
diff --git a/src/trace_processor/perfetto_sql/stdlib/chrome/scroll_jank/scroll_jank_v3.sql b/src/trace_processor/perfetto_sql/stdlib/chrome/scroll_jank/scroll_jank_v3.sql
index 4bc951337..589adecd1 100644
--- a/src/trace_processor/perfetto_sql/stdlib/chrome/scroll_jank/scroll_jank_v3.sql
+++ b/src/trace_processor/perfetto_sql/stdlib/chrome/scroll_jank/scroll_jank_v3.sql
@@ -8,22 +8,7 @@ INCLUDE PERFETTO MODULE deprecated.v42.common.slices;
-- in BTP.
INCLUDE PERFETTO MODULE chrome.metadata;
INCLUDE PERFETTO MODULE chrome.scroll_jank.scroll_jank_v3_cause;
-
--- Checks if slice has a descendant with provided name.
-CREATE PERFETTO FUNCTION _has_descendant_slice_with_name(
- -- Id of the slice to check descendants of.
- id INT,
- -- Name of potential descendant slice.
- descendant_name STRING
-)
--- Whether `descendant_name` is a name of an descendant slice.
-RETURNS BOOL AS
-SELECT EXISTS(
- SELECT 1
- FROM descendant_slice($id)
- WHERE name = $descendant_name
- LIMIT 1
-);
+INCLUDE PERFETTO MODULE chrome.scroll_jank.utils;
-- Finds the end timestamp for a given slice's descendant with a given name.
-- If there are multiple descendants with a given name, the function will return the
@@ -58,9 +43,8 @@ SELECT
FROM slice
WHERE $id = id;
-
-- Grabs all gesture updates with respective scroll ids and start/end
--- timestamps, regardless of being coalesced.
+-- timestamps, regardless of being presented.
CREATE PERFETTO TABLE chrome_gesture_scroll_updates(
-- The start timestamp of the scroll.
ts INT,
@@ -72,82 +56,100 @@ CREATE PERFETTO TABLE chrome_gesture_scroll_updates(
scroll_update_id INT,
-- The id of the scroll.
scroll_id INT,
- -- Whether this input event was coalesced.
- is_coalesced BOOL
+ -- Whether this input event was presented.
+ is_presented BOOL,
+ -- Frame presentation timestamp aka the timestamp of the
+ -- SwapEndToPresentationCompositorFrame substage.
+ presentation_timestamp INT,
+ -- EventLatency event type.
+ event_type INT
) AS
SELECT
- ts,
- dur,
- id,
- -- TODO(b/250089570) Add trace_id to EventLatency and update this script to use it.
- EXTRACT_ARG(arg_set_id, 'chrome_latency_info.trace_id') AS scroll_update_id,
- EXTRACT_ARG(arg_set_id, 'chrome_latency_info.gesture_scroll_id') AS scroll_id,
- EXTRACT_ARG(arg_set_id, 'chrome_latency_info.is_coalesced') AS is_coalesced
-FROM slice
-WHERE name = "InputLatency::GestureScrollUpdate" AND dur != -1;
+ slice.ts,
+ slice.dur,
+ slice.id,
+ EXTRACT_arg(arg_set_id, "event_latency.event_latency_id") AS scroll_update_id,
+ chrome_get_most_recent_scroll_begin_id(slice.ts) AS scroll_id,
+ has_descendant_slice_with_name(slice.id, "SubmitCompositorFrameToPresentationCompositorFrame")
+ AS is_presented,
+ _descendant_slice_end(slice.id, "SwapEndToPresentationCompositorFrame") AS presentation_timestamp,
+ EXTRACT_ARG(arg_set_id, 'event_latency.event_type') AS event_type
+FROM slice JOIN args USING(arg_set_id)
+WHERE name = "EventLatency"
+AND args.string_value GLOB "*GESTURE_SCROLL_UPDATE";
-CREATE PERFETTO TABLE _non_coalesced_gesture_scrolls AS
+CREATE PERFETTO TABLE _presented_gesture_scrolls AS
SELECT
id,
ts,
dur,
scroll_update_id,
- scroll_id
-FROM chrome_gesture_scroll_updates
-WHERE is_coalesced = false
+ scroll_id,
+ presentation_timestamp,
+ event_type
+FROM chrome_gesture_scroll_updates
+WHERE is_presented = true
ORDER BY ts ASC;
-- Scroll updates, corresponding to all input events that were converted to a
-- presented scroll update.
CREATE PERFETTO TABLE chrome_presented_gesture_scrolls(
- -- Minimum slice id for input presented in this frame, the non coalesced input.
+ -- Minimum slice id for input presented in this frame, the non-presented input.
id INT,
-- The start timestamp for producing the frame.
ts INT,
-- The duration between producing and presenting the frame.
dur INT,
- -- The timestamp of the last input that arrived and got coalesced into the frame.
- last_coalesced_input_ts INT,
+ -- The timestamp of the last input that arrived and got presented in the frame.
+ last_presented_input_ts INT,
-- The id of the scroll update event, a unique identifier to the gesture.
scroll_update_id INT,
-- The id of the ongoing scroll.
- scroll_id INT
+ scroll_id INT,
+ -- Frame presentation timestamp.
+ presentation_timestamp INT,
+ -- EventLatency event type.
+ event_type INT
) AS
WITH
-scroll_updates_with_coalesce_info as MATERIALIZED (
+scroll_updates_with_presentation_info as MATERIALIZED (
SELECT
id,
ts,
- -- For each scroll update, find the latest non-coalesced update which
- -- happened before it. For coalesced scroll updates, this will be the
- -- presented scroll update they have been coalesced into.
+ -- For each scroll update, find the latest presented update which
+ -- started before it.
(
SELECT id
- FROM _non_coalesced_gesture_scrolls non_coalesced
- WHERE non_coalesced.ts <= scroll_update.ts
+ FROM _presented_gesture_scrolls _presented
+ WHERE _presented.ts <= scroll_update.ts
ORDER BY ts DESC
LIMIT 1
- ) as coalesced_to_scroll_update_slice_id
+ ) as presented_to_scroll_update_slice_id
FROM chrome_gesture_scroll_updates scroll_update
- ORDER BY coalesced_to_scroll_update_slice_id, ts
+ ORDER BY presented_to_scroll_update_slice_id, ts
)
SELECT
id,
ts,
dur,
- -- Find the latest input that was coalesced into this scroll update.
+ -- Find the latest input that was presented in this scroll update.
(
- SELECT coalesce_info.ts
- FROM scroll_updates_with_coalesce_info coalesce_info
+ SELECT presentation_info.ts
+ FROM scroll_updates_with_presentation_info presentation_info
WHERE
- coalesce_info.coalesced_to_scroll_update_slice_id =
- _non_coalesced_gesture_scrolls.id
+ presentation_info.presented_to_scroll_update_slice_id =
+ _presented_gesture_scrolls.id
ORDER BY ts DESC
LIMIT 1
- ) as last_coalesced_input_ts,
+ ) as last_presented_input_ts,
scroll_update_id,
- scroll_id
-FROM _non_coalesced_gesture_scrolls;
+ scroll_id,
+ presentation_timestamp,
+ event_type
+FROM _presented_gesture_scrolls
+-- TODO(b/247542163): remove this condition when all stages
+-- of EventLatency are recorded correctly.
+WHERE presentation_timestamp IS NOT NULL;
-- Associate every trace_id with it's perceived delta_y on the screen after
-- prediction.
@@ -163,50 +165,15 @@ SELECT
FROM slice
WHERE name = "InputHandlerProxy::HandleGestureScrollUpdate_Result";
--- Extract event latency timestamps, to later use it for joining
--- with gesture scroll updates, as event latencies don't have trace
--- ids associated with it.
-CREATE PERFETTO TABLE chrome_gesture_scroll_event_latencies(
- -- Start timestamp for the EventLatency.
- ts INT,
- -- Slice id of the EventLatency.
- event_latency_id INT,
- -- Duration of the EventLatency.
- dur INT,
- -- End timestamp for input aka the timestamp of the LatchToSwapEnd substage.
- input_latency_end_ts INT,
- -- Frame presentation timestamp aka the timestamp of the
- -- SwapEndToPresentationCompositorFrame substage.
- presentation_timestamp INT,
- -- EventLatency event type.
- event_type INT
-) AS
-SELECT
- slice.ts,
- slice.id AS event_latency_id,
- slice.dur AS dur,
- _descendant_slice_end(slice.id, "LatchToSwapEnd") AS input_latency_end_ts,
- _descendant_slice_end(slice.id, "SwapEndToPresentationCompositorFrame") AS presentation_timestamp,
- EXTRACT_ARG(arg_set_id, 'event_latency.event_type') AS event_type
-FROM slice
-WHERE name = "EventLatency"
- AND event_type in (
- "GESTURE_SCROLL_UPDATE",
- "FIRST_GESTURE_SCROLL_UPDATE",
- "INERTIAL_GESTURE_SCROLL_UPDATE")
- AND _has_descendant_slice_with_name(slice.id, "SwapEndToPresentationCompositorFrame");
-
--- Join presented gesture scrolls with their respective event
--- latencies based on |LatchToSwapEnd| timestamp, as it's the
--- end timestamp for both the gesture scroll update slice and
--- the LatchToSwapEnd slice.
+-- Obtain the subset of input events that were fully presented, as indicated
+-- by the presence of SwapEndToPresentationCompositorFrame.
CREATE PERFETTO TABLE chrome_full_frame_view(
-- ID of the frame.
id INT,
-- Start timestamp of the frame.
ts INT,
- -- The timestamp of the last coalesced input.
- last_coalesced_input_ts INT,
+ -- The timestamp of the last presented input.
+ last_presented_input_ts INT,
-- ID of the associated scroll.
scroll_id INT,
-- ID of the associated scroll update.
@@ -221,16 +188,18 @@ CREATE PERFETTO TABLE chrome_full_frame_view(
SELECT
frames.id,
frames.ts,
- frames.last_coalesced_input_ts,
+ frames.last_presented_input_ts,
frames.scroll_id,
frames.scroll_update_id,
- events.event_latency_id,
- events.dur,
- events.presentation_timestamp
+ frames.id AS event_latency_id,
+ frames.dur,
+ frames.presentation_timestamp
FROM chrome_presented_gesture_scrolls frames
-JOIN chrome_gesture_scroll_event_latencies events
- ON frames.ts = events.ts
- AND events.input_latency_end_ts = (frames.ts + frames.dur);
+WHERE frames.event_type in (
+ "GESTURE_SCROLL_UPDATE",
+ "FIRST_GESTURE_SCROLL_UPDATE",
+ "INERTIAL_GESTURE_SCROLL_UPDATE")
+ AND has_descendant_slice_with_name(frames.id, "SwapEndToPresentationCompositorFrame");
-- Join deltas with EventLatency data.
CREATE PERFETTO TABLE chrome_full_frame_delta_view(
@@ -242,8 +211,8 @@ CREATE PERFETTO TABLE chrome_full_frame_delta_view(
scroll_id INT,
-- ID of the associated scroll update.
scroll_update_id INT,
- -- The timestamp of the last coalesced input.
- last_coalesced_input_ts INT,
+ -- The timestamp of the last presented input.
+ last_presented_input_ts INT,
-- The perceived delta_y on the screen post prediction.
delta_y INT,
-- ID of the associated EventLatency.
@@ -258,7 +227,7 @@ SELECT
frames.ts,
frames.scroll_id,
frames.scroll_update_id,
- frames.last_coalesced_input_ts,
+ frames.last_presented_input_ts,
deltas.delta_y,
frames.event_latency_id,
frames.dur,
@@ -272,7 +241,7 @@ LEFT JOIN chrome_scroll_updates_with_deltas deltas
CREATE PERFETTO VIEW chrome_merged_frame_view(
-- ID of the frame.
id INT,
- -- The timestamp of the last coalesced input.
+ -- The timestamp of the last presented input.
max_start_ts INT,
-- The earliest frame start timestamp.
min_start_ts INT,
@@ -295,7 +264,7 @@ CREATE PERFETTO VIEW chrome_merged_frame_view(
) AS
SELECT
id,
- MAX(last_coalesced_input_ts) AS max_start_ts,
+ MAX(last_presented_input_ts) AS max_start_ts,
MIN(ts) AS min_start_ts,
scroll_id,
scroll_update_id,
@@ -461,7 +430,7 @@ CREATE PERFETTO VIEW chrome_unique_frame_presentation_ts(
) AS
SELECT DISTINCT
presentation_timestamp
-FROM chrome_gesture_scroll_event_latencies;
+FROM chrome_presented_gesture_scrolls;
-- Dividing missed frames over total frames to get janky frame percentage.
-- This represents the v3 scroll jank metrics.
diff --git a/src/trace_redaction/BUILD.gn b/src/trace_redaction/BUILD.gn
index 4f2fb5f92..037545d90 100644
--- a/src/trace_redaction/BUILD.gn
+++ b/src/trace_redaction/BUILD.gn
@@ -30,6 +30,8 @@ source_set("trace_redaction") {
sources = [
"collect_frame_cookies.cc",
"collect_frame_cookies.h",
+ "collect_system_info.cc",
+ "collect_system_info.h",
"collect_timeline_events.cc",
"collect_timeline_events.h",
"filter_ftrace_using_allowlist.cc",
@@ -126,6 +128,7 @@ perfetto_unittest_source_set("unittests") {
testonly = true
sources = [
"collect_frame_cookies_unittest.cc",
+ "collect_system_info_unittest.cc",
"collect_timeline_events_unittest.cc",
"filter_ftrace_using_allowlist_unittest.cc",
"filter_packet_using_allowlist_unittest.cc",
@@ -157,5 +160,6 @@ perfetto_unittest_source_set("unittests") {
"../../protos/perfetto/trace/ps:cpp",
"../../protos/perfetto/trace/ps:zero",
"../base:test_support",
+ "../trace_processor/util:util",
]
}
diff --git a/src/trace_redaction/collect_system_info.cc b/src/trace_redaction/collect_system_info.cc
new file mode 100644
index 000000000..374f510c2
--- /dev/null
+++ b/src/trace_redaction/collect_system_info.cc
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "src/trace_redaction/collect_system_info.h"
+
+#include "perfetto/protozero/field.h"
+
+#include "protos/perfetto/trace/ftrace/ftrace_event_bundle.pbzero.h"
+
+namespace perfetto::trace_redaction {
+
+base::Status CollectSystemInfo::Begin(Context* context) const {
+ // Other primitives are allows to push more data into the system info (e.g.
+ // another source of pids).
+ if (!context->system_info.has_value()) {
+ context->system_info.emplace();
+ }
+
+ return base::OkStatus();
+}
+
+base::Status CollectSystemInfo::Collect(
+ const protos::pbzero::TracePacket::Decoder& packet,
+ Context* context) const {
+ auto* system_info = &context->system_info.value();
+
+ if (!packet.has_ftrace_events()) {
+ return base::OkStatus();
+ }
+
+ protozero::ProtoDecoder decoder(packet.ftrace_events());
+
+ auto field =
+ decoder.FindField(protos::pbzero::FtraceEventBundle::kCpuFieldNumber);
+
+ if (field.valid()) {
+ system_info->ReserveCpu(field.as_uint32());
+ }
+
+ return base::OkStatus();
+}
+
+base::Status BuildSyntheticThreads::Build(Context* context) const {
+ if (!context->system_info.has_value()) {
+ return base::ErrStatus("BuildThreadMap: missing system info.");
+ }
+
+ if (context->synthetic_threads.has_value()) {
+ return base::ErrStatus(
+ "BuildThreadMap: synthetic threads were already initialized.");
+ }
+
+ auto& system_info = context->system_info.value();
+ auto& synthetic_threads = context->synthetic_threads.emplace();
+
+ auto cpu_count = system_info.last_cpu() + 1;
+
+ synthetic_threads.tgid = system_info.AllocateSynthThread();
+ synthetic_threads.tids.resize(cpu_count);
+
+ for (uint32_t cpu = 0; cpu < cpu_count; ++cpu) {
+ synthetic_threads.tids[cpu] = system_info.AllocateSynthThread();
+ }
+
+ return base::OkStatus();
+}
+
+} // namespace perfetto::trace_redaction
diff --git a/src/trace_redaction/collect_system_info.h b/src/trace_redaction/collect_system_info.h
new file mode 100644
index 000000000..1dec21c3d
--- /dev/null
+++ b/src/trace_redaction/collect_system_info.h
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef SRC_TRACE_REDACTION_COLLECT_SYSTEM_INFO_H_
+#define SRC_TRACE_REDACTION_COLLECT_SYSTEM_INFO_H_
+
+#include "src/trace_redaction/trace_redaction_framework.h"
+
+namespace perfetto::trace_redaction {
+
+// Collects system info (e.g. tids and cpu info). These will provide the raw
+// material needed by BuildThreadMap.
+class CollectSystemInfo : public CollectPrimitive {
+ public:
+ base::Status Begin(Context*) const override;
+
+ base::Status Collect(const protos::pbzero::TracePacket::Decoder&,
+ Context*) const override;
+};
+
+// Condenses system info into a query-focuesed structure, making it possible to
+// replace a thread with a synthetic thread.
+//
+// This is done here, and not in CollectSystemInfo::End, so that other collect
+// primitives can report additional system information.
+class BuildSyntheticThreads : public BuildPrimitive {
+ public:
+ base::Status Build(Context* context) const override;
+};
+
+} // namespace perfetto::trace_redaction
+
+#endif // SRC_TRACE_REDACTION_COLLECT_SYSTEM_INFO_H_
diff --git a/src/trace_redaction/collect_system_info_unittest.cc b/src/trace_redaction/collect_system_info_unittest.cc
new file mode 100644
index 000000000..bf0ced26f
--- /dev/null
+++ b/src/trace_redaction/collect_system_info_unittest.cc
@@ -0,0 +1,97 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "src/trace_redaction/collect_system_info.h"
+#include "src/base/test/status_matchers.h"
+#include "src/trace_processor/util/status_macros.h"
+#include "test/gtest_and_gmock.h"
+
+#include "protos/perfetto/trace/ftrace/ftrace_event.gen.h"
+#include "protos/perfetto/trace/ftrace/ftrace_event_bundle.gen.h"
+#include "protos/perfetto/trace/ftrace/sched.gen.h"
+#include "protos/perfetto/trace/trace_packet.gen.h"
+
+namespace perfetto::trace_redaction {
+
+class CollectSystemInfoTest : public testing::Test {
+ protected:
+ base::Status Collect() {
+ auto buffer = packet_.SerializeAsString();
+ protos::pbzero::TracePacket::Decoder decoder(buffer);
+
+ RETURN_IF_ERROR(collect_.Begin(&context_));
+ RETURN_IF_ERROR(collect_.Collect(decoder, &context_));
+ return collect_.End(&context_);
+ }
+
+ void AppendFtraceEvent(uint32_t event_cpu, uint32_t pid) {
+ auto* events = packet_.mutable_ftrace_events();
+ events->set_cpu(event_cpu);
+
+ auto* event = events->add_event();
+ event->set_pid(pid);
+ }
+
+ void AppendSchedSwitch(int32_t next_pid) {
+ auto& event = packet_.mutable_ftrace_events()->mutable_event()->back();
+
+ auto* sched_switch = event.mutable_sched_switch();
+ sched_switch->set_prev_pid(static_cast<int32_t>(event.pid()));
+ sched_switch->set_next_pid(next_pid);
+ }
+
+ protos::gen::TracePacket packet_;
+ Context context_;
+ CollectSystemInfo collect_;
+};
+
+TEST_F(CollectSystemInfoTest, UpdatesCpuCountUsingFtraceEvents) {
+ AppendFtraceEvent(7, 8);
+ AppendSchedSwitch(9);
+
+ ASSERT_OK(Collect());
+ ASSERT_EQ(context_.system_info->last_cpu(), 7u);
+
+ AppendFtraceEvent(11, 8);
+ AppendSchedSwitch(9);
+
+ ASSERT_OK(Collect());
+ ASSERT_EQ(context_.system_info->last_cpu(), 11u);
+}
+
+// The first synth thread pid should be beyond the range of valid pids.
+TEST(SystemInfoTest, FirstSynthThreadPidIsNotAValidPid) {
+ SystemInfo info;
+
+ auto pid = info.AllocateSynthThread();
+ ASSERT_GT(pid, 1 << 22);
+}
+
+TEST(BuildSyntheticThreadsTest, CreatesThreadsPerCpu) {
+ Context context;
+ context.system_info.emplace();
+
+ // The first CPU is always 0, so CPU 7 means there are 8 CPUs.
+ context.system_info->ReserveCpu(7);
+
+ BuildSyntheticThreads build;
+ ASSERT_OK(build.Build(&context));
+
+ ASSERT_NE(context.synthetic_threads->tgid, 0);
+ ASSERT_EQ(context.synthetic_threads->tids.size(), 8u);
+}
+
+} // namespace perfetto::trace_redaction
diff --git a/src/trace_redaction/main.cc b/src/trace_redaction/main.cc
index 2e433c078..04cfa1eb0 100644
--- a/src/trace_redaction/main.cc
+++ b/src/trace_redaction/main.cc
@@ -17,6 +17,7 @@
#include "perfetto/base/logging.h"
#include "perfetto/base/status.h"
#include "src/trace_redaction/collect_frame_cookies.h"
+#include "src/trace_redaction/collect_system_info.h"
#include "src/trace_redaction/collect_timeline_events.h"
#include "src/trace_redaction/filter_ftrace_using_allowlist.h"
#include "src/trace_redaction/filter_packet_using_allowlist.h"
@@ -51,12 +52,14 @@ static base::Status Main(std::string_view input,
redactor.emplace_collect<FindPackageUid>();
redactor.emplace_collect<CollectTimelineEvents>();
redactor.emplace_collect<CollectFrameCookies>();
+ redactor.emplace_collect<CollectSystemInfo>();
// Add all builders.
redactor.emplace_build<PopulateAllowlists>();
redactor.emplace_build<AllowSuspendResume>();
redactor.emplace_build<OptimizeTimeline>();
redactor.emplace_build<ReduceFrameCookies>();
+ redactor.emplace_build<BuildSyntheticThreads>();
// Add all transforms.
auto* scrub_packet = redactor.emplace_transform<ScrubTracePacket>();
@@ -78,9 +81,12 @@ static base::Status Main(std::string_view input,
redactor.emplace_transform<ScrubProcessStats>();
auto* redact_ftrace_events = redactor.emplace_transform<RedactFtraceEvent>();
- redact_ftrace_events->emplace_back<RedactSchedSwitch>();
- redact_ftrace_events->emplace_back<RedactTaskNewTask>();
- redact_ftrace_events->emplace_back<RedactProcessFree>();
+ redact_ftrace_events
+ ->emplace_back<RedactSchedSwitch::kFieldId, RedactSchedSwitch>();
+ redact_ftrace_events
+ ->emplace_back<RedactTaskNewTask::kFieldId, RedactTaskNewTask>();
+ redact_ftrace_events
+ ->emplace_back<RedactProcessFree::kFieldId, RedactProcessFree>();
Context context;
context.package_name = package_name;
diff --git a/src/trace_redaction/redact_ftrace_event.cc b/src/trace_redaction/redact_ftrace_event.cc
index 32cacda16..6c09236eb 100644
--- a/src/trace_redaction/redact_ftrace_event.cc
+++ b/src/trace_redaction/redact_ftrace_event.cc
@@ -85,26 +85,14 @@ void RedactFtraceEvent::RedactEvent(
for (auto field = event.ReadField(); field.valid();
field = event.ReadField()) {
- auto mod = FindRedactionFor(field.id());
+ auto* mod = redactions_.Find(field.id());
- if (mod) {
+ if (mod && mod->get()) {
protos::pbzero::FtraceEvent::Decoder event_decoder(bytes);
- mod->Redact(context, event_decoder, field.as_bytes(), message);
+ mod->get()->Redact(context, event_decoder, field.as_bytes(), message);
} else {
proto_util::AppendField(field, message);
}
}
}
-
-const FtraceEventRedaction* RedactFtraceEvent::FindRedactionFor(
- uint32_t i) const {
- for (const auto& modification : redactions_) {
- if (modification->field_id() == i) {
- return modification.get();
- }
- }
-
- return nullptr;
-}
-
} // namespace perfetto::trace_redaction
diff --git a/src/trace_redaction/redact_ftrace_event.h b/src/trace_redaction/redact_ftrace_event.h
index 730ed9dbe..fe282cf14 100644
--- a/src/trace_redaction/redact_ftrace_event.h
+++ b/src/trace_redaction/redact_ftrace_event.h
@@ -19,6 +19,7 @@
#include <cstdint>
+#include "perfetto/ext/base/flat_hash_map.h"
#include "src/trace_redaction/trace_redaction_framework.h"
#include "protos/perfetto/trace/ftrace/ftrace_event.pbzero.h"
@@ -30,21 +31,14 @@ namespace perfetto::trace_redaction {
// event in the trace.
class FtraceEventRedaction {
public:
- explicit FtraceEventRedaction(uint32_t field_id) : field_id_(field_id) {}
-
virtual ~FtraceEventRedaction();
- uint32_t field_id() const { return field_id_; }
-
// Write a new version of the event to the message.
virtual base::Status Redact(
const Context& context,
const protos::pbzero::FtraceEvent::Decoder& event,
protozero::ConstBytes bytes,
protos::pbzero::FtraceEvent* event_message) const = 0;
-
- private:
- uint32_t field_id_;
};
class RedactFtraceEvent : public TransformPrimitive {
@@ -53,9 +47,9 @@ class RedactFtraceEvent : public TransformPrimitive {
std::string* packet) const override;
// Add a new redaction. T must extend FtraceEventRedaction.
- template <typename T>
+ template <uint32_t field_id, typename T>
void emplace_back() {
- redactions_.push_back(std::make_unique<T>());
+ redactions_.Insert(field_id, std::make_unique<T>());
}
private:
@@ -71,12 +65,8 @@ class RedactFtraceEvent : public TransformPrimitive {
protozero::ConstBytes bytes,
protos::pbzero::FtraceEvent* message) const;
- const FtraceEventRedaction* FindRedactionFor(uint32_t i) const;
-
- // Each redactions supplies its own id. This list will be small. So
- // iterating over the list checking the reported ids should be good enough.
- // Ids must not collide.
- std::vector<std::unique_ptr<FtraceEventRedaction>> redactions_;
+ base::FlatHashMap<uint32_t, std::unique_ptr<FtraceEventRedaction>>
+ redactions_;
};
} // namespace perfetto::trace_redaction
diff --git a/src/trace_redaction/redact_process_free.cc b/src/trace_redaction/redact_process_free.cc
index 654b7b22c..7294d68e5 100644
--- a/src/trace_redaction/redact_process_free.cc
+++ b/src/trace_redaction/redact_process_free.cc
@@ -42,33 +42,32 @@ namespace perfetto::trace_redaction {
// The timeline treats "start" as inclusive and "end" as exclusive. This means
// no pid will connect to the target package at a process free event. Because
// of this, the timeline is not needed.
-RedactProcessFree::RedactProcessFree()
- : FtraceEventRedaction(
- protos::pbzero::FtraceEvent::kSchedProcessFreeFieldNumber) {}
-
base::Status RedactProcessFree::Redact(
const Context&,
const protos::pbzero::FtraceEvent::Decoder&,
protozero::ConstBytes bytes,
protos::pbzero::FtraceEvent* event_message) const {
- protos::pbzero::SchedProcessFreeFtraceEvent::Decoder process_free(bytes);
+ // SchedProcessFreeFtraceEvent
+ protozero::ProtoDecoder process_free_decoder(bytes);
+
+ // There must be pid. If there's no pid, the safest option is to drop it.
+ auto pid = process_free_decoder.FindField(
+ protos::pbzero::SchedProcessFreeFtraceEvent::kPidFieldNumber);
- // There must be pid. If there's no pid, dropping the event is the safest
- // option.
- if (!process_free.has_pid()) {
+ if (!pid.valid()) {
return base::OkStatus();
}
- // Avoid making the message until we know that we have prev and next pids.
auto* process_free_message = event_message->set_sched_process_free();
- // To read the fields, move the read head back to the start.
- process_free.Reset();
-
- for (auto field = process_free.ReadField(); field.valid();
- field = process_free.ReadField()) {
- if (field.id() !=
+ // Replace the comm with an empty string instead of dropping the comm field.
+ // The perfetto UI doesn't render things correctly if comm values are missing.
+ for (auto field = process_free_decoder.ReadField(); field.valid();
+ field = process_free_decoder.ReadField()) {
+ if (field.id() ==
protos::pbzero::SchedProcessFreeFtraceEvent::kCommFieldNumber) {
+ process_free_message->set_comm("");
+ } else {
proto_util::AppendField(field, process_free_message);
}
}
diff --git a/src/trace_redaction/redact_process_free.h b/src/trace_redaction/redact_process_free.h
index f14fee27a..8d241538c 100644
--- a/src/trace_redaction/redact_process_free.h
+++ b/src/trace_redaction/redact_process_free.h
@@ -26,7 +26,8 @@ namespace perfetto::trace_redaction {
// process free events.
class RedactProcessFree : public FtraceEventRedaction {
public:
- RedactProcessFree();
+ static constexpr auto kFieldId =
+ protos::pbzero::FtraceEvent::kSchedProcessFreeFieldNumber;
base::Status Redact(
const Context& context,
diff --git a/src/trace_redaction/redact_sched_switch.cc b/src/trace_redaction/redact_sched_switch.cc
index 55777f1df..361993d7d 100644
--- a/src/trace_redaction/redact_sched_switch.cc
+++ b/src/trace_redaction/redact_sched_switch.cc
@@ -47,10 +47,6 @@ namespace perfetto::trace_redaction {
// collection of ftrace event messages) because data in a sched_switch message
// is needed in order to know if the event should be added to the bundle.
-RedactSchedSwitch::RedactSchedSwitch()
- : FtraceEventRedaction(
- protos::pbzero::FtraceEvent::kSchedSwitchFieldNumber) {}
-
base::Status RedactSchedSwitch::Redact(
const Context& context,
const protos::pbzero::FtraceEvent::Decoder& event,
diff --git a/src/trace_redaction/redact_sched_switch.h b/src/trace_redaction/redact_sched_switch.h
index 7c154e3db..e9d70cbe7 100644
--- a/src/trace_redaction/redact_sched_switch.h
+++ b/src/trace_redaction/redact_sched_switch.h
@@ -26,7 +26,8 @@ namespace perfetto::trace_redaction {
// sched switch events.
class RedactSchedSwitch : public FtraceEventRedaction {
public:
- RedactSchedSwitch();
+ static constexpr auto kFieldId =
+ protos::pbzero::FtraceEvent::kSchedSwitchFieldNumber;
base::Status Redact(
const Context& context,
diff --git a/src/trace_redaction/redact_sched_switch_integrationtest.cc b/src/trace_redaction/redact_sched_switch_integrationtest.cc
index 67948f2fe..85d7416a7 100644
--- a/src/trace_redaction/redact_sched_switch_integrationtest.cc
+++ b/src/trace_redaction/redact_sched_switch_integrationtest.cc
@@ -48,7 +48,8 @@ class RedactSchedSwitchIntegrationTest
auto* ftrace_event_redactions =
trace_redactor()->emplace_transform<RedactFtraceEvent>();
- ftrace_event_redactions->emplace_back<RedactSchedSwitch>();
+ ftrace_event_redactions
+ ->emplace_back<RedactSchedSwitch::kFieldId, RedactSchedSwitch>();
context()->package_name = "com.Unity.com.unity.multiplayer.samples.coop";
}
diff --git a/src/trace_redaction/redact_task_newtask.cc b/src/trace_redaction/redact_task_newtask.cc
index cdd34d7b6..cb6a41c48 100644
--- a/src/trace_redaction/redact_task_newtask.cc
+++ b/src/trace_redaction/redact_task_newtask.cc
@@ -41,15 +41,6 @@ namespace perfetto::trace_redaction {
//
// In the above message, it should be noted that "event.pid" will never be
// equal to "event.task_newtask.pid" (a thread cannot start itself).
-
-// TODO(vaage): How does this primitive (and others like it) work when we're
-// merging threads? Remame events are already dropped. New task and proces free
-// events won't matter the timeline is created. Can these events be dropped?
-
-RedactTaskNewTask::RedactTaskNewTask()
- : FtraceEventRedaction(
- protos::pbzero::FtraceEvent::kTaskNewtaskFieldNumber) {}
-
base::Status RedactTaskNewTask::Redact(
const Context& context,
const protos::pbzero::FtraceEvent::Decoder& event,
diff --git a/src/trace_redaction/redact_task_newtask.h b/src/trace_redaction/redact_task_newtask.h
index b4fd830ce..51d384c9b 100644
--- a/src/trace_redaction/redact_task_newtask.h
+++ b/src/trace_redaction/redact_task_newtask.h
@@ -26,7 +26,8 @@ namespace perfetto::trace_redaction {
// task_newtask events.
class RedactTaskNewTask : public FtraceEventRedaction {
public:
- RedactTaskNewTask();
+ static constexpr auto kFieldId =
+ protos::pbzero::FtraceEvent::kTaskNewtaskFieldNumber;
base::Status Redact(
const Context& context,
diff --git a/src/trace_redaction/trace_redaction_framework.h b/src/trace_redaction/trace_redaction_framework.h
index cc135a930..12f6eb2bf 100644
--- a/src/trace_redaction/trace_redaction_framework.h
+++ b/src/trace_redaction/trace_redaction_framework.h
@@ -40,6 +40,59 @@ constexpr uint64_t NormalizeUid(uint64_t uid) {
return uid % 1000000;
}
+class SystemInfo {
+ public:
+ int32_t AllocateSynthThread() {
+ return (1 << kSynthShift) | (++next_synth_thread_);
+ }
+
+ uint32_t ReserveCpu(uint32_t cpu) {
+ last_cpu_ = std::max(last_cpu_, cpu);
+ return last_cpu_;
+ }
+
+ uint32_t last_cpu() const { return last_cpu_; }
+
+ private:
+ // This is the last allocated tid. Using a tid equal to or less than this tid
+ // risks a collision with another tid. If a tid is ever created (by a
+ // primitive) this should be advanced to the max between this value and the
+ // new tid.
+ //
+ // On a 64 bit machine, the max pid limit is 2^22 (approximately 4 million).
+ // Perfetto uses a 32 (signed) int for the pid. Even in this case, there is
+ // room for 2^9 synthetic threads (2 ^ (31 - 22) = 2 ^ 9).
+ //
+ // Futhermore, ther Android source code return 4194304 (2 ^ 22) on 64 bit
+ // devices.
+ //
+ // /proc/sys/kernel/pid_max (since Linux 2.5.34)
+ // This file specifies the value at which PIDs wrap around
+ // (i.e., the value in this file is one greater than the
+ // maximum PID). PIDs greater than this value are not
+ // allocated; thus, the value in this file also acts as a
+ // system-wide limit on the total number of processes and
+ // threads. The default value for this file, 32768, results
+ // in the same range of PIDs as on earlier kernels. On
+ // 32-bit platforms, 32768 is the maximum value for pid_max.
+ // On 64-bit systems, pid_max can be set to any value up to
+ // 2^22 (PID_MAX_LIMIT, approximately 4 million).
+ //
+ // SOURCE: https://man7.org/linux/man-pages/man5/proc.5.html
+ static constexpr auto kSynthShift = 22;
+ int32_t next_synth_thread_ = 0;
+
+ // The last CPU index seen. If this value is 7, it means there are at least
+ // 8 CPUs.
+ uint32_t last_cpu_ = 0;
+};
+
+class SyntheticThreadGroup {
+ public:
+ int32_t tgid;
+ std::vector<int32_t> tids;
+};
+
// Primitives should be stateless. All state should be stored in the context.
// Primitives should depend on data in the context, not the origin of the data.
// This allows primitives to be swapped out or work together to populate data
@@ -217,6 +270,10 @@ class Context {
// values are unique within the scope of the trace, pid and time are no longer
// needed and a set can be used for faster queries.
std::unordered_set<int64_t> package_frame_cookies;
+
+ std::optional<SystemInfo> system_info;
+
+ std::optional<SyntheticThreadGroup> synthetic_threads;
};
// Extracts low-level data from the trace and writes it into the context. The
diff --git a/test/data/api32_startup_warm.perfetto-trace.sha256 b/test/data/api32_startup_warm.perfetto-trace.sha256
new file mode 100644
index 000000000..f83dd346d
--- /dev/null
+++ b/test/data/api32_startup_warm.perfetto-trace.sha256
@@ -0,0 +1 @@
+776122b5660c5d6e738950031fdb4992a64e3224e9e82bbaed474a0a281ed7e3 \ No newline at end of file
diff --git a/test/data/api34_startup_cold.perfetto-trace.sha256 b/test/data/api34_startup_cold.perfetto-trace.sha256
new file mode 100644
index 000000000..2a7a04422
--- /dev/null
+++ b/test/data/api34_startup_cold.perfetto-trace.sha256
@@ -0,0 +1 @@
+1958521dc5128cd4eadd1df281e19987aded718750e6883f82ffd3b5eb529bd6 \ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-android_trace_30s_expand_camera.png.sha256 b/test/data/ui-screenshots/ui-android_trace_30s_expand_camera.png.sha256
index 6c9da1238..ae1eb866b 100644
--- a/test/data/ui-screenshots/ui-android_trace_30s_expand_camera.png.sha256
+++ b/test/data/ui-screenshots/ui-android_trace_30s_expand_camera.png.sha256
@@ -1 +1 @@
-3b1182b4e24fa80004c5bcec56c2cc9b4814ed9da7266fe54fafde4191ab3b4f \ No newline at end of file
+27883a40c19205b1de4f9b87dfc22f4039986330074a7955e4432a045b657314 \ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-android_trace_30s_load.png.sha256 b/test/data/ui-screenshots/ui-android_trace_30s_load.png.sha256
index 4a77c813a..aa136cdce 100644
--- a/test/data/ui-screenshots/ui-android_trace_30s_load.png.sha256
+++ b/test/data/ui-screenshots/ui-android_trace_30s_load.png.sha256
@@ -1 +1 @@
-07bcd60e3622fd39e0270962294696c7280c3cc45997837ae136ea1da0f8d094 \ No newline at end of file
+b2c625bbdeb611de9a4bfbc3497353ee91322410bb867eee603bf2635353a21f \ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-chrome_missing_track_names_load.png.sha256 b/test/data/ui-screenshots/ui-chrome_missing_track_names_load.png.sha256
index ce2d330d5..81c36d88e 100644
--- a/test/data/ui-screenshots/ui-chrome_missing_track_names_load.png.sha256
+++ b/test/data/ui-screenshots/ui-chrome_missing_track_names_load.png.sha256
@@ -1 +1 @@
-ce747a5d7a1547aaa238bef8aa7b241d3e16cdc38dd34ef165e57aecb6659a92 \ No newline at end of file
+ff45b08442a6f59a4768f3ad697cffb43d19889f1f6523d5ed4ef83aff944864 \ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-chrome_rendering_desktop_expand_browser_proc.png.sha256 b/test/data/ui-screenshots/ui-chrome_rendering_desktop_expand_browser_proc.png.sha256
index c8cc93daa..4d7b25a06 100644
--- a/test/data/ui-screenshots/ui-chrome_rendering_desktop_expand_browser_proc.png.sha256
+++ b/test/data/ui-screenshots/ui-chrome_rendering_desktop_expand_browser_proc.png.sha256
@@ -1 +1 @@
-193a54d8a03494937a21ecd2210b926a73e43f3d9617d622328e9a45cd32b017 \ No newline at end of file
+161c05f6bae9b0e2142e73e83f3bcf7a9c689c58411db9e345a63ba882605557 \ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-chrome_rendering_desktop_load.png.sha256 b/test/data/ui-screenshots/ui-chrome_rendering_desktop_load.png.sha256
index de5d8b487..2d4876158 100644
--- a/test/data/ui-screenshots/ui-chrome_rendering_desktop_load.png.sha256
+++ b/test/data/ui-screenshots/ui-chrome_rendering_desktop_load.png.sha256
@@ -1 +1 @@
-b1cbf99aeee1bab2eabe0d1495697970535ef350f3d6e6d177ed21d469f3b11e \ No newline at end of file
+c0bf63de1c6c738fb994d64e5f2f7c5c0e4315f8627fc5fd68f5b906acbb814d \ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-chrome_rendering_desktop_select_slice_with_flows.png.sha256 b/test/data/ui-screenshots/ui-chrome_rendering_desktop_select_slice_with_flows.png.sha256
index 0843823c3..2ced23b13 100644
--- a/test/data/ui-screenshots/ui-chrome_rendering_desktop_select_slice_with_flows.png.sha256
+++ b/test/data/ui-screenshots/ui-chrome_rendering_desktop_select_slice_with_flows.png.sha256
@@ -1 +1 @@
-562482bc25d7a2d34b30d6003d100207e7f1eb0a48ea4549445a340e34a2e3b4 \ No newline at end of file
+0b5b8abecbbef18f25cbe0ddbfc7a8ff5e4aefb0c1ad07871cd72dc69d2647c9 \ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-modal_dialog_dismiss_1.png.sha256 b/test/data/ui-screenshots/ui-modal_dialog_dismiss_1.png.sha256
index 9c06aaacb..e9fa1e33e 100644
--- a/test/data/ui-screenshots/ui-modal_dialog_dismiss_1.png.sha256
+++ b/test/data/ui-screenshots/ui-modal_dialog_dismiss_1.png.sha256
@@ -1 +1 @@
-554b36f8fd3cf77c4e8e08fb53664dd1c5b54e2009045b513363c5d9ba861da9 \ No newline at end of file
+14056ade87692d8ec27ad4eb6c0c4fe55a14f87682b26af5acd829388326ed1b \ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-modal_dialog_dismiss_2.png.sha256 b/test/data/ui-screenshots/ui-modal_dialog_dismiss_2.png.sha256
index 0f29bad2d..0470eab22 100644
--- a/test/data/ui-screenshots/ui-modal_dialog_dismiss_2.png.sha256
+++ b/test/data/ui-screenshots/ui-modal_dialog_dismiss_2.png.sha256
@@ -1 +1 @@
-c7bb5ef50e96b3bdd96d684cbc65025e60ff9dd3281b220e4b99e07c2a896afe \ No newline at end of file
+ee1bbe38698683159bc2d51940ebda03e22f766302c26f71d9792fbd68f71fd7 \ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-modal_dialog_show_dialog_1.png.sha256 b/test/data/ui-screenshots/ui-modal_dialog_show_dialog_1.png.sha256
index ac18e7211..ace70f07b 100644
--- a/test/data/ui-screenshots/ui-modal_dialog_show_dialog_1.png.sha256
+++ b/test/data/ui-screenshots/ui-modal_dialog_show_dialog_1.png.sha256
@@ -1 +1 @@
-99c00e663442fd3ca7913b5ce7bea350af82f5ec8422d16f49175c91d484b52a \ No newline at end of file
+84f915ea5ab8d247a451de6844c66af348889f8ae789f8378b52660745f78ad2 \ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-modal_dialog_show_dialog_2.png.sha256 b/test/data/ui-screenshots/ui-modal_dialog_show_dialog_2.png.sha256
index ff1df49d5..8bf2a5316 100644
--- a/test/data/ui-screenshots/ui-modal_dialog_show_dialog_2.png.sha256
+++ b/test/data/ui-screenshots/ui-modal_dialog_show_dialog_2.png.sha256
@@ -1 +1 @@
-f345cfd5f9f2c5922d15c691dbe76d5d50ccfecdf35f2fd0033c1462299b0d17 \ No newline at end of file
+6906847e636f09c0d8476074392e6d79de745bed39adc79624a1a305477ad09b \ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-modal_dialog_switch_page_no_dialog.png.sha256 b/test/data/ui-screenshots/ui-modal_dialog_switch_page_no_dialog.png.sha256
index 58840ee1d..4b545db70 100644
--- a/test/data/ui-screenshots/ui-modal_dialog_switch_page_no_dialog.png.sha256
+++ b/test/data/ui-screenshots/ui-modal_dialog_switch_page_no_dialog.png.sha256
@@ -1 +1 @@
-b9146d41d92c3e164adb9ada4ed0b384f225220ef458a70c152a14c6bd29aef3 \ No newline at end of file
+d0a10b3fa63f100b16b8a595e805485cbb7b2ac7a7b25cc68024a726f4e69e6a \ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-routing_navigate_navigate_back_and_forward.png.sha256 b/test/data/ui-screenshots/ui-routing_navigate_navigate_back_and_forward.png.sha256
index be09ae539..423413f73 100644
--- a/test/data/ui-screenshots/ui-routing_navigate_navigate_back_and_forward.png.sha256
+++ b/test/data/ui-screenshots/ui-routing_navigate_navigate_back_and_forward.png.sha256
@@ -1 +1 @@
-b9f04ac7c1d9bc25023a22bd2e6d79c48cf44ac62da30db9454f3e367dc9a824 \ No newline at end of file
+a38e589b73daa4c8b1eb6fe5a592bc85fdd00139e7278e7289aed0d0c2a0b048 \ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-routing_navigate_open_trace_from_url.png.sha256 b/test/data/ui-screenshots/ui-routing_navigate_open_trace_from_url.png.sha256
index 24ab3688d..1c8ee2061 100644
--- a/test/data/ui-screenshots/ui-routing_navigate_open_trace_from_url.png.sha256
+++ b/test/data/ui-screenshots/ui-routing_navigate_open_trace_from_url.png.sha256
@@ -1 +1 @@
-f9b1725cd859b6cccf34d171e8b2e9d87b44a4fc241e9f577ccfde2ae3cc5216 \ No newline at end of file
+f7350a1ea142f50c7f8847cffa2ca1ec89faac07a57660b8b20f2d0d068f5747 \ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-routing_open_invalid_trace_from_blank_page.png.sha256 b/test/data/ui-screenshots/ui-routing_open_invalid_trace_from_blank_page.png.sha256
index fa3e08248..bf4069851 100644
--- a/test/data/ui-screenshots/ui-routing_open_invalid_trace_from_blank_page.png.sha256
+++ b/test/data/ui-screenshots/ui-routing_open_invalid_trace_from_blank_page.png.sha256
@@ -1 +1 @@
-82b386830bbfc6287b893331ecffcb1058634868a1bd43cce240b09297f060c7 \ No newline at end of file
+7031a1c1d49c9b953bd177ce268460d3702574b6d8b57542f9896c3cbcb91cac \ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-routing_open_trace_and_go_back_to_landing_page.png.sha256 b/test/data/ui-screenshots/ui-routing_open_trace_and_go_back_to_landing_page.png.sha256
index 737aa225f..5b4b6e80c 100644
--- a/test/data/ui-screenshots/ui-routing_open_trace_and_go_back_to_landing_page.png.sha256
+++ b/test/data/ui-screenshots/ui-routing_open_trace_and_go_back_to_landing_page.png.sha256
@@ -1 +1 @@
-148a4d82304842f610caa722e4cfc124eaa9e1da7b0ec1a1c0aeb790e03700c9 \ No newline at end of file
+bde6b98b6bf32e479277e34bbb410e08bf05840f6e34959c545ced0592f1f4c5 \ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-routing_open_two_traces_then_go_back_access_subpage_then_go_back.png.sha256 b/test/data/ui-screenshots/ui-routing_open_two_traces_then_go_back_access_subpage_then_go_back.png.sha256
index 7b76fd1e7..c703153eb 100644
--- a/test/data/ui-screenshots/ui-routing_open_two_traces_then_go_back_access_subpage_then_go_back.png.sha256
+++ b/test/data/ui-screenshots/ui-routing_open_two_traces_then_go_back_access_subpage_then_go_back.png.sha256
@@ -1 +1 @@
-431b27cc6333c21aac4bf681ab9d7f06e096f340f7913f1c1e3a943d4c4f0111 \ No newline at end of file
+4a24fb909c6346d5419905fc0a7ff69b9dda00fe77db6b953497d47f4dbe4149 \ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-routing_open_two_traces_then_go_back_open_first_trace_from_url.png.sha256 b/test/data/ui-screenshots/ui-routing_open_two_traces_then_go_back_open_first_trace_from_url.png.sha256
index 24ab3688d..1c8ee2061 100644
--- a/test/data/ui-screenshots/ui-routing_open_two_traces_then_go_back_open_first_trace_from_url.png.sha256
+++ b/test/data/ui-screenshots/ui-routing_open_two_traces_then_go_back_open_first_trace_from_url.png.sha256
@@ -1 +1 @@
-f9b1725cd859b6cccf34d171e8b2e9d87b44a4fc241e9f577ccfde2ae3cc5216 \ No newline at end of file
+f7350a1ea142f50c7f8847cffa2ca1ec89faac07a57660b8b20f2d0d068f5747 \ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-routing_open_two_traces_then_go_back_open_second_trace_from_url.png.sha256 b/test/data/ui-screenshots/ui-routing_open_two_traces_then_go_back_open_second_trace_from_url.png.sha256
index 7b76fd1e7..c703153eb 100644
--- a/test/data/ui-screenshots/ui-routing_open_two_traces_then_go_back_open_second_trace_from_url.png.sha256
+++ b/test/data/ui-screenshots/ui-routing_open_two_traces_then_go_back_open_second_trace_from_url.png.sha256
@@ -1 +1 @@
-431b27cc6333c21aac4bf681ab9d7f06e096f340f7913f1c1e3a943d4c4f0111 \ No newline at end of file
+4a24fb909c6346d5419905fc0a7ff69b9dda00fe77db6b953497d47f4dbe4149 \ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-routing_start_from_no_trace_go_back_to_first_trace.png.sha256 b/test/data/ui-screenshots/ui-routing_start_from_no_trace_go_back_to_first_trace.png.sha256
index 7b76fd1e7..c703153eb 100644
--- a/test/data/ui-screenshots/ui-routing_start_from_no_trace_go_back_to_first_trace.png.sha256
+++ b/test/data/ui-screenshots/ui-routing_start_from_no_trace_go_back_to_first_trace.png.sha256
@@ -1 +1 @@
-431b27cc6333c21aac4bf681ab9d7f06e096f340f7913f1c1e3a943d4c4f0111 \ No newline at end of file
+4a24fb909c6346d5419905fc0a7ff69b9dda00fe77db6b953497d47f4dbe4149 \ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-routing_start_from_no_trace_go_to_page_with_no_trace.png.sha256 b/test/data/ui-screenshots/ui-routing_start_from_no_trace_go_to_page_with_no_trace.png.sha256
index 0aacaa460..517d3eb1a 100644
--- a/test/data/ui-screenshots/ui-routing_start_from_no_trace_go_to_page_with_no_trace.png.sha256
+++ b/test/data/ui-screenshots/ui-routing_start_from_no_trace_go_to_page_with_no_trace.png.sha256
@@ -1 +1 @@
-539226bd5412f6f573473f91ae2fc6edda026744c143bdc4b027a069094de96f \ No newline at end of file
+2ce30cc545efe24f68a1b6efe7dd27971f6b40c777f08098f4d68c8e861f843f \ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-routing_start_from_no_trace_open_invalid_trace.png.sha256 b/test/data/ui-screenshots/ui-routing_start_from_no_trace_open_invalid_trace.png.sha256
index a90276352..98854c1a7 100644
--- a/test/data/ui-screenshots/ui-routing_start_from_no_trace_open_invalid_trace.png.sha256
+++ b/test/data/ui-screenshots/ui-routing_start_from_no_trace_open_invalid_trace.png.sha256
@@ -1 +1 @@
-eeb0625eb5286e0ca40b5d308608714ae7da0ca67d6bf07fac314a6639b5ddb5 \ No newline at end of file
+c662b150f085a83819bb6250c63095ace7c2d8fe0c44b9a7b16a0ed633177955 \ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-routing_start_from_no_trace_open_second_trace.png.sha256 b/test/data/ui-screenshots/ui-routing_start_from_no_trace_open_second_trace.png.sha256
index 24ab3688d..1c8ee2061 100644
--- a/test/data/ui-screenshots/ui-routing_start_from_no_trace_open_second_trace.png.sha256
+++ b/test/data/ui-screenshots/ui-routing_start_from_no_trace_open_second_trace.png.sha256
@@ -1 +1 @@
-f9b1725cd859b6cccf34d171e8b2e9d87b44a4fc241e9f577ccfde2ae3cc5216 \ No newline at end of file
+f7350a1ea142f50c7f8847cffa2ca1ec89faac07a57660b8b20f2d0d068f5747 \ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-routing_start_from_no_trace_open_trace_.png.sha256 b/test/data/ui-screenshots/ui-routing_start_from_no_trace_open_trace_.png.sha256
index 7b76fd1e7..c703153eb 100644
--- a/test/data/ui-screenshots/ui-routing_start_from_no_trace_open_trace_.png.sha256
+++ b/test/data/ui-screenshots/ui-routing_start_from_no_trace_open_trace_.png.sha256
@@ -1 +1 @@
-431b27cc6333c21aac4bf681ab9d7f06e096f340f7913f1c1e3a943d4c4f0111 \ No newline at end of file
+4a24fb909c6346d5419905fc0a7ff69b9dda00fe77db6b953497d47f4dbe4149 \ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-routing_start_from_no_trace_refresh.png.sha256 b/test/data/ui-screenshots/ui-routing_start_from_no_trace_refresh.png.sha256
index 7b76fd1e7..c703153eb 100644
--- a/test/data/ui-screenshots/ui-routing_start_from_no_trace_refresh.png.sha256
+++ b/test/data/ui-screenshots/ui-routing_start_from_no_trace_refresh.png.sha256
@@ -1 +1 @@
-431b27cc6333c21aac4bf681ab9d7f06e096f340f7913f1c1e3a943d4c4f0111 \ No newline at end of file
+4a24fb909c6346d5419905fc0a7ff69b9dda00fe77db6b953497d47f4dbe4149 \ No newline at end of file
diff --git a/tools/gen_android_bp b/tools/gen_android_bp
index 82c2d7631..c8a2b1a3f 100755
--- a/tools/gen_android_bp
+++ b/tools/gen_android_bp
@@ -122,19 +122,12 @@ target_product_available = [
# Proto target groups which will be made public.
proto_groups = {
'trace': {
- 'types': ['lite'],
+ 'types': ['filegroup', 'lite'],
'targets': [
'//protos/perfetto/trace:non_minimal_source_set',
'//protos/perfetto/trace:minimal_source_set',
]
},
- 'winscope': {
- 'types': ['filegroup'],
- 'targets': [
- '//protos/perfetto/trace:non_minimal_source_set',
- '//protos/perfetto/trace/android:winscope_extensions:source_set',
- ]
- },
'config': {
'types': ['lite'],
'targets': [
diff --git a/tools/gen_tp_table_headers.py b/tools/gen_tp_table_headers.py
index 91e4cdb9e..fd44c1994 100755
--- a/tools/gen_tp_table_headers.py
+++ b/tools/gen_tp_table_headers.py
@@ -66,14 +66,16 @@ def main():
def get_header_path(in_path: str):
return os.path.join(args.import_prefix, get_relout_path(in_path))
+ def get_relin_path_from_module_path(module_path: str):
+ return module_path[module_path.rfind('/src') + 1:]
+
modules = [
os.path.splitext(get_relin_path(i).replace(os.sep, '.'))[0]
for i in args.inputs
]
headers: Dict[str, Header] = {}
for table in parse_tables_from_modules(modules):
- raw_path = table.table.python_module
- input_path = raw_path[raw_path.rfind('/src') + 1:]
+ input_path = get_relin_path_from_module_path(table.table.python_module)
header = headers.get(input_path, Header([]))
header.tables.append(table)
headers[input_path] = header
@@ -87,7 +89,7 @@ def main():
header_relout_deps: Set[str] = set()
for table in header.tables:
header_relout_deps = header_relout_deps.union([
- get_header_path(os.path.relpath(c.python_module, ROOT_DIR))
+ get_header_path(get_relin_path_from_module_path(c.python_module))
for c in find_table_deps(table.table)
])
header_relout_deps.discard(relout_path)
diff --git a/ui/package.json b/ui/package.json
index 9dea540cd..8f1e15d4c 100644
--- a/ui/package.json
+++ b/ui/package.json
@@ -61,7 +61,7 @@
"pixelmatch": "^5.3.0",
"pngjs": "^6.0.0",
"prettier": "^2.8.8",
- "puppeteer": "^20.7.3",
+ "puppeteer": "^22.6.0",
"rollup": "^2.79.1",
"rollup-plugin-re": "^1.0.7",
"rollup-plugin-sourcemaps": "^0.6.3",
diff --git a/ui/pnpm-lock.yaml b/ui/pnpm-lock.yaml
index d1e575620..e2beb57fe 100644
--- a/ui/pnpm-lock.yaml
+++ b/ui/pnpm-lock.yaml
@@ -164,8 +164,8 @@ devDependencies:
specifier: ^2.8.8
version: 2.8.8
puppeteer:
- specifier: ^20.7.3
- version: 20.7.3(typescript@5.0.4)
+ specifier: ^22.6.0
+ version: 22.6.0(typescript@5.0.4)
rollup:
specifier: ^2.79.1
version: 2.79.1
@@ -1019,24 +1019,19 @@ packages:
resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==}
dev: false
- /@puppeteer/browsers@1.4.2(typescript@5.0.4):
- resolution: {integrity: sha512-5MLU1RFaJh1Beb9FH6raowtZErcsZ0ojYJvdG3OWXfnc3wZiDAa0PgXU2QOKtbW2S+Z731K/2n3YczGA3KbLbQ==}
- engines: {node: '>=16.3.0'}
+ /@puppeteer/browsers@2.2.0:
+ resolution: {integrity: sha512-MC7LxpcBtdfTbzwARXIkqGZ1Osn3nnZJlm+i0+VqHl72t//Xwl9wICrXT8BwtgC6s1xJNHsxOpvzISUqe92+sw==}
+ engines: {node: '>=18'}
hasBin: true
- peerDependencies:
- typescript: '>= 4.7.4'
- peerDependenciesMeta:
- typescript:
- optional: true
dependencies:
debug: 4.3.4
extract-zip: 2.0.1
progress: 2.0.3
- proxy-agent: 6.2.1
- tar-fs: 3.0.2
- typescript: 5.0.4
+ proxy-agent: 6.4.0
+ semver: 7.6.0
+ tar-fs: 3.0.5
unbzip2-stream: 1.4.3
- yargs: 17.7.1
+ yargs: 17.7.2
transitivePeerDependencies:
- supports-color
dev: true
@@ -1121,6 +1116,10 @@ packages:
engines: {node: '>= 6'}
dev: true
+ /@tootallnate/quickjs-emscripten@0.23.0:
+ resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==}
+ dev: true
+
/@types/babel__core@7.20.1:
resolution: {integrity: sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==}
dependencies:
@@ -1466,11 +1465,6 @@ packages:
engines: {node: '>=0.4.0'}
dev: true
- /acorn-walk@8.2.0:
- resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==}
- engines: {node: '>=0.4.0'}
- dev: true
-
/acorn@7.4.1:
resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==}
engines: {node: '>=0.4.0'}
@@ -1690,6 +1684,37 @@ packages:
/balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+ /bare-events@2.2.2:
+ resolution: {integrity: sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ==}
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /bare-fs@2.2.2:
+ resolution: {integrity: sha512-X9IqgvyB0/VA5OZJyb5ZstoN62AzD7YxVGog13kkfYWYqJYcK0kcqLZ6TrmH5qr4/8//ejVcX4x/a0UvaogXmA==}
+ requiresBuild: true
+ dependencies:
+ bare-events: 2.2.2
+ bare-os: 2.2.1
+ bare-path: 2.1.0
+ streamx: 2.15.0
+ dev: true
+ optional: true
+
+ /bare-os@2.2.1:
+ resolution: {integrity: sha512-OwPyHgBBMkhC29Hl3O4/YfxW9n7mdTr2+SsO29XBWKKJsbgj3mnorDB80r5TiCQgQstgE5ga1qNYrpes6NvX2w==}
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /bare-path@2.1.0:
+ resolution: {integrity: sha512-DIIg7ts8bdRKwJRJrUMy/PICEaQZaPGZ26lsSx9MJSwIhSrcdHn7/C8W+XmnG/rKi6BaRcz+JO00CjZteybDtw==}
+ requiresBuild: true
+ dependencies:
+ bare-os: 2.2.1
+ dev: true
+ optional: true
+
/base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
dev: true
@@ -1888,13 +1913,15 @@ packages:
fsevents: 2.3.3
dev: false
- /chromium-bidi@0.4.12(devtools-protocol@0.0.1135028):
- resolution: {integrity: sha512-yl0ngMHtYUGJa2G0lkcbPvbnUZ9WMQyMNSfYmlrGD1nHRNyI9KOGw3dOaofFugXHHToneUaSmF9iUdgCBamCjA==}
+ /chromium-bidi@0.5.13(devtools-protocol@0.0.1262051):
+ resolution: {integrity: sha512-OHbYCetDxdW/xmlrafgOiLsIrw4Sp1BEeolbZ1UGJO5v/nekQOJBj/Kzyw6sqKcAVabUTo0GS3cTYgr6zIf00g==}
peerDependencies:
devtools-protocol: '*'
dependencies:
- devtools-protocol: 0.0.1135028
- mitt: 3.0.0
+ devtools-protocol: 0.0.1262051
+ mitt: 3.0.1
+ urlpattern-polyfill: 10.0.0
+ zod: 3.22.4
dev: true
/ci-info@2.0.0:
@@ -2022,28 +2049,26 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
- /cosmiconfig@8.2.0:
- resolution: {integrity: sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==}
+ /cosmiconfig@9.0.0(typescript@5.0.4):
+ resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==}
engines: {node: '>=14'}
+ peerDependencies:
+ typescript: '>=4.9.5'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
dependencies:
+ env-paths: 2.2.1
import-fresh: 3.3.0
js-yaml: 4.1.0
parse-json: 5.2.0
- path-type: 4.0.0
+ typescript: 5.0.4
dev: true
/crelt@1.0.6:
resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==}
dev: false
- /cross-fetch@3.1.6:
- resolution: {integrity: sha512-riRvo06crlE8HiqOwIpQhxwdOk4fOeR7FVM/wXoxchFEqMNUjvbs3bfo4OTgMEMHzppd4DxFBDbyySj8Cv781g==}
- dependencies:
- node-fetch: 2.6.11
- transitivePeerDependencies:
- - encoding
- dev: true
-
/cross-spawn@6.0.5:
resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==}
engines: {node: '>=4.8'}
@@ -2291,14 +2316,13 @@ packages:
isobject: 3.0.1
dev: true
- /degenerator@4.0.3:
- resolution: {integrity: sha512-2wY8vmCfxrQpe2PKGYdiWRre5HQRwsAXbAAWRbC+z2b80MEpnWc8A3a9k4TwqwN3Z/Fm3uhNm5vYUZIbMhyRxQ==}
+ /degenerator@5.0.1:
+ resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==}
engines: {node: '>= 14'}
dependencies:
ast-types: 0.13.4
- escodegen: 1.14.3
+ escodegen: 2.1.0
esprima: 4.0.1
- vm2: 3.9.19
dev: true
/delaunator@5.0.0:
@@ -2317,14 +2341,14 @@ packages:
engines: {node: '>=8'}
dev: true
- /devtools-protocol@0.0.1135028:
- resolution: {integrity: sha512-jEcNGrh6lOXNRJvZb9RjeevtZGrgugPKSMJZxfyxWQnhlKawMPhMtk/dfC+Z/6xNXExlzTKlY5LzIAK/fRpQIw==}
- dev: true
-
/devtools-protocol@0.0.1159816:
resolution: {integrity: sha512-2cZlHxC5IlgkIWe2pSDmCrDiTzbSJWywjbDDnupOImEBcG31CQgBLV8wWE+5t+C4rimcjHsbzy7CBzf9oFjboA==}
dev: false
+ /devtools-protocol@0.0.1262051:
+ resolution: {integrity: sha512-YJe4CT5SA8on3Spa+UDtNhEqtuV6Epwz3OZ4HQVLhlRccpZ9/PAYk0/cy/oKxFKRrZPBUPyxympQci4yWNWZ9g==}
+ dev: true
+
/diff-sequences@26.6.2:
resolution: {integrity: sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==}
engines: {node: '>= 10.14.2'}
@@ -2377,6 +2401,11 @@ packages:
resolution: {integrity: sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==}
dev: false
+ /env-paths@2.2.1:
+ resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
+ engines: {node: '>=6'}
+ dev: true
+
/error-ex@1.3.2:
resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
dependencies:
@@ -2622,6 +2651,7 @@ packages:
optionator: 0.8.3
optionalDependencies:
source-map: 0.6.1
+ dev: false
/escodegen@2.0.0:
resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==}
@@ -2636,6 +2666,18 @@ packages:
source-map: 0.6.1
dev: true
+ /escodegen@2.1.0:
+ resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==}
+ engines: {node: '>=6.0'}
+ hasBin: true
+ dependencies:
+ esprima: 4.0.1
+ estraverse: 5.3.0
+ esutils: 2.0.3
+ optionalDependencies:
+ source-map: 0.6.1
+ dev: true
+
/eslint-config-google@0.14.0(eslint@8.43.0):
resolution: {integrity: sha512-WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw==}
engines: {node: '>=0.10.0'}
@@ -3150,6 +3192,7 @@ packages:
/growly@1.3.0:
resolution: {integrity: sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==}
+ requiresBuild: true
dev: true
optional: true
@@ -3246,8 +3289,8 @@ packages:
- supports-color
dev: true
- /http-proxy-agent@7.0.0:
- resolution: {integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==}
+ /http-proxy-agent@7.0.2:
+ resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==}
engines: {node: '>= 14'}
dependencies:
agent-base: 7.1.0
@@ -3266,8 +3309,8 @@ packages:
- supports-color
dev: true
- /https-proxy-agent@7.0.0:
- resolution: {integrity: sha512-0euwPCRyAPSgGdzD1IVN9nJYHtBhJwb6XPfbpQcYbPCwrBidX6GzxmchnaF4sfF/jPb74Ojx5g4yTg3sixlyPw==}
+ /https-proxy-agent@7.0.4:
+ resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==}
engines: {node: '>= 14'}
dependencies:
agent-base: 7.1.0
@@ -3348,10 +3391,6 @@ packages:
engines: {node: '>=12'}
dev: false
- /ip@1.1.8:
- resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==}
- dev: true
-
/ip@2.0.0:
resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==}
dev: true
@@ -3454,6 +3493,7 @@ packages:
resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
engines: {node: '>=8'}
hasBin: true
+ requiresBuild: true
dev: true
optional: true
@@ -3565,6 +3605,7 @@ packages:
/is-wsl@2.2.0:
resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
engines: {node: '>=8'}
+ requiresBuild: true
dependencies:
is-docker: 2.2.1
dev: true
@@ -4461,8 +4502,8 @@ packages:
ospec: 4.0.0
dev: false
- /mitt@3.0.0:
- resolution: {integrity: sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==}
+ /mitt@3.0.1:
+ resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==}
dev: true
/mixin-deep@1.3.2:
@@ -4473,10 +4514,6 @@ packages:
is-extendable: 1.0.1
dev: true
- /mkdirp-classic@0.5.3:
- resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
- dev: true
-
/mkdirp@1.0.4:
resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
engines: {node: '>=10'}
@@ -4537,6 +4574,7 @@ packages:
optional: true
dependencies:
whatwg-url: 5.0.0
+ dev: false
/node-int64@0.4.0:
resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
@@ -4714,27 +4752,27 @@ packages:
engines: {node: '>=6'}
dev: true
- /pac-proxy-agent@6.0.3:
- resolution: {integrity: sha512-5Hr1KgPDoc21Vn3rsXBirwwDnF/iac1jN/zkpsOYruyT+ZgsUhUOgVwq3v9+ukjZd/yGm/0nzO1fDfl7rkGoHQ==}
+ /pac-proxy-agent@7.0.1:
+ resolution: {integrity: sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==}
engines: {node: '>= 14'}
dependencies:
+ '@tootallnate/quickjs-emscripten': 0.23.0
agent-base: 7.1.0
debug: 4.3.4
get-uri: 6.0.1
- http-proxy-agent: 7.0.0
- https-proxy-agent: 7.0.0
- pac-resolver: 6.0.1
- socks-proxy-agent: 8.0.1
+ http-proxy-agent: 7.0.2
+ https-proxy-agent: 7.0.4
+ pac-resolver: 7.0.1
+ socks-proxy-agent: 8.0.2
transitivePeerDependencies:
- supports-color
dev: true
- /pac-resolver@6.0.1:
- resolution: {integrity: sha512-dg497MhVT7jZegPRuOScQ/z0aV/5WR0gTdRu1md+Irs9J9o+ls5jIuxjo1WfaTG+eQQkxyn5HMGvWK+w7EIBkQ==}
+ /pac-resolver@7.0.1:
+ resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==}
engines: {node: '>= 14'}
dependencies:
- degenerator: 4.0.3
- ip: 1.1.8
+ degenerator: 5.0.1
netmask: 2.0.2
dev: true
@@ -4914,18 +4952,18 @@ packages:
long: 5.2.3
dev: false
- /proxy-agent@6.2.1:
- resolution: {integrity: sha512-OIbBKlRAT+ycCm6wAYIzMwPejzRtjy8F3QiDX0eKOA3e4pe3U9F/IvzcHP42bmgQxVv97juG+J8/gx+JIeCX/Q==}
+ /proxy-agent@6.4.0:
+ resolution: {integrity: sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==}
engines: {node: '>= 14'}
dependencies:
agent-base: 7.1.0
debug: 4.3.4
- http-proxy-agent: 7.0.0
- https-proxy-agent: 7.0.0
+ http-proxy-agent: 7.0.2
+ https-proxy-agent: 7.0.4
lru-cache: 7.18.3
- pac-proxy-agent: 6.0.3
+ pac-proxy-agent: 7.0.1
proxy-from-env: 1.1.0
- socks-proxy-agent: 8.0.1
+ socks-proxy-agent: 8.0.2
transitivePeerDependencies:
- supports-color
dev: true
@@ -4950,40 +4988,33 @@ packages:
engines: {node: '>=6'}
dev: true
- /puppeteer-core@20.7.3(typescript@5.0.4):
- resolution: {integrity: sha512-OraI71GPPfUMosLqaOsDGbp/ZLoxLTm0BAda0uE6G+H3onmljfoaJcIPm8X5y1LMq1K1HF1bipcCI7hWGkd3bQ==}
- engines: {node: '>=16.3.0'}
- peerDependencies:
- typescript: '>= 4.7.4'
- peerDependenciesMeta:
- typescript:
- optional: true
+ /puppeteer-core@22.6.0:
+ resolution: {integrity: sha512-xclyGFhxHfZ9l62uXFm+JpgtJHLIZ1qHc7iR4eaIqBNKA5Dg2sDr8yvylfCx5bMN89QWIaxpV6IHsy0qUynK/g==}
+ engines: {node: '>=18'}
dependencies:
- '@puppeteer/browsers': 1.4.2(typescript@5.0.4)
- chromium-bidi: 0.4.12(devtools-protocol@0.0.1135028)
- cross-fetch: 3.1.6
+ '@puppeteer/browsers': 2.2.0
+ chromium-bidi: 0.5.13(devtools-protocol@0.0.1262051)
debug: 4.3.4
- devtools-protocol: 0.0.1135028
- typescript: 5.0.4
- ws: 8.13.0
+ devtools-protocol: 0.0.1262051
+ ws: 8.16.0
transitivePeerDependencies:
- bufferutil
- - encoding
- supports-color
- utf-8-validate
dev: true
- /puppeteer@20.7.3(typescript@5.0.4):
- resolution: {integrity: sha512-3tw12ykFRLvzTRc9PyUOE5xeHQhhLEcKEOVjSfNtRmZqlAnvfhAP8ue+mjojy8NJ1LIfF6fps7OKzSc4JSJSlA==}
- engines: {node: '>=16.3.0'}
+ /puppeteer@22.6.0(typescript@5.0.4):
+ resolution: {integrity: sha512-TYeza4rl1YXfxqUVw/0hWUWYX5cicnf6qu5kkDV+t7QrESCjMoSNnva4ZA/MRGQ03HnB9BOFw9nxs/SKek5KDA==}
+ engines: {node: '>=18'}
+ hasBin: true
requiresBuild: true
dependencies:
- '@puppeteer/browsers': 1.4.2(typescript@5.0.4)
- cosmiconfig: 8.2.0
- puppeteer-core: 20.7.3(typescript@5.0.4)
+ '@puppeteer/browsers': 2.2.0
+ cosmiconfig: 9.0.0(typescript@5.0.4)
+ devtools-protocol: 0.0.1262051
+ puppeteer-core: 22.6.0
transitivePeerDependencies:
- bufferutil
- - encoding
- supports-color
- typescript
- utf-8-validate
@@ -4999,6 +5030,7 @@ packages:
/queue-tick@1.0.1:
resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==}
+ requiresBuild: true
dev: true
/react-is@17.0.2:
@@ -5236,6 +5268,14 @@ packages:
dependencies:
lru-cache: 6.0.0
+ /semver@7.6.0:
+ resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==}
+ engines: {node: '>=10'}
+ hasBin: true
+ dependencies:
+ lru-cache: 6.0.0
+ dev: true
+
/set-blocking@2.0.0:
resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
dev: true
@@ -5276,6 +5316,7 @@ packages:
/shellwords@0.1.1:
resolution: {integrity: sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==}
+ requiresBuild: true
dev: true
optional: true
@@ -5329,8 +5370,8 @@ packages:
- supports-color
dev: true
- /socks-proxy-agent@8.0.1:
- resolution: {integrity: sha512-59EjPbbgg8U3x62hhKOFVAmySQUcfRQ4C7Q/D5sEHnZTQRrQlNKINks44DMR1gwXp0p4LaVIeccX2KHTTcHVqQ==}
+ /socks-proxy-agent@8.0.2:
+ resolution: {integrity: sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==}
engines: {node: '>= 14'}
dependencies:
agent-base: 7.1.0
@@ -5532,16 +5573,18 @@ packages:
resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
dev: true
- /tar-fs@3.0.2:
- resolution: {integrity: sha512-mLQ5iTTCv2tt3a4BwvD8QX1YFVBL/94/Nd+U2il38wt2+zaJSusp1VwJSNkBmB48FeTdOqptf1DAUIosXQBRrQ==}
+ /tar-fs@3.0.5:
+ resolution: {integrity: sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==}
dependencies:
- mkdirp-classic: 0.5.3
pump: 3.0.0
- tar-stream: 3.1.4
+ tar-stream: 3.1.7
+ optionalDependencies:
+ bare-fs: 2.2.2
+ bare-path: 2.1.0
dev: true
- /tar-stream@3.1.4:
- resolution: {integrity: sha512-IlHr7ZOW6XaVBCrSCokUJG4IqUuRcWW76B8XbrtCotbaDh6zVGE7WPCzaSz1CN+acFmWiwoa+cE4RZsom0RzXg==}
+ /tar-stream@3.1.7:
+ resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==}
dependencies:
b4a: 1.6.4
fast-fifo: 1.2.0
@@ -5642,6 +5685,7 @@ packages:
/tr46@0.0.3:
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
+ dev: false
/tr46@2.1.0:
resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==}
@@ -5795,6 +5839,10 @@ packages:
requires-port: 1.0.0
dev: true
+ /urlpattern-polyfill@10.0.0:
+ resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==}
+ dev: true
+
/use@3.1.1:
resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==}
engines: {node: '>=0.10.0'}
@@ -5813,6 +5861,7 @@ packages:
/uuid@8.3.2:
resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
hasBin: true
+ requiresBuild: true
dev: true
optional: true
@@ -6185,15 +6234,6 @@ packages:
resolution: {integrity: sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==}
dev: true
- /vm2@3.9.19:
- resolution: {integrity: sha512-J637XF0DHDMV57R6JyVsTak7nIL8gy5KH4r1HiwWLf/4GBbb5MKL5y7LpmF4A8E2nR6XmzpmMFQ7V7ppPTmUQg==}
- engines: {node: '>=6.0'}
- hasBin: true
- dependencies:
- acorn: 8.9.0
- acorn-walk: 8.2.0
- dev: true
-
/w3c-hr-time@1.0.2:
resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==}
deprecated: Use your platform's native performance.now() and performance.timeOrigin.
@@ -6220,6 +6260,7 @@ packages:
/webidl-conversions@3.0.1:
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
+ dev: false
/webidl-conversions@5.0.0:
resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==}
@@ -6246,6 +6287,7 @@ packages:
dependencies:
tr46: 0.0.3
webidl-conversions: 3.0.1
+ dev: false
/whatwg-url@8.7.0:
resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==}
@@ -6333,8 +6375,8 @@ packages:
optional: true
dev: true
- /ws@8.13.0:
- resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==}
+ /ws@8.16.0:
+ resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==}
engines: {node: '>=10.0.0'}
peerDependencies:
bufferutil: ^4.0.1
@@ -6402,19 +6444,6 @@ packages:
yargs-parser: 18.1.3
dev: true
- /yargs@17.7.1:
- resolution: {integrity: sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==}
- engines: {node: '>=12'}
- dependencies:
- cliui: 8.0.1
- escalade: 3.1.1
- get-caller-file: 2.0.5
- require-directory: 2.1.1
- string-width: 4.2.3
- y18n: 5.0.8
- yargs-parser: 21.1.1
- dev: true
-
/yargs@17.7.2:
resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
engines: {node: '>=12'}
@@ -6426,7 +6455,6 @@ packages:
string-width: 4.2.3
y18n: 5.0.8
yargs-parser: 21.1.1
- dev: false
/yauzl@2.10.0:
resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==}
@@ -6440,8 +6468,11 @@ packages:
engines: {node: '>=10'}
dev: true
+ /zod@3.22.4:
+ resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==}
+ dev: true
+
file:src/base/utils:
resolution: {directory: src/base/utils, type: directory}
name: custom_utils
- version: 0.0.1
dev: false
diff --git a/ui/src/assets/widgets/tree.scss b/ui/src/assets/widgets/tree.scss
index 83073c961..0f6604bf8 100644
--- a/ui/src/assets/widgets/tree.scss
+++ b/ui/src/assets/widgets/tree.scss
@@ -2,66 +2,60 @@
$chevron-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='8' width='8'%3E%3Cline x1='2' y1='0' x2='6' y2='4' stroke='black'/%3E%3Cline x1='6' y1='4' x2='2' y2='8' stroke='black'/%3E%3C/svg%3E");
-@mixin grid {
+.pf-tree {
+ font-family: $pf-font;
display: grid;
- grid-template-columns: [gutter]auto [left]auto [right]1fr;
+ grid-template-columns: [left]auto [right]1fr;
row-gap: 5px;
-}
-.pf-tree {
- font-family: $pf-font;
- @include grid;
.pf-tree-node {
display: contents;
- .pf-tree-content {
- display: contents;
- &:hover {
- background: $table-hover-color;
- }
- .pf-tree-left {
- background: inherit;
- min-width: max-content;
- border-radius: $pf-border-radius 0 0 $pf-border-radius;
- font-weight: bolder;
- }
- .pf-tree-right {
- background: inherit;
- padding: 0 0 0 15px;
- border-radius: 0 $pf-border-radius $pf-border-radius 0;
- word-break: break-all;
- white-space: pre-wrap;
- }
+
+ &:hover {
+ background: $table-hover-color;
}
+
+ .pf-tree-left {
+ grid-column: left;
+ background: inherit;
+ min-width: max-content;
+ border-radius: $pf-border-radius 0 0 $pf-border-radius;
+ font-weight: bolder;
+ }
+
+ .pf-tree-right {
+ grid-column: right;
+ background: inherit;
+ padding: 0 0 0 15px;
+ border-radius: 0 $pf-border-radius $pf-border-radius 0;
+ word-break: break-all;
+ white-space: pre-wrap;
+ }
+
.pf-tree-gutter {
- display: block;
+ display: inline-flex;
position: relative;
- }
- &.pf-collapsed > .pf-tree-gutter {
- cursor: pointer;
width: 16px;
- display: flex;
justify-content: center;
align-items: center;
+ }
+
+ &.pf-collapsed > .pf-tree-left > .pf-tree-gutter {
+ cursor: pointer;
+
&::after {
content: $chevron-svg;
}
}
- &.pf-expanded > .pf-tree-gutter {
+ &.pf-expanded > .pf-tree-left > .pf-tree-gutter {
cursor: pointer;
- width: 16px;
- display: flex;
- justify-content: center;
- align-items: center;
&::after {
content: $chevron-svg;
rotate: 90deg;
}
}
- &.pf-loading > .pf-tree-gutter {
- width: 16px;
- display: flex;
- justify-content: center;
- align-items: center;
+
+ &.pf-loading > .pf-tree-left > .pf-tree-gutter {
&::after {
content: "";
border: solid 1px lightgray;
@@ -76,19 +70,19 @@ $chevron-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'
display: block;
position: relative;
}
- .pf-tree-children {
- grid-column: 2 / span 2;
- @include grid;
- .pf-tree-gutter {
- // Nested gutters are always present, to provide indentation
- width: 16px;
- }
- }
- &.pf-collapsed > .pf-tree-children {
- display: none;
- }
- &.pf-collapsed > .pf-tree-indent-gutter {
+
+ &.pf-collapsed + .pf-tree-children {
display: none;
}
}
+
+ .pf-tree-children {
+ display: grid;
+ grid-column: 1 / span 2;
+ grid-template-columns: subgrid;
+ row-gap: 5px;
+ border-left: solid rgba(0, 0, 0, 0.2) 1px;
+ margin-left: 6px;
+ padding-left: 6px;
+ }
}
diff --git a/ui/src/base/logging.ts b/ui/src/base/logging.ts
index 04e0bc706..05b288d0b 100644
--- a/ui/src/base/logging.ts
+++ b/ui/src/base/logging.ts
@@ -60,16 +60,36 @@ export function reportError(err: ErrorEvent | PromiseRejectionEvent | {}) {
if (err instanceof ErrorEvent) {
errType = 'ERROR';
- errMsg = `${err.error}`;
- errorObj = err.error;
+ // In nominal cases the error is set in err.error{message,stack} and
+ // a toString() of the error object returns a meaningful one-line
+ // description. However, in the case of wasm errors, emscripten seems to
+ // wrap the error in an unusual way: err.error is null but err.message
+ // contains the whole one-line + stack trace.
+ if (err.error === null || err.error === undefined) {
+ // Wasm case.
+ const errLines = `${err.message}`.split('\n');
+ errMsg = errLines[0];
+ errorObj = {stack: errLines.slice(1).join('\n')};
+ } else {
+ // Standard JS case.
+ errMsg = `${err.error}`;
+ errorObj = err.error;
+ }
} else if (err instanceof PromiseRejectionEvent) {
errType = 'PROMISE_REJ';
- errMsg = `PromiseRejection: ${err.reason}`;
+ errMsg = `${err.reason}`;
errorObj = err.reason;
} else {
errType = 'OTHER';
- errMsg = `Err: ${err}`;
+ errMsg = `${err}`;
}
+
+ // Remove useless "Uncaught Error:" or "Error:" prefixes which just create
+ // noise in the bug tracker without adding any meaningful value.
+ errMsg = errMsg.replace(/^Uncaught Error:/, '');
+ errMsg = errMsg.replace(/^Error:/, '');
+ errMsg = errMsg.trim();
+
if (errorObj !== undefined && errorObj !== null) {
const maybeStack = (errorObj as {stack?: string}).stack;
let errStack = maybeStack !== undefined ? `${maybeStack}` : '';
@@ -113,6 +133,15 @@ export function reportError(err: ErrorEvent | PromiseRejectionEvent | {}) {
entryLocation = entryLocation.replace(`/${VERSION}/`, '');
}
stack.push({name: entryName, location: entryLocation});
+ } // for (line in stack)
+
+ // Beautify the Wasm error message if possible. Most Wasm errors are of the
+ // form RuntimeError: unreachable or RuntimeError: abort. Those lead to bug
+ // titles that are undistinguishable from each other. Instead try using the
+ // first entry of the stack that contains a perfetto:: function name.
+ const wasmFunc = stack.find((e) => e.name.includes('perfetto::'))?.name;
+ if (errMsg.includes('RuntimeError') && wasmFunc) {
+ errMsg += ` @ ${wasmFunc.trim()}`;
}
}
// Invoke all the handlers registered through addErrorHandler.
diff --git a/ui/src/frontend/error_dialog.ts b/ui/src/frontend/error_dialog.ts
index dd9a4a9c6..f2cea3770 100644
--- a/ui/src/frontend/error_dialog.ts
+++ b/ui/src/frontend/error_dialog.ts
@@ -36,6 +36,8 @@ export function maybeShowErrorDialog(err: ErrorDetails) {
// Here we rely on the exception message from onCannotGrowMemory function
if (
err.message.includes('Cannot enlarge memory') ||
+ err.stack.some((entry) => entry.name.includes('_emscripten_resize_heap')) ||
+ err.stack.some((entry) => entry.name.includes('sbrk')) ||
/^out of memory$/m.exec(err.message)
) {
showOutOfMemoryDialog();
diff --git a/ui/src/frontend/widgets_page.ts b/ui/src/frontend/widgets_page.ts
index 65fb04e29..98fc400d7 100644
--- a/ui/src/frontend/widgets_page.ts
+++ b/ui/src/frontend/widgets_page.ts
@@ -371,6 +371,17 @@ interface WidgetTitleAttrs {
label: string;
}
+function recursiveTreeNode(): m.Children {
+ return m(LazyTreeNode, {
+ left: 'Recursive',
+ right: '...',
+ fetchData: async () => {
+ // await new Promise((r) => setTimeout(r, 1000));
+ return () => recursiveTreeNode();
+ },
+ });
+}
+
class WidgetTitle implements m.ClassComponent<WidgetTitleAttrs> {
view({attrs}: m.CVnode<WidgetTitleAttrs>) {
const {label} = attrs;
@@ -996,6 +1007,7 @@ export const WidgetsPage = createPage({
return () => m(TreeNode, {left: 'foo'});
},
}),
+ recursiveTreeNode(),
),
wide: true,
}),
diff --git a/ui/src/widgets/tree.ts b/ui/src/widgets/tree.ts
index 68dcbe1e3..0df2f58a7 100644
--- a/ui/src/widgets/tree.ts
+++ b/ui/src/widgets/tree.ts
@@ -82,24 +82,27 @@ export class TreeNode implements m.ClassComponent<TreeNodeAttrs> {
attrs,
attrs: {left, onCollapseChanged = () => {}},
} = vnode;
- return m(
- '.pf-tree-node',
- {
- class: classNames(this.getClassNameForNode(vnode)),
- },
- m('span.pf-tree-gutter', {
- onclick: () => {
- this.collapsed = !this.isCollapsed(vnode);
- onCollapseChanged(this.collapsed, attrs);
- scheduleFullRedraw();
+ return [
+ m(
+ '.pf-tree-node',
+ {
+ class: classNames(this.getClassNameForNode(vnode)),
},
- }),
- m('.pf-tree-content', m('.pf-tree-left', left), this.renderRight(vnode)),
- hasChildren(vnode) && [
- m('span.pf-tree-indent-gutter'),
- m('.pf-tree-children', children),
- ],
- );
+ m(
+ '.pf-tree-left',
+ m('span.pf-tree-gutter', {
+ onclick: () => {
+ this.collapsed = !this.isCollapsed(vnode);
+ onCollapseChanged(this.collapsed, attrs);
+ scheduleFullRedraw();
+ },
+ }),
+ left,
+ ),
+ this.renderRight(vnode),
+ ),
+ hasChildren(vnode) && m('.pf-tree-children', children),
+ ];
}
private getClassNameForNode(vnode: m.CVnode<TreeNodeAttrs>) {