Inline typed message writing support.

Allow nested typed messages to be written in a way similar to untyped
ones without using lambda:

TRACE_EVENT("c", "E", TrackEvent::kFieldName, value);

Similar to TracedValue / untyped messages, Perfetto then will either
write the value directly (if the field is a primitive one like int or
string) or call value->WriteIntoTrace(TracedProto<T>) to invoke
custom serialisation.

R=eseckler@google.com,primiano@google.com,skyostil@google.com

Bug: b/184558843
Change-Id: Idc5277a998d869619ce6530540662bbe7a80c806
diff --git a/Android.bp b/Android.bp
index eb3d1ef..d891e49 100644
--- a/Android.bp
+++ b/Android.bp
@@ -5139,6 +5139,7 @@
     "protos/perfetto/trace/extension_descriptor.proto",
     "protos/perfetto/trace/memory_graph.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",
@@ -5153,6 +5154,7 @@
     "external/perfetto/protos/perfetto/trace/extension_descriptor.gen.cc",
     "external/perfetto/protos/perfetto/trace/memory_graph.gen.cc",
     "external/perfetto/protos/perfetto/trace/test_event.gen.cc",
+    "external/perfetto/protos/perfetto/trace/test_extensions.gen.cc",
     "external/perfetto/protos/perfetto/trace/trace.gen.cc",
     "external/perfetto/protos/perfetto/trace/trace_packet.gen.cc",
     "external/perfetto/protos/perfetto/trace/trace_packet_defaults.gen.cc",
@@ -5167,6 +5169,7 @@
     "protos/perfetto/trace/extension_descriptor.proto",
     "protos/perfetto/trace/memory_graph.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",
@@ -5181,6 +5184,7 @@
     "external/perfetto/protos/perfetto/trace/extension_descriptor.gen.h",
     "external/perfetto/protos/perfetto/trace/memory_graph.gen.h",
     "external/perfetto/protos/perfetto/trace/test_event.gen.h",
+    "external/perfetto/protos/perfetto/trace/test_extensions.gen.h",
     "external/perfetto/protos/perfetto/trace/trace.gen.h",
     "external/perfetto/protos/perfetto/trace/trace_packet.gen.h",
     "external/perfetto/protos/perfetto/trace/trace_packet_defaults.gen.h",
@@ -5199,6 +5203,7 @@
     "protos/perfetto/trace/extension_descriptor.proto",
     "protos/perfetto/trace/memory_graph.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",
@@ -5212,6 +5217,7 @@
     "external/perfetto/protos/perfetto/trace/extension_descriptor.pb.cc",
     "external/perfetto/protos/perfetto/trace/memory_graph.pb.cc",
     "external/perfetto/protos/perfetto/trace/test_event.pb.cc",
+    "external/perfetto/protos/perfetto/trace/test_extensions.pb.cc",
     "external/perfetto/protos/perfetto/trace/trace.pb.cc",
     "external/perfetto/protos/perfetto/trace/trace_packet.pb.cc",
     "external/perfetto/protos/perfetto/trace/trace_packet_defaults.pb.cc",
@@ -5226,6 +5232,7 @@
     "protos/perfetto/trace/extension_descriptor.proto",
     "protos/perfetto/trace/memory_graph.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",
@@ -5239,6 +5246,7 @@
     "external/perfetto/protos/perfetto/trace/extension_descriptor.pb.h",
     "external/perfetto/protos/perfetto/trace/memory_graph.pb.h",
     "external/perfetto/protos/perfetto/trace/test_event.pb.h",
+    "external/perfetto/protos/perfetto/trace/test_extensions.pb.h",
     "external/perfetto/protos/perfetto/trace/trace.pb.h",
     "external/perfetto/protos/perfetto/trace/trace_packet.pb.h",
     "external/perfetto/protos/perfetto/trace/trace_packet_defaults.pb.h",
@@ -5257,6 +5265,7 @@
     "protos/perfetto/trace/extension_descriptor.proto",
     "protos/perfetto/trace/memory_graph.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",
@@ -5271,6 +5280,7 @@
     "external/perfetto/protos/perfetto/trace/extension_descriptor.pbzero.cc",
     "external/perfetto/protos/perfetto/trace/memory_graph.pbzero.cc",
     "external/perfetto/protos/perfetto/trace/test_event.pbzero.cc",
+    "external/perfetto/protos/perfetto/trace/test_extensions.pbzero.cc",
     "external/perfetto/protos/perfetto/trace/trace.pbzero.cc",
     "external/perfetto/protos/perfetto/trace/trace_packet.pbzero.cc",
     "external/perfetto/protos/perfetto/trace/trace_packet_defaults.pbzero.cc",
@@ -5285,6 +5295,7 @@
     "protos/perfetto/trace/extension_descriptor.proto",
     "protos/perfetto/trace/memory_graph.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",
@@ -5299,6 +5310,7 @@
     "external/perfetto/protos/perfetto/trace/extension_descriptor.pbzero.h",
     "external/perfetto/protos/perfetto/trace/memory_graph.pbzero.h",
     "external/perfetto/protos/perfetto/trace/test_event.pbzero.h",
+    "external/perfetto/protos/perfetto/trace/test_extensions.pbzero.h",
     "external/perfetto/protos/perfetto/trace/trace.pbzero.h",
     "external/perfetto/protos/perfetto/trace/trace_packet.pbzero.h",
     "external/perfetto/protos/perfetto/trace/trace_packet_defaults.pbzero.h",
@@ -8646,6 +8658,7 @@
 filegroup {
   name: "perfetto_src_tracing_unittests",
   srcs: [
+    "src/tracing/traced_proto_unittest.cc",
     "src/tracing/traced_value_unittest.cc",
   ],
 }