add WindowManager protos

Bug: 323165543
Test: presubmit
Change-Id: I31772af0a06e52df4fdb08a6dc1a07688b9dfbf6
diff --git a/Android.bp b/Android.bp
index 2f4181b..8c3083d 100644
--- a/Android.bp
+++ b/Android.bp
@@ -5806,14 +5806,24 @@
         "protos/perfetto/common/tracing_service_state.proto",
         "protos/perfetto/common/track_event_descriptor.proto",
         "protos/perfetto/trace/android/android_input_event.proto",
+        "protos/perfetto/trace/android/app/statusbarmanager.proto",
+        "protos/perfetto/trace/android/app/window_configuration.proto",
+        "protos/perfetto/trace/android/content/activityinfo.proto",
+        "protos/perfetto/trace/android/content/configuration.proto",
+        "protos/perfetto/trace/android/content/locale.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/privacy.proto",
         "protos/perfetto/trace/android/protolog.proto",
+        "protos/perfetto/trace/android/server/animationadapter.proto",
         "protos/perfetto/trace/android/server/inputmethod/inputmethodmanagerservice.proto",
+        "protos/perfetto/trace/android/server/surfaceanimator.proto",
+        "protos/perfetto/trace/android/server/windowcontainerthumbnail.proto",
+        "protos/perfetto/trace/android/server/windowmanagerservice.proto",
         "protos/perfetto/trace/android/shell_transition.proto",
         "protos/perfetto/trace/android/surfaceflinger_common.proto",
         "protos/perfetto/trace/android/surfaceflinger_layers.proto",
@@ -5821,6 +5831,8 @@
         "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/displayinfo.proto",
+        "protos/perfetto/trace/android/view/enums.proto",
         "protos/perfetto/trace/android/view/imefocuscontroller.proto",
         "protos/perfetto/trace/android/view/imeinsetssourceconsumer.proto",
         "protos/perfetto/trace/android/view/inputmethod/editorinfo.proto",
@@ -5832,10 +5844,13 @@
         "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/remote_animation_target.proto",
+        "protos/perfetto/trace/android/view/surface.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/viewcapture.proto",
+        "protos/perfetto/trace/android/windowmanager.proto",
         "protos/perfetto/trace/android/winscope.proto",
         "protos/perfetto/trace/android/winscope_extensions.proto",
         "protos/perfetto/trace/android/winscope_extensions_impl.proto",
@@ -5854,14 +5869,26 @@
     name: "perfetto_protos_perfetto_trace_android_winscope_extensions_zero",
     srcs: [
         "protos/perfetto/trace/android/android_input_event.proto",
+        "protos/perfetto/trace/android/app/statusbarmanager.proto",
+        "protos/perfetto/trace/android/app/window_configuration.proto",
+        "protos/perfetto/trace/android/content/activityinfo.proto",
+        "protos/perfetto/trace/android/content/configuration.proto",
+        "protos/perfetto/trace/android/content/locale.proto",
         "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/privacy.proto",
+        "protos/perfetto/trace/android/server/animationadapter.proto",
         "protos/perfetto/trace/android/server/inputmethod/inputmethodmanagerservice.proto",
+        "protos/perfetto/trace/android/server/surfaceanimator.proto",
+        "protos/perfetto/trace/android/server/windowcontainerthumbnail.proto",
+        "protos/perfetto/trace/android/server/windowmanagerservice.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/displayinfo.proto",
+        "protos/perfetto/trace/android/view/enums.proto",
         "protos/perfetto/trace/android/view/imefocuscontroller.proto",
         "protos/perfetto/trace/android/view/imeinsetssourceconsumer.proto",
         "protos/perfetto/trace/android/view/inputmethod/editorinfo.proto",
@@ -5873,10 +5900,13 @@
         "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/remote_animation_target.proto",
+        "protos/perfetto/trace/android/view/surface.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/viewcapture.proto",
+        "protos/perfetto/trace/android/windowmanager.proto",
         "protos/perfetto/trace/android/winscope_extensions_impl.proto",
     ],
 }
@@ -5896,14 +5926,26 @@
     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/android_input_event.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/android/app/statusbarmanager.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/android/app/window_configuration.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/android/content/activityinfo.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/android/content/configuration.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/android/content/locale.pbzero.cc",
         "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/privacy.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/android/server/animationadapter.pbzero.cc",
         "external/perfetto/protos/perfetto/trace/android/server/inputmethod/inputmethodmanagerservice.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/android/server/surfaceanimator.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/android/server/windowcontainerthumbnail.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/android/server/windowmanagerservice.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/displayinfo.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/android/view/enums.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",
@@ -5915,10 +5957,13 @@
         "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/remote_animation_target.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/android/view/surface.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/viewcapture.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/android/windowmanager.pbzero.cc",
         "external/perfetto/protos/perfetto/trace/android/winscope_extensions_impl.pbzero.cc",
     ],
 }
@@ -5938,14 +5983,26 @@
     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/android_input_event.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/android/app/statusbarmanager.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/android/app/window_configuration.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/android/content/activityinfo.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/android/content/configuration.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/android/content/locale.pbzero.h",
         "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/privacy.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/android/server/animationadapter.pbzero.h",
         "external/perfetto/protos/perfetto/trace/android/server/inputmethod/inputmethodmanagerservice.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/android/server/surfaceanimator.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/android/server/windowcontainerthumbnail.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/android/server/windowmanagerservice.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/displayinfo.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/android/view/enums.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",
