diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2024-05-02 01:07:29 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2024-05-02 01:07:29 +0000 |
commit | 73898b17256af788050ba599577bfce1848e36b3 (patch) | |
tree | 132a807fbac369e48fa3a880a8c4ca40cea9cc76 | |
parent | 6ba479ab62410cf99abecb5729301730dc04b613 (diff) | |
parent | 583bc03f543ae929b77725a90f80005de57037ee (diff) | |
download | perfetto-sdk-release.tar.gz |
Snap for 11790536 from 583bc03f543ae929b77725a90f80005de57037ee to sdk-releasesdk-release
Change-Id: I6a92b2f7cc30d75487c76910fe44b8ffe8451da2
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 " + @@ -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>) { |