@@ -5957,10 +6014,13 @@
         "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/remote_animation_target.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/android/view/surface.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/viewcapture.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/android/windowmanager.pbzero.h",
         "external/perfetto/protos/perfetto/trace/android/winscope_extensions_impl.pbzero.h",
     ],
     export_include_dirs: [
@@ -15873,7 +15933,12 @@
         "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/app/statusbarmanager.proto",
+        "protos/perfetto/trace/android/app/window_configuration.proto",
         "protos/perfetto/trace/android/camera_event.proto",
+        "protos/perfetto/trace/android/content/activityinfo.proto",
+        "protos/perfetto/trace/android/content/configuration.proto",
+        "protos/perfetto/trace/android/content/locale.proto",
         "protos/perfetto/trace/android/frame_timeline_event.proto",
         "protos/perfetto/trace/android/gpu_mem_event.proto",
         "protos/perfetto/trace/android/graphics/pixelformat.proto",
@@ -15887,8 +15952,13 @@
         "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/privacy.proto",
         "protos/perfetto/trace/android/protolog.proto",
+        "protos/perfetto/trace/android/server/animationadapter.proto",
         "protos/perfetto/trace/android/server/inputmethod/inputmethodmanagerservice.proto",
+        "protos/perfetto/trace/android/server/surfaceanimator.proto",
+        "protos/perfetto/trace/android/server/windowcontainerthumbnail.proto",
+        "protos/perfetto/trace/android/server/windowmanagerservice.proto",
         "protos/perfetto/trace/android/shell_transition.proto",
         "protos/perfetto/trace/android/surfaceflinger_common.proto",
         "protos/perfetto/trace/android/surfaceflinger_layers.proto",
@@ -15896,6 +15966,8 @@
         "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/displayinfo.proto",
+        "protos/perfetto/trace/android/view/enums.proto",
         "protos/perfetto/trace/android/view/imefocuscontroller.proto",
         "protos/perfetto/trace/android/view/imeinsetssourceconsumer.proto",
         "protos/perfetto/trace/android/view/inputmethod/editorinfo.proto",
@@ -15907,10 +15979,13 @@
         "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/remote_animation_target.proto",
+        "protos/perfetto/trace/android/view/surface.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/viewcapture.proto",
+        "protos/perfetto/trace/android/windowmanager.proto",
         "protos/perfetto/trace/android/winscope_extensions.proto",
         "protos/perfetto/trace/android/winscope_extensions_impl.proto",
         "protos/perfetto/trace/chrome/chrome_benchmark_metadata.proto",
@@ -17438,7 +17513,7 @@
     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,perfetto.protos.ViewCapture " +
+        "--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,perfetto.protos.ViewCapture,perfetto.protos.WindowManagerTraceEntry " +
         "--javastream_out=$(genDir)/$(in) " +
         "-Iexternal/protobuf/src " +
         "-Iexternal/perfetto " +
diff --git a/Android.bp.extras b/Android.bp.extras
index b9ed086..6d479e8 100644
--- a/Android.bp.extras
+++ b/Android.bp.extras
@@ -185,7 +185,7 @@
     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,perfetto.protos.ViewCapture " +
+        "--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,perfetto.protos.ViewCapture,perfetto.protos.WindowManagerTraceEntry " +
         "--javastream_out=$(genDir)/$(in) " +
         "-Iexternal/protobuf/src " +
         "-Iexternal/perfetto " +
diff --git a/BUILD b/BUILD
index 6a25ed6..5e4dc5a 100644
--- a/BUILD
+++ b/BUILD
@@ -4921,14 +4921,26 @@
     name = "protos_perfetto_trace_android_winscope_extensions_protos",
     srcs = [
         "protos/perfetto/trace/android/android_input_event.proto",
+        "protos/perfetto/trace/android/app/statusbarmanager.proto",
+        "protos/perfetto/trace/android/app/window_configuration.proto",
+        "protos/perfetto/trace/android/content/activityinfo.proto",
+        "protos/perfetto/trace/android/content/configuration.proto",
+        "protos/perfetto/trace/android/content/locale.proto",
         "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/privacy.proto",
+        "protos/perfetto/trace/android/server/animationadapter.proto",
         "protos/perfetto/trace/android/server/inputmethod/inputmethodmanagerservice.proto",
+        "protos/perfetto/trace/android/server/surfaceanimator.proto",
+        "protos/perfetto/trace/android/server/windowcontainerthumbnail.proto",
+        "protos/perfetto/trace/android/server/windowmanagerservice.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/displayinfo.proto",
+        "protos/perfetto/trace/android/view/enums.proto",
         "protos/perfetto/trace/android/view/imefocuscontroller.proto",
         "protos/perfetto/trace/android/view/imeinsetssourceconsumer.proto",
         "protos/perfetto/trace/android/view/inputmethod/editorinfo.proto",
@@ -4940,10 +4952,13 @@
         "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/remote_animation_target.proto",
+        "protos/perfetto/trace/android/view/surface.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/viewcapture.proto",
+        "protos/perfetto/trace/android/windowmanager.proto",
         "protos/perfetto/trace/android/winscope_extensions_impl.proto",
     ],
     visibility = [
diff --git a/protos/perfetto/trace/android/BUILD.gn b/protos/perfetto/trace/android/BUILD.gn
index 50af2b2..d7bed91 100644
--- a/protos/perfetto/trace/android/BUILD.gn
+++ b/protos/perfetto/trace/android/BUILD.gn
@@ -73,8 +73,20 @@
     "inputmethodservice/softinputwindow.proto",
     "server/inputmethod/inputmethodmanagerservice.proto",
     "typedef.proto",
+    "app/statusbarmanager.proto",
+    "app/window_configuration.proto",
+    "content/activityinfo.proto",
+    "content/configuration.proto",
+    "content/locale.proto",
+    "privacy.proto",
+    "server/animationadapter.proto",
+    "server/surfaceanimator.proto",
+    "server/windowcontainerthumbnail.proto",
+    "server/windowmanagerservice.proto",
     "view/display.proto",
     "view/displaycutout.proto",
+    "view/displayinfo.proto",
+    "view/enums.proto",
     "view/imefocuscontroller.proto",
     "view/imeinsetssourceconsumer.proto",
     "view/inputmethod/editorinfo.proto",
@@ -86,10 +98,13 @@
     "view/insetssourceconsumer.proto",
     "view/insetssourcecontrol.proto",
     "view/insetsstate.proto",
+    "view/remote_animation_target.proto",
+    "view/surface.proto",
     "view/surfacecontrol.proto",
     "view/viewrootimpl.proto",
     "view/windowlayoutparams.proto",
     "viewcapture.proto",
+    "windowmanager.proto",
     "winscope_extensions_impl.proto",
   ]
   import_dirs = [ "${perfetto_protobuf_src_dir}" ]
diff --git a/protos/perfetto/trace/android/app/statusbarmanager.proto b/protos/perfetto/trace/android/app/statusbarmanager.proto
new file mode 100644
index 0000000..a9c2937
--- /dev/null
+++ b/protos/perfetto/trace/android/app/statusbarmanager.proto
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2018 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 StatusBarManagerProto {
+  enum WindowState {
+    WINDOW_STATE_SHOWING = 0;
+    WINDOW_STATE_HIDING = 1;
+    WINDOW_STATE_HIDDEN = 2;
+  }
+  enum TransientWindowState {
+    TRANSIENT_BAR_NONE = 0;
+    TRANSIENT_BAR_SHOW_REQUESTED = 1;
+    TRANSIENT_BAR_SHOWING = 2;
+    TRANSIENT_BAR_HIDING = 3;
+  }
+}
diff --git a/protos/perfetto/trace/android/app/window_configuration.proto b/protos/perfetto/trace/android/app/window_configuration.proto
new file mode 100644
index 0000000..8f86deb
--- /dev/null
+++ b/protos/perfetto/trace/android/app/window_configuration.proto
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2017 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/typedef.proto";
+
+package perfetto.protos;
+
+// Proto representation for WindowConfiguration.java class
+message WindowConfigurationProto {
+  optional RectProto app_bounds = 1;
+  optional int32 windowing_mode = 2
+      [(.perfetto.protos.typedef) =
+           "android.app.WindowConfiguration.WindowingMode"];
+  optional int32 activity_type = 3
+      [(.perfetto.protos.typedef) =
+           "android.app.WindowConfiguration.ActivityType"];
+  optional RectProto bounds = 4;
+  optional RectProto max_bounds = 5;
+}
diff --git a/protos/perfetto/trace/android/content/activityinfo.proto b/protos/perfetto/trace/android/content/activityinfo.proto
new file mode 100644
index 0000000..0b44035
--- /dev/null
+++ b/protos/perfetto/trace/android/content/activityinfo.proto
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2018 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 ActivityInfoProto {
+  enum ScreenOrientation {
+    SCREEN_ORIENTATION_UNSET = -2;
+    SCREEN_ORIENTATION_UNSPECIFIED = -1;
+    SCREEN_ORIENTATION_LANDSCAPE = 0;
+    SCREEN_ORIENTATION_PORTRAIT = 1;
+    SCREEN_ORIENTATION_USER = 2;
+    SCREEN_ORIENTATION_BEHIND = 3;
+    SCREEN_ORIENTATION_SENSOR = 4;
+    SCREEN_ORIENTATION_NOSENSOR = 5;
+    SCREEN_ORIENTATION_SENSOR_LANDSCAPE = 6;
+    SCREEN_ORIENTATION_SENSOR_PORTRAIT = 7;
+    SCREEN_ORIENTATION_REVERSE_LANDSCAPE = 8;
+    SCREEN_ORIENTATION_REVERSE_PORTRAIT = 9;
+    SCREEN_ORIENTATION_FULL_SENSOR = 10;
+    SCREEN_ORIENTATION_USER_LANDSCAPE = 11;
+    SCREEN_ORIENTATION_USER_PORTRAIT = 12;
+    SCREEN_ORIENTATION_FULL_USER = 13;
+    SCREEN_ORIENTATION_LOCKED = 14;
+  }
+}
diff --git a/protos/perfetto/trace/android/content/configuration.proto b/protos/perfetto/trace/android/content/configuration.proto
new file mode 100644
index 0000000..929009a
--- /dev/null
+++ b/protos/perfetto/trace/android/content/configuration.proto
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2006 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/app/window_configuration.proto";
+import "protos/perfetto/trace/android/content/locale.proto";
+import "protos/perfetto/trace/android/privacy.proto";
+
+package perfetto.protos;
+
+// An android Configuration object
+message ConfigurationProto {
+  optional float font_scale = 1;
+  optional uint32 mcc = 2;
+  optional uint32 mnc = 3 [(.perfetto.protos.privacy).dest = DEST_EXPLICIT];
+  repeated LocaleProto locales = 4 [deprecated = true];
+  optional uint32 screen_layout = 5;
+  optional uint32 color_mode = 6;
+  optional uint32 touchscreen = 7;
+  optional uint32 keyboard = 8;
+  optional uint32 keyboard_hidden = 9;
+  optional uint32 hard_keyboard_hidden = 10;
+  optional uint32 navigation = 11;
+  optional uint32 navigation_hidden = 12;
+  optional uint32 orientation = 13;
+  optional uint32 ui_mode = 14;
+  optional uint32 screen_width_dp = 15;
+  optional uint32 screen_height_dp = 16;
+  optional uint32 smallest_screen_width_dp = 17;
+  optional uint32 density_dpi = 18;
+  optional WindowConfigurationProto window_configuration = 19;
+  optional string locale_list = 20;
+  optional uint32 font_weight_adjustment = 21;
+  optional uint32 grammatical_gender = 22;
+}
+
+// All current configuration data used to select resources
+message ResourcesConfigurationProto {
+  required ConfigurationProto configuration = 1;
+
+  optional uint32 sdk_version = 2;
+  optional uint32 screen_width_px = 3;
+  optional uint32 screen_height_px = 4;
+}
+
+// Overall device configuration data
+message DeviceConfigurationProto {
+  optional uint32 stable_screen_width_px = 1;
+  optional uint32 stable_screen_height_px = 2;
+  optional uint32 stable_density_dpi = 3;
+
+  optional uint64 total_ram = 4;
+  optional bool low_ram = 5;
+  optional uint32 max_cores = 6;
+  optional bool has_secure_screen_lock = 7;
+
+  optional uint32 opengl_version = 8;
+  repeated string opengl_extensions = 9;
+
+  repeated string shared_libraries = 10;
+  repeated string features = 11;
+  repeated string cpu_architectures = 12;
+}
+
+// All current configuration data device is running with, everything used
+// to filter and target apps.
+message GlobalConfigurationProto {
+  optional ResourcesConfigurationProto resources = 1;
+  optional DeviceConfigurationProto device = 2;
+}
diff --git a/protos/perfetto/trace/android/content/locale.proto b/protos/perfetto/trace/android/content/locale.proto
new file mode 100644
index 0000000..5e9c9ab
--- /dev/null
+++ b/protos/perfetto/trace/android/content/locale.proto
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2016 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 LocaleProto {
+  option deprecated = true;
+
+  optional string language = 1;
+  optional string country = 2;
+  optional string variant = 3;
+  optional string script = 4;
+}
diff --git a/protos/perfetto/trace/android/privacy.proto b/protos/perfetto/trace/android/privacy.proto
new file mode 100644
index 0000000..82a68c7
--- /dev/null
+++ b/protos/perfetto/trace/android/privacy.proto
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2016 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";
+
+enum Destination {
+    // Fields or messages annotated with DEST_LOCAL must never be
+    // extracted from the device automatically. They can be accessed
+    // by tools on the developer's workstation or test lab devices.
+    DEST_LOCAL = 0;
+
+    // Fields or messages annotated with DEST_EXPLICIT can be sent
+    // off the device with an explicit user action.
+    DEST_EXPLICIT = 100;
+
+    // Fields or messages annotated with DEST_AUTOMATIC can be sent by
+    // automatic means, without per-sending user consent. The user
+    // still must have previously accepted a consent to share this
+    // information.
+    DEST_AUTOMATIC = 200;
+
+    // This is the default value, which could be overridden by other values.
+    // The reason to pick 255 is it fits into one byte. UNSET fields are treated
+    // as EXPLICIT.
+    DEST_UNSET = 255;
+
+    // Currently use 0, 100, 200 and 255, values in between are reserved for futures.
+}
+
+message PrivacyFlags {
+    optional Destination dest = 1 [ default = DEST_UNSET ];
+
+    // regex to filter pii sensitive info from a string field type.
+    repeated string patterns = 2;
+}
+
+extend google.protobuf.FieldOptions {
+    // Flags used to annotate a field with right privacy level.
+    optional PrivacyFlags privacy = 102672883;
+}
+
+extend google.protobuf.MessageOptions {
+    // Flags used to annotate a message which all its unset primitive fields inhert this tag.
+    optional PrivacyFlags msg_privacy = 102672883;
+}
+
diff --git a/protos/perfetto/trace/android/server/animationadapter.proto b/protos/perfetto/trace/android/server/animationadapter.proto
new file mode 100644
index 0000000..d2f1f75
--- /dev/null
+++ b/protos/perfetto/trace/android/server/animationadapter.proto
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2018 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/remote_animation_target.proto";
+
+package perfetto.protos;
+
+message AnimationAdapterProto {
+  optional LocalAnimationAdapterProto local = 1;
+  optional RemoteAnimationAdapterWrapperProto remote = 2;
+}
+
+// represents RemoteAnimationAdapterWrapper
+message RemoteAnimationAdapterWrapperProto {
+  optional RemoteAnimationTargetProto target = 1;
+}
+
+// represents LocalAnimationAdapter
+message LocalAnimationAdapterProto {
+  optional AnimationSpecProto animation_spec = 1;
+}
+
+message AnimationSpecProto {
+  optional WindowAnimationSpecProto window = 1;
+  optional MoveAnimationSpecProto move = 2;
+  optional AlphaAnimationSpecProto alpha = 3;
+  optional RotationAnimationSpecProto rotate = 4;
+}
+
+// represents WindowAnimationSpec
+message WindowAnimationSpecProto {
+  optional string animation = 1;
+}
+
+// represents MoveAnimationSpec
+message MoveAnimationSpecProto {
+  optional PointProto from = 1;
+  optional PointProto to = 2;
+  optional int64 duration_ms = 3;
+}
+
+// represents AlphaAnimationSpec
+message AlphaAnimationSpecProto {
+  optional float from = 1;
+  optional float to = 2;
+  optional int64 duration_ms = 3;
+}
+
+// represents RotationAnimationSpec
+message RotationAnimationSpecProto {
+  optional float start_luma = 1;
+  optional float end_luma = 2;
+  optional int64 duration_ms = 3;
+}
diff --git a/protos/perfetto/trace/android/server/surfaceanimator.proto b/protos/perfetto/trace/android/server/surfaceanimator.proto
new file mode 100644
index 0000000..70e700d
--- /dev/null
+++ b/protos/perfetto/trace/android/server/surfaceanimator.proto
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2018 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/server/animationadapter.proto";
+import "protos/perfetto/trace/android/view/surfacecontrol.proto";
+
+package perfetto.protos;
+
+// Represents a {@link com.android.server.wm.SurfaceAnimator} object
+message SurfaceAnimatorProto {
+  optional SurfaceControlProto leash = 1;
+  optional bool animation_start_delayed = 2;
+  optional AnimationAdapterProto animation_adapter = 3;
+}
diff --git a/protos/perfetto/trace/android/server/windowcontainerthumbnail.proto b/protos/perfetto/trace/android/server/windowcontainerthumbnail.proto
new file mode 100644
index 0000000..1d19d23
--- /dev/null
+++ b/protos/perfetto/trace/android/server/windowcontainerthumbnail.proto
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2018 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/server/surfaceanimator.proto";
+
+package perfetto.protos;
+
+// Represents a {@link com.android.server.wm.WindowContainerThumbnailProto}
+// object
+message WindowContainerThumbnailProto {
+  optional int32 width = 1;
+  optional int32 height = 2;
+  optional SurfaceAnimatorProto surface_animator = 3;
+}
diff --git a/protos/perfetto/trace/android/server/windowmanagerservice.proto b/protos/perfetto/trace/android/server/windowmanagerservice.proto
new file mode 100644
index 0000000..dcb4583
--- /dev/null
+++ b/protos/perfetto/trace/android/server/windowmanagerservice.proto
@@ -0,0 +1,590 @@
+/*
+ * Copyright (C) 2017 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/app/statusbarmanager.proto";
+import "protos/perfetto/trace/android/content/activityinfo.proto";
+import "protos/perfetto/trace/android/content/configuration.proto";
+import "protos/perfetto/trace/android/graphics/rect.proto";
+import "protos/perfetto/trace/android/server/windowcontainerthumbnail.proto";
+import "protos/perfetto/trace/android/server/surfaceanimator.proto";
+import "protos/perfetto/trace/android/view/displaycutout.proto";
+import "protos/perfetto/trace/android/view/displayinfo.proto";
+import "protos/perfetto/trace/android/view/surface.proto";
+import "protos/perfetto/trace/android/view/windowlayoutparams.proto";
+import "protos/perfetto/trace/android/privacy.proto";
+import "protos/perfetto/trace/android/typedef.proto";
+
+import "protos/perfetto/trace/android/view/surfacecontrol.proto";
+import "protos/perfetto/trace/android/view/insetssource.proto";
+import "protos/perfetto/trace/android/view/insetssourcecontrol.proto";
+
+import "protos/perfetto/trace/android/view/enums.proto";
+
+package perfetto.protos;
+
+message WindowManagerServiceDumpProto {
+  optional WindowManagerPolicyProto policy = 1;
+  // window hierarchy root
+  optional RootWindowContainerProto root_window_container = 2;
+  optional IdentifierProto focused_window = 3;
+  optional string focused_app = 4;
+  optional IdentifierProto input_method_window = 5;
+  optional bool display_frozen = 6;
+  optional int32 rotation = 7 [
+    (.perfetto.protos.typedef) = "android.view.Surface.Rotation",
+    deprecated = true
+  ];
+  optional int32 last_orientation = 8 [
+    (.perfetto.protos.typedef) =
+        "android.content.pm.ActivityInfo.ScreenOrientation",
+    deprecated = true
+  ];
+  optional int32 focused_display_id = 9;
+  optional bool hard_keyboard_available = 10;
+  optional bool window_frames_valid = 11;
+  optional BackNavigationProto back_navigation = 12;
+}
+
+// represents RootWindowContainer object
+message RootWindowContainerProto {
+  optional WindowContainerProto window_container = 1;
+  repeated DisplayContentProto displays = 2 [deprecated = true];
+  // IdentifierProto windows
+  reserved 3;
+  // window references in top down z order
+  repeated WindowStateProto windows = 4 [deprecated = true];
+  optional KeyguardControllerProto keyguard_controller = 5;
+  // Whether or not the home activity is the recents activity. This is needed
+  // for the CTS tests to know what activity types to check for when invoking
+  // splitscreen multi-window.
+  optional bool is_home_recents_component = 6;
+  repeated IdentifierProto pending_activities = 7 [deprecated = true];
+  optional int32 default_min_size_resizable_task = 8 [deprecated = true];
+}
+
+message BarControllerProto {
+  optional StatusBarManagerProto.WindowState state = 1;
+  optional StatusBarManagerProto.TransientWindowState transient_state = 2;
+}
+
+message WindowOrientationListenerProto {
+  optional bool enabled = 1;
+  optional SurfaceProto.Rotation rotation = 2;
+}
+
+message KeyguardServiceDelegateProto {
+  optional bool showing = 1;
+  optional bool occluded = 2;
+  optional bool secure = 3;
+  enum ScreenState {
+    SCREEN_STATE_OFF = 0;
+    SCREEN_STATE_TURNING_ON = 1;
+    SCREEN_STATE_ON = 2;
+    SCREEN_STATE_TURNING_OFF = 3;
+  }
+  optional ScreenState screen_state = 4;
+  enum InteractiveState {
+    INTERACTIVE_STATE_SLEEP = 0;
+    INTERACTIVE_STATE_WAKING = 1;
+    INTERACTIVE_STATE_AWAKE = 2;
+    INTERACTIVE_STATE_GOING_TO_SLEEP = 3;
+  }
+  optional InteractiveState interactive_state = 5;
+}
+
+message KeyguardControllerProto {
+  optional bool keyguard_showing = 1;
+  repeated KeyguardOccludedProto keyguard_occluded_states = 2
+      [deprecated = true];
+  optional bool aod_showing = 3;
+  repeated KeyguardPerDisplayProto keyguard_per_display = 4;
+  optional bool keyguard_going_away = 5;
+}
+
+message KeyguardOccludedProto {
+  optional int32 display_id = 1;
+  optional bool keyguard_occluded = 2;
+}
+
+message KeyguardPerDisplayProto {
+  optional int32 display_id = 1;
+  optional bool keyguard_showing = 2;
+  optional bool aod_showing = 3;
+  optional bool keyguard_occluded = 4;
+  optional bool keyguard_going_away = 5;
+}
+
+// represents PhoneWindowManager
+message WindowManagerPolicyProto {
+  optional int32 last_system_ui_flags = 1 [deprecated = true];
+  enum UserRotationMode {
+    USER_ROTATION_FREE = 0;
+    USER_ROTATION_LOCKED = 1;
+  }
+  optional UserRotationMode rotation_mode = 2;
+  optional SurfaceProto.Rotation rotation = 3;
+  optional ActivityInfoProto.ScreenOrientation orientation = 4;
+  optional bool screen_on_fully = 5;
+  optional bool keyguard_draw_complete = 6;
+  optional bool window_manager_draw_complete = 7;
+  optional string focused_app_token = 8 [deprecated = true];
+  optional IdentifierProto focused_window = 9 [deprecated = true];
+  optional IdentifierProto top_fullscreen_opaque_window = 10
+      [deprecated = true];
+  optional IdentifierProto top_fullscreen_opaque_or_dimming_window = 11
+      [deprecated = true];
+  optional bool keyguard_occluded = 12;
+  optional bool keyguard_occluded_changed = 13;
+  optional bool keyguard_occluded_pending = 14;
+  optional bool force_status_bar = 15 [deprecated = true];
+  optional bool force_status_bar_from_keyguard = 16 [deprecated = true];
+  optional BarControllerProto status_bar = 17 [deprecated = true];
+  optional BarControllerProto navigation_bar = 18 [deprecated = true];
+  optional WindowOrientationListenerProto orientation_listener = 19
+      [deprecated = true];
+  optional KeyguardServiceDelegateProto keyguard_delegate = 20;
+}
+
+// represents AppTransition
+message AppTransitionProto {
+  enum AppState {
+    APP_STATE_IDLE = 0;
+    APP_STATE_READY = 1;
+    APP_STATE_RUNNING = 2;
+    APP_STATE_TIMEOUT = 3;
+  }
+  optional AppState app_transition_state = 1;
+
+  optional TransitionTypeEnum last_used_app_transition = 2;
+}
+
+// represents DisplayContent object
+message DisplayContentProto {
+  // Use root_display_area instead
+  optional WindowContainerProto window_container = 1 [deprecated = true];
+  optional int32 id = 2;
+  // RootTasks
+  reserved 3;
+  optional DockedTaskDividerControllerProto docked_task_divider_controller = 4
+      [deprecated = true];
+  // Will be removed soon.
+  optional PinnedTaskControllerProto pinned_task_controller = 5
+      [deprecated = true];
+  // non app windows
+  repeated WindowTokenProto above_app_windows = 6 [deprecated = true];
+  repeated WindowTokenProto below_app_windows = 7 [deprecated = true];
+  repeated WindowTokenProto ime_windows = 8 [deprecated = true];
+  optional int32 dpi = 9;
+  optional DisplayInfoProto display_info = 10;
+  optional int32 rotation = 11 [
+    (.perfetto.protos.typedef) = "android.view.Surface.Rotation",
+    deprecated = true
+  ];
+  optional ScreenRotationAnimationProto screen_rotation_animation = 12;
+  optional DisplayFramesProto display_frames = 13;
+  optional int32 surface_size = 14 [deprecated = true];
+  optional string focused_app = 15;
+  optional AppTransitionProto app_transition = 16;
+  repeated IdentifierProto opening_apps = 17;
+  repeated IdentifierProto closing_apps = 18;
+  repeated IdentifierProto changing_apps = 19;
+  repeated WindowTokenProto overlay_windows = 20 [deprecated = true];
+  optional DisplayAreaProto root_display_area = 21;
+
+  optional bool single_task_instance = 22 [deprecated = true];
+  optional int32 focused_root_task_id = 23;
+  optional IdentifierProto resumed_activity = 24;
+  repeated TaskProto tasks = 25 [deprecated = true];
+  optional bool display_ready = 26;
+  optional WindowStateProto input_method_target = 27;
+  optional WindowStateProto input_method_input_target = 28;
+  optional WindowStateProto input_method_control_target = 29;
+  optional WindowStateProto current_focus = 30;
+  optional ImeInsetsSourceProviderProto ime_insets_source_provider = 31;
+  optional bool can_show_ime = 32 [deprecated = true];
+
+  optional DisplayRotationProto display_rotation = 33;
+  optional int32 ime_policy = 34;
+
+  repeated InsetsSourceProviderProto insets_source_providers = 35;
+  optional bool is_sleeping = 36;
+  repeated string sleep_tokens = 37;
+  repeated RectProto keep_clear_areas = 38;
+  optional int32 min_size_of_resizeable_task_dp = 39;
+}
+
+// represents DisplayArea object
+message DisplayAreaProto {
+  optional WindowContainerProto window_container = 1;
+  optional string name = 2 [(.perfetto.protos.privacy).dest = DEST_EXPLICIT];
+  repeated DisplayAreaChildProto children = 3 [deprecated = true];
+  optional bool is_task_display_area = 4;
+  optional bool is_root_display_area = 5;
+  optional int32 feature_id = 6;
+  optional bool is_organized = 7;
+  optional bool is_ignoring_orientation_request = 8;
+}
+
+// represents a generic child of a DisplayArea
+message DisplayAreaChildProto {
+  // At most one of the following should be present:
+
+  // represents a DisplayArea child
+  optional DisplayAreaProto display_area = 1;
+  // represents a WindowToken child
+  optional WindowTokenProto window = 2;
+  // represents an unknown child - the class name is recorded
+  repeated string unknown = 3;
+}
+
+// represents DisplayFrames
+message DisplayFramesProto {
+  optional RectProto stable_bounds = 1 [deprecated = true];
+  optional RectProto dock = 2 [deprecated = true];
+  optional RectProto current = 3 [deprecated = true];
+}
+
+message DisplayRotationProto {
+  optional int32 rotation = 1
+      [(.perfetto.protos.typedef) = "android.view.Surface.Rotation"];
+  optional bool frozen_to_user_rotation = 2;
+  optional int32 user_rotation = 3
+      [(.perfetto.protos.typedef) = "android.view.Surface.Rotation"];
+  optional int32 fixed_to_user_rotation_mode = 4;
+  optional int32 last_orientation = 5
+      [(.perfetto.protos.typedef) =
+           "android.content.pm.ActivityInfo.ScreenOrientation"];
+  optional bool is_fixed_to_user_rotation = 6;
+}
+
+// represents DockedTaskDividerController
+message DockedTaskDividerControllerProto {
+  optional bool minimized_dock = 1 [deprecated = true];
+}
+
+// represents PinnedTaskController
+message PinnedTaskControllerProto {
+  optional RectProto default_bounds = 1 [deprecated = true];
+  optional RectProto movement_bounds = 2 [deprecated = true];
+}
+
+// represents Task
+message TaskProto {
+  optional WindowContainerProto window_container = 1 [deprecated = true];
+  optional int32 id = 2;
+  // activity
+  reserved 3;
+  optional bool fills_parent = 4;
+  optional RectProto bounds = 5;
+  optional RectProto displayed_bounds = 6 [deprecated = true];
+  optional bool defer_removal = 7;
+  optional int32 surface_width = 8;
+  optional int32 surface_height = 9;
+
+  repeated TaskProto tasks = 10 [deprecated = true];
+  repeated ActivityRecordProto activities = 11 [deprecated = true];
+
+  optional IdentifierProto resumed_activity = 12;
+  optional string real_activity = 13;
+  optional string orig_activity = 14;
+
+  optional int32 display_id = 15 [deprecated = true];
+  optional int32 root_task_id = 16;
+  optional int32 activity_type = 17 [
+    (.perfetto.protos.typedef) = "android.app.WindowConfiguration.ActivityType",
+    deprecated = true
+  ];
+  optional int32 resize_mode = 18
+      [(.perfetto.protos.typedef) =
+           "android.appwidget.AppWidgetProviderInfo.ResizeModeFlags"];
+  optional int32 min_width = 19 [deprecated = true];
+  optional int32 min_height = 20 [deprecated = true];
+
+  optional RectProto adjusted_bounds = 21;
+  optional RectProto last_non_fullscreen_bounds = 22;
+  optional bool adjusted_for_ime = 23;
+  optional float adjust_ime_amount = 24;
+  optional float adjust_divider_amount = 25;
+  optional bool animating_bounds = 26 [deprecated = true];
+  optional float minimize_amount = 27;
+  optional bool created_by_organizer = 28;
+  optional string affinity = 29;
+  optional bool has_child_pip_activity = 30;
+  optional TaskFragmentProto task_fragment = 31;
+}
+
+// represents TaskFragment
+message TaskFragmentProto {
+  optional WindowContainerProto window_container = 1;
+  optional int32 display_id = 2;
+  optional int32 activity_type = 3
+      [(.perfetto.protos.typedef) =
+           "android.app.WindowConfiguration.ActivityType"];
+  optional int32 min_width = 4;
+  optional int32 min_height = 5;
+}
+
+// represents ActivityRecordProto
+message ActivityRecordProto {
+  optional string name = 1 [(.perfetto.protos.privacy).dest = DEST_EXPLICIT];
+  optional WindowTokenProto window_token = 2;
+  optional bool last_surface_showing = 3;
+  optional bool is_waiting_for_transition_start = 4;
+  optional bool is_animating = 5;
+  optional WindowContainerThumbnailProto thumbnail = 6;
+  optional bool fills_parent = 7;
+  optional bool app_stopped = 8;
+  optional bool visible_requested = 9;
+  optional bool client_visible = 10;
+  optional bool defer_hiding_client = 11;
+  optional bool reported_drawn = 12;
+  optional bool reported_visible = 13;
+  optional int32 num_interesting_windows = 14;
+  optional int32 num_drawn_windows = 15;
+  optional bool all_drawn = 16;
+  optional bool last_all_drawn = 17;
+  // removed
+  reserved 18;
+  optional IdentifierProto starting_window = 19;
+  optional bool starting_displayed = 20;
+  optional bool starting_moved = 201;
+  optional bool visible_set_from_transferred_starting_window = 22;
+  repeated RectProto frozen_bounds = 23 [deprecated = true];
+  optional bool visible = 24;
+  // configuration_container
+  reserved 25;
+  optional IdentifierProto identifier = 26 [deprecated = true];
+  optional string state = 27 [(.perfetto.protos.privacy).dest = DEST_EXPLICIT];
+  optional bool front_of_task = 28;
+  optional int32 proc_id = 29;
+  optional bool translucent = 30;
+  optional bool pip_auto_enter_enabled = 31;
+  optional bool in_size_compat_mode = 32;
+  optional float min_aspect_ratio = 33;
+  optional bool provides_max_bounds = 34;
+  optional bool enable_recents_screenshot = 35;
+  optional int32 last_drop_input_mode = 36;
+  optional int32 override_orientation = 37
+      [(.perfetto.protos.typedef) =
+           "android.content.pm.ActivityInfo.ScreenOrientation"];
+  optional bool should_send_compat_fake_focus = 38;
+  optional bool should_force_rotate_for_camera_compat = 39;
+  optional bool should_refresh_activity_for_camera_compat = 40;
+  optional bool should_refresh_activity_via_pause_for_camera_compat = 41;
+  optional bool should_override_min_aspect_ratio = 42;
+  optional bool should_ignore_orientation_request_loop = 43;
+  optional bool should_override_force_resize_app = 44;
+  optional bool should_enable_user_aspect_ratio_settings = 45;
+  optional bool is_user_fullscreen_override_enabled = 46;
+}
+
+// represents WindowToken
+message WindowTokenProto {
+  optional WindowContainerProto window_container = 1;
+  optional int32 hash_code = 2;
+  repeated WindowStateProto windows = 3 [deprecated = true];
+  optional bool waiting_to_show = 5 [deprecated = true];
+  optional bool paused = 6;
+}
+
+// represents WindowState
+message WindowStateProto {
+  optional WindowContainerProto window_container = 1;
+  optional IdentifierProto identifier = 2 [deprecated = true];
+  // Unique identifier of a DisplayContent stack.
+  optional int32 display_id = 3;
+  // Unique identifier for the task stack.
+  optional int32 stack_id = 4;
+  optional WindowLayoutParamsProto attributes = 5;
+  optional RectProto given_content_insets = 6;
+  optional RectProto frame = 7 [deprecated = true];
+  optional RectProto containing_frame = 8 [deprecated = true];
+  optional RectProto parent_frame = 9 [deprecated = true];
+  optional RectProto content_frame = 10 [deprecated = true];
+  optional RectProto content_insets = 11 [deprecated = true];
+  optional RectProto surface_insets = 12;
+  optional WindowStateAnimatorProto animator = 13;
+  optional bool animating_exit = 14;
+  repeated WindowStateProto child_windows = 15 [deprecated = true];
+  optional RectProto surface_position = 16;
+  optional int32 requested_width = 18;
+  optional int32 requested_height = 19;
+  optional int32 view_visibility = 20
+      [(.perfetto.protos.typedef) = "android.view.View.Visibility"];
+  optional int32 system_ui_visibility = 21 [deprecated = true];
+  optional bool has_surface = 22;
+  optional bool is_ready_for_display = 23;
+  optional RectProto display_frame = 24 [deprecated = true];
+  optional RectProto overscan_frame = 25 [deprecated = true];
+  optional RectProto visible_frame = 26 [deprecated = true];
+  optional RectProto decor_frame = 27 [deprecated = true];
+  optional RectProto outset_frame = 28 [deprecated = true];
+  optional RectProto overscan_insets = 29 [deprecated = true];
+  optional RectProto visible_insets = 30 [deprecated = true];
+  optional RectProto stable_insets = 31 [deprecated = true];
+  optional RectProto outsets = 32 [deprecated = true];
+  optional DisplayCutoutProto cutout = 33 [deprecated = true];
+  optional bool remove_on_exit = 34;
+  optional bool destroying = 35;
+  optional bool removed = 36;
+  optional bool is_on_screen = 37;
+  optional bool is_visible = 38;
+  optional bool pending_seamless_rotation = 39;
+  optional int64 finished_seamless_rotation_frame = 40 [deprecated = true];
+  optional WindowFramesProto window_frames = 41;
+  optional bool force_seamless_rotation = 42;
+  optional bool has_compat_scale = 43;
+  optional float global_scale = 44;
+  repeated RectProto keep_clear_areas = 45;
+  repeated RectProto unrestricted_keep_clear_areas = 46;
+  repeated InsetsSourceProto mergedLocalInsetsSources = 47;
+  optional int32 requested_visible_types = 48;
+}
+
+message IdentifierProto {
+  optional int32 hash_code = 1;
+  optional int32 user_id = 2;
+  // Either a component name/string (eg: "com.android.settings/.FallbackHome")
+  // or a window title ("NavigationBar").
+  optional string title = 3 [(.perfetto.protos.privacy).dest = DEST_EXPLICIT];
+}
+
+// represents WindowStateAnimator
+message WindowStateAnimatorProto {
+  optional RectProto last_clip_rect = 1;
+  optional WindowSurfaceControllerProto surface = 2;
+  enum DrawState {
+    NO_SURFACE = 0;
+    DRAW_PENDING = 1;
+    COMMIT_DRAW_PENDING = 2;
+    READY_TO_SHOW = 3;
+    HAS_DRAWN = 4;
+  }
+  optional DrawState draw_state = 3;
+  optional RectProto system_decor_rect = 4;
+}
+
+// represents WindowSurfaceController
+message WindowSurfaceControllerProto {
+  optional bool shown = 1;
+  optional int32 layer = 2;
+}
+
+// represents ScreenRotationAnimation
+message ScreenRotationAnimationProto {
+  optional bool started = 1;
+  optional bool animation_running = 2;
+}
+
+// represents WindowContainer
+message WindowContainerProto {
+  optional ConfigurationContainerProto configuration_container = 1;
+  optional int32 orientation = 2
+      [(.perfetto.protos.typedef) =
+           "android.content.pm.ActivityInfo.ScreenOrientation"];
+  optional bool visible = 3;
+  optional SurfaceAnimatorProto surface_animator = 4;
+  repeated WindowContainerChildProto children = 5;
+  optional IdentifierProto identifier = 6;
+  optional SurfaceControlProto surface_control = 7;
+}
+
+// represents a generic child of a WindowContainer
+message WindowContainerChildProto {
+  // A window container can have multiple children of different types stored as
+  // a WindowContainerChildProto but each instance of WindowContainerChildProto
+  // can only contain a single type.
+  //
+  // We do not know the derived type and the class is dumped
+  // as a WindowContainer
+  optional WindowContainerProto window_container = 2;
+  // represents a DisplayContent child
+  optional DisplayContentProto display_content = 3;
+  // represents a DisplayArea child
+  optional DisplayAreaProto display_area = 4;
+  // represents a Task child
+  optional TaskProto task = 5;
+  // represents an ActivityRecord child
+  optional ActivityRecordProto activity = 6;
+  // represents a WindowToken child
+  optional WindowTokenProto window_token = 7;
+  // represents a WindowState child
+  optional WindowStateProto window = 8;
+  // represents a WindowState child
+  optional TaskFragmentProto task_fragment = 9;
+}
+
+// represents ConfigurationContainer
+message ConfigurationContainerProto {
+  optional ConfigurationProto override_configuration = 1;
+  optional ConfigurationProto full_configuration = 2;
+  optional ConfigurationProto merged_override_configuration = 3;
+}
+
+// represents WindowFrames
+message WindowFramesProto {
+  optional RectProto containing_frame = 1 [deprecated = true];
+  optional RectProto content_frame = 2 [deprecated = true];
+  optional RectProto decor_frame = 3 [deprecated = true];
+  optional RectProto display_frame = 4;
+  optional RectProto frame = 5;
+  optional RectProto outset_frame = 6;
+  optional RectProto overscan_frame = 7 [deprecated = true];
+  optional RectProto parent_frame = 8;
+  optional RectProto visible_frame = 9 [deprecated = true];
+  optional DisplayCutoutProto cutout = 10 [deprecated = true];
+  optional RectProto content_insets = 11 [deprecated = true];
+  optional RectProto overscan_insets = 12 [deprecated = true];
+  optional RectProto visible_insets = 13 [deprecated = true];
+  optional RectProto stable_insets = 14 [deprecated = true];
+  optional RectProto outsets = 15;
+  optional RectProto compat_frame = 16;
+}
+
+message InsetsSourceProviderProto {
+  optional InsetsSourceProto source = 1;
+  optional RectProto frame = 2;
+  optional InsetsSourceControlProto fake_control = 3;
+  optional InsetsSourceControlProto control = 4;
+  optional WindowStateProto control_target = 5;
+  optional WindowStateProto pending_control_target = 6;
+  optional WindowStateProto fake_control_target = 7;
+  optional SurfaceControlProto captured_leash = 8;
+  optional RectProto ime_overridden_frame = 9 [deprecated = true];
+  optional bool is_leash_ready_for_dispatching = 10;
+  optional bool client_visible = 11;
+  optional bool server_visible = 12;
+  optional bool seamless_rotating = 13;
+  optional int64 finish_seamless_rotate_frame_number = 14;
+  optional bool controllable = 15;
+  optional WindowStateProto source_window_state = 16;
+}
+
+message ImeInsetsSourceProviderProto {
+  optional InsetsSourceProviderProto insets_source_provider = 1;
+  optional WindowStateProto ime_target_from_ime = 2;
+  optional bool is_ime_layout_drawn = 3 [deprecated = true];
+}
+
+message BackNavigationProto {
+  optional bool animation_in_progress = 1;
+  optional int32 last_back_type = 2;
+  optional bool show_wallpaper = 3;
+  optional string main_open_activity = 4;
+  optional bool animation_running = 5;
+}
\ No newline at end of file
diff --git a/protos/perfetto/trace/android/view/displayinfo.proto b/protos/perfetto/trace/android/view/displayinfo.proto
new file mode 100644
index 0000000..c817ba3
--- /dev/null
+++ b/protos/perfetto/trace/android/view/displayinfo.proto
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2017 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/displaycutout.proto";
+
+package perfetto.protos;
+
+// Represents DisplayInfo. Describes the characteristics of a particular
+// logical display.
+message DisplayInfoProto {
+  optional int32 logical_width = 1;
+  optional int32 logical_height = 2;
+  optional int32 app_width = 3;
+  optional int32 app_height = 4;
+  // The human-readable name of the display.
+  // Eg: "Built-in Screen"
+  optional string name = 5;
+  optional int32 flags = 6;
+  optional DisplayCutoutProto cutout = 7;
+}
diff --git a/protos/perfetto/trace/android/view/enums.proto b/protos/perfetto/trace/android/view/enums.proto
new file mode 100644
index 0000000..5ceca01
--- /dev/null
+++ b/protos/perfetto/trace/android/view/enums.proto
@@ -0,0 +1,89 @@
+/*
+ * Copyright (C) 2018 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;
+
+// Screen states, primarily used by android/view/Display.java.
+enum DisplayStateEnum {
+  // The display state is unknown.
+  DISPLAY_STATE_UNKNOWN = 0;
+  // The display state is off.
+  DISPLAY_STATE_OFF = 1;
+  // The display state is on.
+  DISPLAY_STATE_ON = 2;
+  // The display is dozing in a low power state; it is still on but is
+  // optimized for showing system-provided content while the device is
+  // non-interactive.
+  DISPLAY_STATE_DOZE = 3;
+  // The display is dozing in a suspended low power state; it is still on
+  // but is optimized for showing static system-provided content while the
+  // device is non-interactive.
+  DISPLAY_STATE_DOZE_SUSPEND = 4;
+  // The display is on and optimized for VR mode.
+  DISPLAY_STATE_VR = 5;
+  // The display is in a suspended full power state; it is still on but the
+  // CPU is not updating it.
+  DISPLAY_STATE_ON_SUSPEND = 6;
+}
+
+// Screen state reasons.
+enum DisplayStateReason {
+  // The display state reason is unknown.
+  DISPLAY_STATE_REASON_UNKNOWN = 0;
+  // The display state reason is the default policy.
+  DISPLAY_STATE_REASON_DEFAULT_POLICY = 1;
+  // The display state is caused by a draw wake lock.
+  DISPLAY_STATE_REASON_DRAW_WAKE_LOCK = 2;
+  // The display state is caused by display offloading.
+  DISPLAY_STATE_REASON_OFFLOAD = 3;
+  // The display state is caused by a tilt.
+  DISPLAY_STATE_REASON_TILT = 4;
+  // The display state is caused by the dream manager.
+  DISPLAY_STATE_REASON_DREAM_MANAGER = 5;
+  // The display state is caused by an input key event.
+  DISPLAY_STATE_REASON_KEY = 6;
+  // The display state is caused by an input motion event.
+  DISPLAY_STATE_REASON_MOTION = 7;
+}
+
+// Constants found in android.view.WindowManager.
+enum TransitionTypeEnum {
+  TRANSIT_NONE = 0;
+  TRANSIT_UNSET = -1;
+  TRANSIT_ACTIVITY_OPEN = 6;
+  TRANSIT_ACTIVITY_CLOSE = 7;
+  TRANSIT_TASK_OPEN = 8;
+  TRANSIT_TASK_CLOSE = 9;
+  TRANSIT_TASK_TO_FRONT = 10;
+  TRANSIT_TASK_TO_BACK = 11;
+  TRANSIT_WALLPAPER_CLOSE = 12;
+  TRANSIT_WALLPAPER_OPEN = 13;
+  TRANSIT_WALLPAPER_INTRA_OPEN = 14;
+  TRANSIT_WALLPAPER_INTRA_CLOSE = 15;
+  TRANSIT_TASK_OPEN_BEHIND = 16;
+  TRANSIT_TASK_IN_PLACE = 17;
+  TRANSIT_ACTIVITY_RELAUNCH = 18;
+  TRANSIT_DOCK_TASK_FROM_RECENTS = 19 [deprecated = true];
+  TRANSIT_KEYGUARD_GOING_AWAY = 20;
+  TRANSIT_KEYGUARD_GOING_AWAY_ON_WALLPAPER = 21;
+  TRANSIT_KEYGUARD_OCCLUDE = 22;
+  TRANSIT_KEYGUARD_UNOCCLUDE = 23;
+  TRANSIT_TRANSLUCENT_ACTIVITY_OPEN = 24;
+  TRANSIT_TRANSLUCENT_ACTIVITY_CLOSE = 25;
+  TRANSIT_CRASHING_ACTIVITY_CLOSE = 26;
+}
diff --git a/protos/perfetto/trace/android/view/remote_animation_target.proto b/protos/perfetto/trace/android/view/remote_animation_target.proto
new file mode 100644
index 0000000..ab4b004
--- /dev/null
+++ b/protos/perfetto/trace/android/view/remote_animation_target.proto
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2018 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/app/window_configuration.proto";
+import "protos/perfetto/trace/android/graphics/point.proto";
+import "protos/perfetto/trace/android/graphics/rect.proto";
+import "protos/perfetto/trace/android/view/surfacecontrol.proto";
+
+package perfetto.protos;
+
+// Proto representation for android.view.RemoteAnimationTarget.java class
+message RemoteAnimationTargetProto {
+  optional int32 task_id = 1;
+  optional int32 mode = 2;
+  optional SurfaceControlProto leash = 3;
+  optional bool is_translucent = 4;
+  optional RectProto clip_rect = 5;
+  optional RectProto content_insets = 6;
+  optional int32 prefix_order_index = 7;
+  // The source position of the app, in screen spaces coordinates. If the
+  // position of the leash is modified from the controlling app, any animation
+  // transform needs to be offset by this amount.
+  optional PointProto position = 8;
+  optional RectProto source_container_bounds = 9;
+  optional WindowConfigurationProto window_configuration = 10;
+  optional SurfaceControlProto start_leash = 11;
+  optional RectProto start_bounds = 12;
+  optional RectProto local_bounds = 13;
+  optional RectProto screen_space_bounds = 14;
+}
diff --git a/protos/perfetto/trace/android/view/surface.proto b/protos/perfetto/trace/android/view/surface.proto
new file mode 100644
index 0000000..571ef1e
--- /dev/null
+++ b/protos/perfetto/trace/android/view/surface.proto
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2018 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 SurfaceProto {
+  enum Rotation {
+    ROTATION_0 = 0;
+    ROTATION_90 = 1;
+    ROTATION_180 = 2;
+    ROTATION_270 = 3;
+  }
+}
diff --git a/protos/perfetto/trace/android/windowmanager.proto b/protos/perfetto/trace/android/windowmanager.proto
new file mode 100644
index 0000000..c508ec2
--- /dev/null
+++ b/protos/perfetto/trace/android/windowmanager.proto
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2017 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/server/windowmanagerservice.proto";
+
+package perfetto.protos;
+
+// Represents a file full of window manager trace entries.
+// Encoded, it should start with 0x9 0x57 0x49 0x4e 0x54 0x52 0x41 0x43 0x45
+// (.WINTRACE), such that they can be easily identified.
+message WindowManagerTraceFileProto {
+  // constant; MAGIC_NUMBER = (long) MAGIC_NUMBER_H << 32 |
+  // MagicNumber.MAGIC_NUMBER_L (this is needed because enums have to be 32 bits
+  // and there's no nice way to put 64bit constants into .proto files.
+  enum MagicNumber {
+    INVALID = 0;
+    // WINT (little-endian ASCII)
+    MAGIC_NUMBER_L = 0x544e4957;
+    // RACE (little-endian ASCII)
+    MAGIC_NUMBER_H = 0x45434152;
+  }
+
+  // Must be the first field, set to value in MagicNumber
+  optional fixed64 magic_number = 1;
+  repeated WindowManagerTraceEntry entry = 2;
+
+  // offset between real-time clock and elapsed time clock in nanoseconds.
+  // Calculated as: 1000000 * System.currentTimeMillis() -
+  // SystemClock.elapsedRealtimeNanos()
+  optional fixed64 real_to_elapsed_time_offset_nanos = 3;
+}
+
+// one window manager trace entry
+message WindowManagerTraceEntry {
+  // required: 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 WindowManagerServiceDumpProto window_manager_service = 3;
+}
diff --git a/protos/perfetto/trace/android/winscope_extensions.proto b/protos/perfetto/trace/android/winscope_extensions.proto
index cb635f3..76a2251 100644
--- a/protos/perfetto/trace/android/winscope_extensions.proto
+++ b/protos/perfetto/trace/android/winscope_extensions.proto
@@ -19,5 +19,5 @@
 package perfetto.protos;
 
 message WinscopeExtensions {
-  extensions 1 to 5;
+  extensions 1 to 6;
 }
diff --git a/protos/perfetto/trace/android/winscope_extensions_impl.proto b/protos/perfetto/trace/android/winscope_extensions_impl.proto
index 8b7eb1f..386d6b0 100644
--- a/protos/perfetto/trace/android/winscope_extensions_impl.proto
+++ b/protos/perfetto/trace/android/winscope_extensions_impl.proto
@@ -22,6 +22,7 @@
 import "protos/perfetto/trace/android/android_input_event.proto";
 import "protos/perfetto/trace/android/inputmethodeditor.proto";
 import "protos/perfetto/trace/android/viewcapture.proto";
+import "protos/perfetto/trace/android/windowmanager.proto";
 
 message WinscopeExtensionsImpl {
   extend WinscopeExtensions {
@@ -31,5 +32,6 @@
         3;
     optional ViewCapture viewcapture = 4;
     optional AndroidInputEvent android_input_event = 5;
+    optional WindowManagerTraceEntry windowmanager = 6;
   }
 }
diff --git a/protos/perfetto/trace/perfetto_trace.proto b/protos/perfetto/trace/perfetto_trace.proto
index cd6bacb..93379d3 100644
--- a/protos/perfetto/trace/perfetto_trace.proto
+++ b/protos/perfetto/trace/perfetto_trace.proto
@@ -5778,7 +5778,7 @@
 // Begin of protos/perfetto/trace/android/winscope_extensions.proto
 
 message WinscopeExtensions {
-  extensions 1 to 5;
+  extensions 1 to 6;
 }
 
 // End of protos/perfetto/trace/android/winscope_extensions.proto