diff --git a/Android.bp b/Android.bp
index 9ccb7eb..8a85fb7 100644
--- a/Android.bp
+++ b/Android.bp
@@ -63,6 +63,7 @@
     ":perfetto_include_perfetto_profiling_normalize",
     ":perfetto_include_perfetto_protozero_protozero",
     ":perfetto_include_perfetto_tracing_core_core",
+    ":perfetto_include_perfetto_tracing_core_forward_decls",
     ":perfetto_include_perfetto_tracing_tracing",
     ":perfetto_protos_perfetto_common_cpp_gen",
     ":perfetto_protos_perfetto_common_lite_gen",
@@ -272,6 +273,7 @@
     ":perfetto_include_perfetto_protozero_protozero",
     ":perfetto_include_perfetto_public_public",
     ":perfetto_include_perfetto_tracing_core_core",
+    ":perfetto_include_perfetto_tracing_core_forward_decls",
     ":perfetto_include_perfetto_tracing_tracing",
     ":perfetto_protos_perfetto_common_cpp_gen",
     ":perfetto_protos_perfetto_common_lite_gen",
@@ -460,6 +462,7 @@
     ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
     ":perfetto_include_perfetto_protozero_protozero",
     ":perfetto_include_perfetto_tracing_core_core",
+    ":perfetto_include_perfetto_tracing_core_forward_decls",
     ":perfetto_include_perfetto_tracing_tracing",
     ":perfetto_protos_perfetto_common_cpp_gen",
     ":perfetto_protos_perfetto_common_lite_gen",
@@ -647,6 +650,7 @@
     ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
     ":perfetto_include_perfetto_protozero_protozero",
     ":perfetto_include_perfetto_tracing_core_core",
+    ":perfetto_include_perfetto_tracing_core_forward_decls",
     ":perfetto_include_perfetto_tracing_tracing",
     ":perfetto_protos_perfetto_common_cpp_gen",
     ":perfetto_protos_perfetto_common_lite_gen",
@@ -886,6 +890,11 @@
   name: "perfetto_include_perfetto_tracing_core_core",
 }
 
+// GN: //include/perfetto/tracing/core:forward_decls
+filegroup {
+  name: "perfetto_include_perfetto_tracing_core_forward_decls",
+}
+
 // GN: //include/perfetto/tracing:tracing
 filegroup {
   name: "perfetto_include_perfetto_tracing_tracing",
@@ -905,6 +914,7 @@
     ":perfetto_include_perfetto_profiling_normalize",
     ":perfetto_include_perfetto_protozero_protozero",
     ":perfetto_include_perfetto_tracing_core_core",
+    ":perfetto_include_perfetto_tracing_core_forward_decls",
     ":perfetto_include_perfetto_tracing_tracing",
     ":perfetto_protos_perfetto_common_cpp_gen",
     ":perfetto_protos_perfetto_common_lite_gen",
@@ -4516,6 +4526,7 @@
     "src/protozero/scattered_stream_null_delegate.cc",
     "src/protozero/scattered_stream_writer.cc",
     "src/protozero/static_buffer.cc",
+    "src/protozero/virtual_destructors.cc",
   ],
 }
 
@@ -5498,6 +5509,7 @@
     ":perfetto_include_perfetto_trace_processor_storage",
     ":perfetto_include_perfetto_trace_processor_trace_processor",
     ":perfetto_include_perfetto_tracing_core_core",
+    ":perfetto_include_perfetto_tracing_core_forward_decls",
     ":perfetto_include_perfetto_tracing_tracing",
     ":perfetto_protos_perfetto_common_cpp_gen",
     ":perfetto_protos_perfetto_common_lite_gen",
@@ -6075,6 +6087,7 @@
     ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
     ":perfetto_include_perfetto_protozero_protozero",
     ":perfetto_include_perfetto_tracing_core_core",
+    ":perfetto_include_perfetto_tracing_core_forward_decls",
     ":perfetto_include_perfetto_tracing_tracing",
     ":perfetto_protos_perfetto_common_cpp_gen",
     ":perfetto_protos_perfetto_common_lite_gen",
diff --git a/BUILD b/BUILD
index d7c5923..dae81c7 100644
--- a/BUILD
+++ b/BUILD
@@ -149,6 +149,7 @@
         ":include_perfetto_protozero_protozero",
         ":include_perfetto_public_public",
         ":include_perfetto_tracing_core_core",
+        ":include_perfetto_tracing_core_forward_decls",
         ":include_perfetto_tracing_tracing",
     ],
     deps = [
@@ -354,6 +355,7 @@
     srcs = [
         "include/perfetto/protozero/contiguous_memory_range.h",
         "include/perfetto/protozero/copyable_ptr.h",
+        "include/perfetto/protozero/cpp_message_obj.h",
         "include/perfetto/protozero/field.h",
         "include/perfetto/protozero/message.h",
         "include/perfetto/protozero/message_handle.h",
@@ -413,6 +415,14 @@
     ],
 )
 
+# GN target: //include/perfetto/tracing/core:forward_decls
+filegroup(
+    name = "include_perfetto_tracing_core_forward_decls",
+    srcs = [
+        "include/perfetto/tracing/core/forward_decls.h",
+    ],
+)
+
 # GN target: //include/perfetto/tracing:tracing
 filegroup(
     name = "include_perfetto_tracing_tracing",
@@ -555,6 +565,7 @@
         "src/protozero/scattered_stream_null_delegate.cc",
         "src/protozero/scattered_stream_writer.cc",
         "src/protozero/static_buffer.cc",
+        "src/protozero/virtual_destructors.cc",
     ],
 )
 
@@ -2350,6 +2361,7 @@
         ":include_perfetto_ext_tracing_ipc_ipc",
         ":include_perfetto_protozero_protozero",
         ":include_perfetto_tracing_core_core",
+        ":include_perfetto_tracing_core_forward_decls",
         ":include_perfetto_tracing_tracing",
     ],
     visibility = [
@@ -2420,6 +2432,7 @@
         ":include_perfetto_ext_tracing_ipc_ipc",
         ":include_perfetto_protozero_protozero",
         ":include_perfetto_tracing_core_core",
+        ":include_perfetto_tracing_core_forward_decls",
         ":include_perfetto_tracing_tracing",
         ":src_android_internal_headers",
         ":src_android_internal_lazy_library_loader",
diff --git a/BUILD.gn b/BUILD.gn
index 6e2753d..85475a9 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -113,7 +113,6 @@
 
     # For checking all generated xxx.gen.{cc,h} files without waiting for
     # embedders to try to use them and fail.
-    "protos/perfetto/trace:cpp",
     "protos/perfetto/config:cpp",
     "protos/perfetto/common:cpp",
 
diff --git a/include/perfetto/ext/tracing/core/commit_data_request.h b/include/perfetto/ext/tracing/core/commit_data_request.h
index baff757..f87b0d4 100644
--- a/include/perfetto/ext/tracing/core/commit_data_request.h
+++ b/include/perfetto/ext/tracing/core/commit_data_request.h
@@ -17,11 +17,12 @@
 #ifndef INCLUDE_PERFETTO_EXT_TRACING_CORE_COMMIT_DATA_REQUEST_H_
 #define INCLUDE_PERFETTO_EXT_TRACING_CORE_COMMIT_DATA_REQUEST_H_
 
-// This header exists only for legacy code that used to refer to the
-// checked-in auto-generated code, before it was moved to be a build-time gen
-// rule. DO NOT add any new includes to this header, instead directly include
-// the one below.
-// TODO(primiano): cleanup call-sites and remove this header.
+// Creates the aliases in the ::perfetto namespace, doing things like:
+// using ::perfetto::Foo = ::perfetto::protos::gen::Foo.
+// See comments in forward_decls.h for the historical reasons of this
+// indirection layer.
+#include "perfetto/tracing/core/forward_decls.h"
+
 #include "protos/perfetto/common/commit_data_request.gen.h"
 
 #endif  // INCLUDE_PERFETTO_EXT_TRACING_CORE_COMMIT_DATA_REQUEST_H_
diff --git a/include/perfetto/ext/tracing/core/consumer.h b/include/perfetto/ext/tracing/core/consumer.h
index ccbd072..0cbd158 100644
--- a/include/perfetto/ext/tracing/core/consumer.h
+++ b/include/perfetto/ext/tracing/core/consumer.h
@@ -22,13 +22,10 @@
 #include "perfetto/base/export.h"
 #include "perfetto/ext/tracing/core/basic_types.h"
 #include "perfetto/ext/tracing/core/observable_events.h"
-
+#include "perfetto/tracing/core/forward_decls.h"
 namespace perfetto {
 
-class TraceConfig;
 class TracePacket;
-class TraceStats;
-class TracingServiceState;
 
 class PERFETTO_EXPORT Consumer {
  public:
diff --git a/include/perfetto/ext/tracing/core/observable_events.h b/include/perfetto/ext/tracing/core/observable_events.h
index abf408d..9459558 100644
--- a/include/perfetto/ext/tracing/core/observable_events.h
+++ b/include/perfetto/ext/tracing/core/observable_events.h
@@ -17,11 +17,12 @@
 #ifndef INCLUDE_PERFETTO_EXT_TRACING_CORE_OBSERVABLE_EVENTS_H_
 #define INCLUDE_PERFETTO_EXT_TRACING_CORE_OBSERVABLE_EVENTS_H_
 
-// This header exists only for legacy code that used to refer to the
-// checked-in auto-generated code, before it was moved to be a build-time gen
-// rule. DO NOT add any new includes to this header, instead directly include
-// the one below.
-// TODO(primiano): cleanup call-sites and remove this header.
+// Creates the aliases in the ::perfetto namespace, doing things like:
+// using ::perfetto::Foo = ::perfetto::protos::gen::Foo.
+// See comments in forward_decls.h for the historical reasons of this
+// indirection layer.
+#include "perfetto/tracing/core/forward_decls.h"
+
 #include "protos/perfetto/common/observable_events.gen.h"
 
 #endif  // INCLUDE_PERFETTO_EXT_TRACING_CORE_OBSERVABLE_EVENTS_H_
diff --git a/include/perfetto/ext/tracing/core/producer.h b/include/perfetto/ext/tracing/core/producer.h
index 30775f7..5c45d8f 100644
--- a/include/perfetto/ext/tracing/core/producer.h
+++ b/include/perfetto/ext/tracing/core/producer.h
@@ -19,10 +19,9 @@
 
 #include "perfetto/base/export.h"
 #include "perfetto/ext/tracing/core/basic_types.h"
-
+#include "perfetto/tracing/core/forward_decls.h"
 namespace perfetto {
 
-class DataSourceConfig;
 class SharedMemory;
 
 // A Producer is an entity that connects to the write-only port of the Service
diff --git a/include/perfetto/ext/tracing/core/trace_stats.h b/include/perfetto/ext/tracing/core/trace_stats.h
index c4f9930..b85cb43 100644
--- a/include/perfetto/ext/tracing/core/trace_stats.h
+++ b/include/perfetto/ext/tracing/core/trace_stats.h
@@ -17,11 +17,12 @@
 #ifndef INCLUDE_PERFETTO_EXT_TRACING_CORE_TRACE_STATS_H_
 #define INCLUDE_PERFETTO_EXT_TRACING_CORE_TRACE_STATS_H_
 
-// This header exists only for legacy code that used to refer to the
-// checked-in auto-generated code, before it was moved to be a build-time gen
-// rule. DO NOT add any new includes to this header, instead directly include
-// the one below.
-// TODO(primiano): cleanup call-sites and remove this header.
+// Creates the aliases in the ::perfetto namespace, doing things like:
+// using ::perfetto::Foo = ::perfetto::protos::gen::Foo.
+// See comments in forward_decls.h for the historical reasons of this
+// indirection layer.
+#include "perfetto/tracing/core/forward_decls.h"
+
 #include "protos/perfetto/common/trace_stats.gen.h"
 
 #endif  // INCLUDE_PERFETTO_EXT_TRACING_CORE_TRACE_STATS_H_
diff --git a/include/perfetto/ext/tracing/core/tracing_service.h b/include/perfetto/ext/tracing/core/tracing_service.h
index c39d2e2..c097a6e 100644
--- a/include/perfetto/ext/tracing/core/tracing_service.h
+++ b/include/perfetto/ext/tracing/core/tracing_service.h
@@ -28,6 +28,7 @@
 #include "perfetto/ext/tracing/core/basic_types.h"
 #include "perfetto/ext/tracing/core/shared_memory.h"
 #include "perfetto/tracing/buffer_exhausted_policy.h"
+#include "perfetto/tracing/core/forward_decls.h"
 
 namespace perfetto {
 
@@ -35,13 +36,9 @@
 class TaskRunner;
 }  // namespace base
 
-class CommitDataRequest;
 class Consumer;
-class DataSourceDescriptor;
 class Producer;
 class SharedMemoryArbiter;
-class TracingServiceState;
-class TraceConfig;
 class TraceWriter;
 
 // TODO: for the moment this assumes that all the calls happen on the same
diff --git a/include/perfetto/protozero/BUILD.gn b/include/perfetto/protozero/BUILD.gn
index 7afe1b9..b528a5b 100644
--- a/include/perfetto/protozero/BUILD.gn
+++ b/include/perfetto/protozero/BUILD.gn
@@ -19,6 +19,7 @@
   sources = [
     "contiguous_memory_range.h",
     "copyable_ptr.h",
+    "cpp_message_obj.h",
     "field.h",
     "message.h",
     "message_handle.h",
diff --git a/include/perfetto/protozero/cpp_message_obj.h b/include/perfetto/protozero/cpp_message_obj.h
new file mode 100644
index 0000000..f52574a
--- /dev/null
+++ b/include/perfetto/protozero/cpp_message_obj.h
@@ -0,0 +1,47 @@
+
+/*
+ * Copyright (C) 2019 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 INCLUDE_PERFETTO_PROTOZERO_CPP_MESSAGE_OBJ_H_
+#define INCLUDE_PERFETTO_PROTOZERO_CPP_MESSAGE_OBJ_H_
+
+#include <stdint.h>
+
+#include <string>
+#include <vector>
+
+#include "perfetto/base/export.h"
+
+namespace protozero {
+
+// Base class for generated .gen.h classes, which are full C++ objects that
+// support both ser and deserialization (but are not zero-copy).
+// This is only used by the "cpp" targets not the "pbzero" ones.
+class PERFETTO_EXPORT CppMessageObj {
+ public:
+  virtual ~CppMessageObj();
+  virtual std::string SerializeAsString() const = 0;
+  virtual std::vector<uint8_t> SerializeAsArray() const = 0;
+  virtual bool ParseFromArray(const void*, size_t) = 0;
+
+  bool ParseFromString(const std::string& str) {
+    return ParseFromArray(str.data(), str.size());
+  }
+};
+
+}  // namespace protozero
+
+#endif  // INCLUDE_PERFETTO_PROTOZERO_CPP_MESSAGE_OBJ_H_
diff --git a/include/perfetto/tracing/BUILD.gn b/include/perfetto/tracing/BUILD.gn
index 57d8619..2a65756 100644
--- a/include/perfetto/tracing/BUILD.gn
+++ b/include/perfetto/tracing/BUILD.gn
@@ -21,6 +21,7 @@
     "../../../protos/perfetto/trace/track_event:zero",
     "../base",
     "../protozero",
+    "core:forward_decls",
   ]
 
   sources = [
diff --git a/include/perfetto/tracing/core/BUILD.gn b/include/perfetto/tracing/core/BUILD.gn
index 8cc4829..a7f4a4c 100644
--- a/include/perfetto/tracing/core/BUILD.gn
+++ b/include/perfetto/tracing/core/BUILD.gn
@@ -14,6 +14,7 @@
 
 source_set("core") {
   public_deps = [
+    ":forward_decls",
     "../../../../protos/perfetto/common:cpp",
     "../../../../protos/perfetto/config:cpp",
   ]
@@ -25,3 +26,12 @@
     "tracing_service_state.h",
   ]
 }
+
+# This is a separate target so other targets in include/**/BUILD.gn can pull
+# forward_decls.h without polluting their public_deps with the proto-generated
+# {common,config}:cpp, which would slow-down build time.
+source_set("forward_decls") {
+  sources = [
+    "forward_decls.h",
+  ]
+}
diff --git a/include/perfetto/tracing/core/chrome_config.h b/include/perfetto/tracing/core/chrome_config.h
index dff4d87..2334b91 100644
--- a/include/perfetto/tracing/core/chrome_config.h
+++ b/include/perfetto/tracing/core/chrome_config.h
@@ -17,11 +17,12 @@
 #ifndef INCLUDE_PERFETTO_TRACING_CORE_CHROME_CONFIG_H_
 #define INCLUDE_PERFETTO_TRACING_CORE_CHROME_CONFIG_H_
 
-// This header exists only for legacy code that used to refer to the
-// checked-in auto-generated code, before it was moved to be a build-time gen
-// rule. DO NOT add any new includes to this header, instead directly include
-// the one below.
-// TODO(primiano): cleanup call-sites and remove this header.
+// Creates the aliases in the ::perfetto namespace, doing things like:
+// using ::perfetto::Foo = ::perfetto::protos::gen::Foo.
+// See comments in forward_decls.h for the historical reasons of this
+// indirection layer.
+#include "perfetto/tracing/core/forward_decls.h"
+
 #include "protos/perfetto/config/chrome/chrome_config.gen.h"
 
 #endif  // INCLUDE_PERFETTO_TRACING_CORE_CHROME_CONFIG_H_
diff --git a/include/perfetto/tracing/core/data_source_config.h b/include/perfetto/tracing/core/data_source_config.h
index 9b7966c..765a642 100644
--- a/include/perfetto/tracing/core/data_source_config.h
+++ b/include/perfetto/tracing/core/data_source_config.h
@@ -17,11 +17,12 @@
 #ifndef INCLUDE_PERFETTO_TRACING_CORE_DATA_SOURCE_CONFIG_H_
 #define INCLUDE_PERFETTO_TRACING_CORE_DATA_SOURCE_CONFIG_H_
 
-// This header exists only for legacy code that used to refer to the
-// checked-in auto-generated code, before it was moved to be a build-time gen
-// rule. DO NOT add any new includes to this header, instead directly include
-// the one below.
-// TODO(primiano): cleanup call-sites and remove this header.
+// Creates the aliases in the ::perfetto namespace, doing things like:
+// using ::perfetto::Foo = ::perfetto::protos::gen::Foo.
+// See comments in forward_decls.h for the historical reasons of this
+// indirection layer.
+#include "perfetto/tracing/core/forward_decls.h"
+
 #include "protos/perfetto/config/data_source_config.gen.h"
 
 #endif  // INCLUDE_PERFETTO_TRACING_CORE_DATA_SOURCE_CONFIG_H_
diff --git a/include/perfetto/tracing/core/data_source_descriptor.h b/include/perfetto/tracing/core/data_source_descriptor.h
index 75818bf..a9987d6 100644
--- a/include/perfetto/tracing/core/data_source_descriptor.h
+++ b/include/perfetto/tracing/core/data_source_descriptor.h
@@ -17,11 +17,12 @@
 #ifndef INCLUDE_PERFETTO_TRACING_CORE_DATA_SOURCE_DESCRIPTOR_H_
 #define INCLUDE_PERFETTO_TRACING_CORE_DATA_SOURCE_DESCRIPTOR_H_
 
-// This header exists only for legacy code that used to refer to the
-// checked-in auto-generated code, before it was moved to be a build-time gen
-// rule. DO NOT add any new includes to this header, instead directly include
-// the one below.
-// TODO(primiano): cleanup call-sites and remove this header.
+// Creates the aliases in the ::perfetto namespace, doing things like:
+// using ::perfetto::Foo = ::perfetto::protos::gen::Foo.
+// See comments in forward_decls.h for the historical reasons of this
+// indirection layer.
+#include "perfetto/tracing/core/forward_decls.h"
+
 #include "protos/perfetto/common/data_source_descriptor.gen.h"
 
 #endif  // INCLUDE_PERFETTO_TRACING_CORE_DATA_SOURCE_DESCRIPTOR_H_
diff --git a/include/perfetto/tracing/core/forward_decls.h b/include/perfetto/tracing/core/forward_decls.h
new file mode 100644
index 0000000..8d5319c
--- /dev/null
+++ b/include/perfetto/tracing/core/forward_decls.h
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2019 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 INCLUDE_PERFETTO_TRACING_CORE_FORWARD_DECLS_H_
+#define INCLUDE_PERFETTO_TRACING_CORE_FORWARD_DECLS_H_
+
+// Forward declares classes that are generated at build-time from protos.
+// First of all, why are we forward declaring at all?
+//  1. Chromium diverges from the Google style guide on this, because forward
+//     declarations typically make build times faster, and that's a desirable
+//     property for a large and complex codebase.
+//  2. Adding #include to build-time-generated headers from headers typically
+//     creates subtle build errors that are hard to spot in GN. This is because
+//     once a standard header (say foo.h9 has an #include "protos/foo.gen.h",
+//     the build target that depends on foo.h needs to depend on the genrule
+//     that generates foo.gen.h. This is achievable using public_deps in GN but
+//     is not testable / enforceable, hence too easy to get wrong.
+
+// TODO(primiano): update forward declarations and add the rest of the story in
+// the next CLs.
+
+namespace perfetto {
+
+class ChromeConfig;
+class CommitDataRequest;
+class DataSourceConfig;
+class DataSourceDescriptor;
+class ObservableEvents;
+class TraceConfig;
+class TraceStats;
+class TracingServiceState;
+
+}  // namespace perfetto
+
+#endif  // INCLUDE_PERFETTO_TRACING_CORE_FORWARD_DECLS_H_
diff --git a/include/perfetto/tracing/core/trace_config.h b/include/perfetto/tracing/core/trace_config.h
index d2ec6e1..3e2a830 100644
--- a/include/perfetto/tracing/core/trace_config.h
+++ b/include/perfetto/tracing/core/trace_config.h
@@ -17,11 +17,12 @@
 #ifndef INCLUDE_PERFETTO_TRACING_CORE_TRACE_CONFIG_H_
 #define INCLUDE_PERFETTO_TRACING_CORE_TRACE_CONFIG_H_
 
-// This header exists only for legacy code that used to refer to the
-// checked-in auto-generated code, before it was moved to be a build-time gen
-// rule. DO NOT add any new includes to this header, instead directly include
-// the one below.
-// TODO(primiano): cleanup call-sites and remove this header.
+// Creates the aliases in the ::perfetto namespace, doing things like:
+// using ::perfetto::Foo = ::perfetto::protos::gen::Foo.
+// See comments in forward_decls.h for the historical reasons of this
+// indirection layer.
+#include "perfetto/tracing/core/forward_decls.h"
+
 #include "protos/perfetto/config/trace_config.gen.h"
 
 #endif  // INCLUDE_PERFETTO_TRACING_CORE_TRACE_CONFIG_H_
diff --git a/include/perfetto/tracing/core/tracing_service_state.h b/include/perfetto/tracing/core/tracing_service_state.h
index c9d74cd..192cd81 100644
--- a/include/perfetto/tracing/core/tracing_service_state.h
+++ b/include/perfetto/tracing/core/tracing_service_state.h
@@ -18,11 +18,12 @@
 #ifndef INCLUDE_PERFETTO_TRACING_CORE_TRACING_SERVICE_STATE_H_
 #define INCLUDE_PERFETTO_TRACING_CORE_TRACING_SERVICE_STATE_H_
 
-// This header exists only for legacy code that used to refer to the
-// checked-in auto-generated code, before it was moved to be a build-time gen
-// rule. DO NOT add any new includes to this header, instead directly include
-// the one below.
-// TODO(primiano): cleanup call-sites and remove this header.
+// Creates the aliases in the ::perfetto namespace, doing things like:
+// using ::perfetto::Foo = ::perfetto::protos::gen::Foo.
+// See comments in forward_decls.h for the historical reasons of this
+// indirection layer.
+#include "perfetto/tracing/core/forward_decls.h"
+
 #include "protos/perfetto/common/tracing_service_state.gen.h"
 
 #endif  // INCLUDE_PERFETTO_TRACING_CORE_TRACING_SERVICE_STATE_H_
diff --git a/include/perfetto/tracing/data_source.h b/include/perfetto/tracing/data_source.h
index dfbeaed..923e176 100644
--- a/include/perfetto/tracing/data_source.h
+++ b/include/perfetto/tracing/data_source.h
@@ -36,11 +36,13 @@
 #include "perfetto/protozero/message.h"
 #include "perfetto/protozero/message_handle.h"
 #include "perfetto/tracing/buffer_exhausted_policy.h"
+#include "perfetto/tracing/core/forward_decls.h"
 #include "perfetto/tracing/internal/basic_types.h"
 #include "perfetto/tracing/internal/data_source_internal.h"
 #include "perfetto/tracing/internal/tracing_muxer.h"
 #include "perfetto/tracing/locked_handle.h"
 #include "perfetto/tracing/trace_writer_base.h"
+
 #include "protos/perfetto/trace/trace_packet.pbzero.h"
 
 namespace perfetto {
@@ -51,8 +53,6 @@
 class TrackEventDataSource;
 }  // namespace internal
 
-class DataSourceConfig;
-
 // Base class with the virtual methods to get start/stop notifications.
 // Embedders are supposed to derive the templated version below, not this one.
 class PERFETTO_EXPORT DataSourceBase {
diff --git a/include/perfetto/tracing/internal/tracing_muxer.h b/include/perfetto/tracing/internal/tracing_muxer.h
index 4556ed3..4363ca5 100644
--- a/include/perfetto/tracing/internal/tracing_muxer.h
+++ b/include/perfetto/tracing/internal/tracing_muxer.h
@@ -21,14 +21,13 @@
 #include <memory>
 
 #include "perfetto/base/export.h"
+#include "perfetto/tracing/core/forward_decls.h"
 #include "perfetto/tracing/internal/basic_types.h"
 #include "perfetto/tracing/internal/tracing_tls.h"
 #include "perfetto/tracing/platform.h"
-
 namespace perfetto {
 
 class DataSourceBase;
-class DataSourceDescriptor;
 class TraceWriterBase;
 struct TracingInitArgs;
 class TracingSession;
diff --git a/include/perfetto/tracing/internal/track_event_internal.h b/include/perfetto/tracing/internal/track_event_internal.h
index a1465e5..7329201 100644
--- a/include/perfetto/tracing/internal/track_event_internal.h
+++ b/include/perfetto/tracing/internal/track_event_internal.h
@@ -17,17 +17,16 @@
 #ifndef INCLUDE_PERFETTO_TRACING_INTERNAL_TRACK_EVENT_INTERNAL_H_
 #define INCLUDE_PERFETTO_TRACING_INTERNAL_TRACK_EVENT_INTERNAL_H_
 
+#include <unordered_map>
+
 #include "perfetto/protozero/scattered_heap_buffer.h"
+#include "perfetto/tracing/core/forward_decls.h"
 #include "perfetto/tracing/trace_writer_base.h"
 #include "protos/perfetto/trace/interned_data/interned_data.pbzero.h"
 #include "protos/perfetto/trace/track_event/track_event.pbzero.h"
 
-#include <unordered_map>
-
 namespace perfetto {
 class EventContext;
-class DataSourceConfig;
-class DataSourceDescriptor;
 
 namespace internal {
 class TrackEventCategoryRegistry;
diff --git a/include/perfetto/tracing/tracing.h b/include/perfetto/tracing/tracing.h
index 5aa0028..023e6f0 100644
--- a/include/perfetto/tracing/tracing.h
+++ b/include/perfetto/tracing/tracing.h
@@ -27,12 +27,11 @@
 
 #include "perfetto/base/export.h"
 #include "perfetto/base/logging.h"
-
+#include "perfetto/tracing/core/forward_decls.h"
 namespace perfetto {
 
 class TracingBackend;
 class Platform;
-class TraceConfig;
 class TracingSession;  // Declared below.
 
 enum BackendType : uint32_t {
diff --git a/protos/perfetto/trace/BUILD.gn b/protos/perfetto/trace/BUILD.gn
index bc312e0..850c133 100644
--- a/protos/perfetto/trace/BUILD.gn
+++ b/protos/perfetto/trace/BUILD.gn
@@ -58,14 +58,11 @@
   ]
 }
 
-group("cpp") {
-  public_deps = [
-    ":minimal_cpp",
-    ":non_minimal_cpp",
-  ]
-}
-
 perfetto_proto_library("non_minimal_@TYPE@") {
+  proto_generators = [
+    "lite",
+    "zero",
+  ]
   deps = [
     ":minimal_@TYPE@",
     "../config:@TYPE@",
diff --git a/protos/perfetto/trace/ftrace/BUILD.gn b/protos/perfetto/trace/ftrace/BUILD.gn
index 535a119..bda3817 100644
--- a/protos/perfetto/trace/ftrace/BUILD.gn
+++ b/protos/perfetto/trace/ftrace/BUILD.gn
@@ -17,6 +17,10 @@
 import("all_protos.gni")
 
 perfetto_proto_library("@TYPE@") {
+  proto_generators = [
+    "zero",
+    "lite",
+  ]
   sources = ftrace_proto_names
 }
 
diff --git a/src/perfetto_cmd/trigger_producer.h b/src/perfetto_cmd/trigger_producer.h
index d12c178..0a31bd3 100644
--- a/src/perfetto_cmd/trigger_producer.h
+++ b/src/perfetto_cmd/trigger_producer.h
@@ -24,11 +24,9 @@
 #include "perfetto/ext/base/weak_ptr.h"
 #include "perfetto/ext/tracing/core/producer.h"
 #include "perfetto/ext/tracing/core/tracing_service.h"
-
+#include "perfetto/tracing/core/forward_decls.h"
 namespace perfetto {
 
-class DataSourceConfig;
-
 // This is a producer that only sends the provided |triggers| to the service. It
 // will never register any data sources.
 class TriggerProducer : public Producer {
diff --git a/src/profiling/memory/heapprofd_producer.cc b/src/profiling/memory/heapprofd_producer.cc
index cdfca23..2a02b64 100644
--- a/src/profiling/memory/heapprofd_producer.cc
+++ b/src/profiling/memory/heapprofd_producer.cc
@@ -296,7 +296,7 @@
   }
 
   HeapprofdConfig heapprofd_config;
-  heapprofd_config.ParseRawProto(ds_config.heapprofd_config_raw());
+  heapprofd_config.ParseFromString(ds_config.heapprofd_config_raw());
 
   if (heapprofd_config.all() && !heapprofd_config.pid().empty())
     PERFETTO_ELOG("No point setting all and pid");
diff --git a/src/profiling/memory/java_hprof_producer.cc b/src/profiling/memory/java_hprof_producer.cc
index 82346ec..9d101ff 100644
--- a/src/profiling/memory/java_hprof_producer.cc
+++ b/src/profiling/memory/java_hprof_producer.cc
@@ -77,7 +77,7 @@
     return;
   }
   JavaHprofConfig config;
-  config.ParseRawProto(ds_config.java_hprof_config_raw());
+  config.ParseFromString(ds_config.java_hprof_config_raw());
   DataSource ds;
   ds.id = id;
   for (uint64_t pid : config.pid())
diff --git a/src/profiling/perf/BUILD.gn b/src/profiling/perf/BUILD.gn
index e24d619..dba1ca2 100644
--- a/src/profiling/perf/BUILD.gn
+++ b/src/profiling/perf/BUILD.gn
@@ -51,6 +51,9 @@
     "../../../src/base:unix_socket",
     "../../../src/tracing:ipc",
   ]
+  public_deps = [
+    "../../../include/perfetto/tracing/core",
+  ]
   sources = [
     "event_config.h",
     "event_reader.cc",
diff --git a/src/profiling/perf/event_config.h b/src/profiling/perf/event_config.h
index 3b17ef5..da53a0b 100644
--- a/src/profiling/perf/event_config.h
+++ b/src/profiling/perf/event_config.h
@@ -22,7 +22,8 @@
 #include <sys/types.h>
 
 #include "perfetto/ext/base/optional.h"
-#include "protos/perfetto/config/data_source_config.gen.h"
+#include "perfetto/tracing/core/data_source_config.h"
+
 #include "protos/perfetto/config/profiling/perf_event_config.pbzero.h"
 
 namespace perfetto {
diff --git a/src/profiling/perf/event_config_unittest.cc b/src/profiling/perf/event_config_unittest.cc
index 1e32374..6598eb4 100644
--- a/src/profiling/perf/event_config_unittest.cc
+++ b/src/profiling/perf/event_config_unittest.cc
@@ -22,10 +22,11 @@
 #include "perfetto/base/logging.h"
 #include "perfetto/ext/base/optional.h"
 #include "perfetto/protozero/scattered_heap_buffer.h"
-#include "protos/perfetto/config/data_source_config.gen.h"
+#include "perfetto/tracing/core/data_source_config.h"
+#include "test/gtest_and_gmock.h"
+
 #include "protos/perfetto/config/data_source_config.pbzero.h"
 #include "protos/perfetto/config/profiling/perf_event_config.pbzero.h"
-#include "test/gtest_and_gmock.h"
 
 namespace perfetto {
 namespace profiling {
@@ -37,14 +38,14 @@
   protozero::HeapBuffered<protos::pbzero::DataSourceConfig> ds_config;
   ds_config->set_perf_event_config_raw(pb_config.SerializeAsString());
   DataSourceConfig cfg;
-  PERFETTO_CHECK(cfg.ParseRawProto(ds_config.SerializeAsString()));
+  PERFETTO_CHECK(cfg.ParseFromString(ds_config.SerializeAsString()));
   return cfg;
 }
 
 TEST(EventConfigTest, TidRequired) {
   // Doesn't pass validation without a TID
   DataSourceConfig cfg;
-  ASSERT_TRUE(cfg.ParseRawProto(std::string{}));
+  ASSERT_TRUE(cfg.ParseFromString(""));
 
   base::Optional<EventConfig> event_config = EventConfig::Create(cfg);
   ASSERT_FALSE(event_config.has_value());
diff --git a/src/protozero/BUILD.gn b/src/protozero/BUILD.gn
index 23469d8..3161670 100644
--- a/src/protozero/BUILD.gn
+++ b/src/protozero/BUILD.gn
@@ -37,6 +37,7 @@
     "scattered_stream_null_delegate.cc",
     "scattered_stream_writer.cc",
     "static_buffer.cc",
+    "virtual_destructors.cc",
   ]
 }
 
diff --git a/src/protozero/protoc_plugin/cppgen_plugin.cc b/src/protozero/protoc_plugin/cppgen_plugin.cc
index 78ac16a..cdfaf18 100644
--- a/src/protozero/protoc_plugin/cppgen_plugin.cc
+++ b/src/protozero/protoc_plugin/cppgen_plugin.cc
@@ -137,6 +137,7 @@
   h_printer.Print("#include <vector>\n");
   h_printer.Print("#include <string>\n");
   h_printer.Print("#include <type_traits>\n\n");
+  h_printer.Print("#include \"perfetto/protozero/cpp_message_obj.h\"\n");
   h_printer.Print("#include \"perfetto/protozero/copyable_ptr.h\"\n");
   h_printer.Print("#include \"perfetto/base/export.h\"\n\n");
 
@@ -500,7 +501,9 @@
 
 void CppObjGenerator::GenClassDecl(const Descriptor* msg, Printer* p) const {
   std::string full_name = GetFullName(msg);
-  p->Print("\nclass PERFETTO_EXPORT $n$ {\n", "n", full_name);
+  p->Print(
+      "\nclass PERFETTO_EXPORT $n$ : public ::protozero::CppMessageObj {\n",
+      "n", full_name);
   p->Print(" public:\n");
   p->Indent();
 
@@ -530,7 +533,7 @@
   p->Print("};\n\n");
 
   p->Print("$n$();\n", "n", full_name);
-  p->Print("~$n$();\n", "n", full_name);
+  p->Print("~$n$() override;\n", "n", full_name);
   p->Print("$n$($n$&&) noexcept;\n", "n", full_name);
   p->Print("$n$& operator=($n$&&);\n", "n", full_name);
   p->Print("$n$(const $n$&);\n", "n", full_name);
@@ -542,21 +545,16 @@
   p->Print("\n");
 
   std::string proto_type = GetFullName(msg, true);
-  p->Print("// Raw proto decoding.\n");
-  p->Print("bool ParseFromArray(const void*, size_t);\n");
-  p->Print("bool ParseRawProto(const std::string& str) {\n");
-  p->Print("  return ParseFromArray(str.data(), str.size());\n");
-  p->Print("}\n");
-
-  p->Print("std::string SerializeAsString() const;\n");
-  p->Print("std::vector<uint8_t> SerializeAsArray() const;\n");
+  p->Print("bool ParseFromArray(const void*, size_t) override;\n");
+  p->Print("std::string SerializeAsString() const override;\n");
+  p->Print("std::vector<uint8_t> SerializeAsArray() const override;\n");
   p->Print("void Serialize(::protozero::Message*) const;\n");
 
   p->Print("// (DEPRECATED) Conversion methods from/to libprotobuf types.\n");
   p->Print("// These two will go away soon, see go/perfetto-libprotobuf.\n");
   p->Print(
       "template <typename T /*$p$*/> void FromProto(const T& pb_obj) { "
-      "ParseRawProto(pb_obj.SerializeAsString()); }\n",
+      "ParseFromString(pb_obj.SerializeAsString()); }\n",
       "p", proto_type);
   p->Print(
       "template <typename T /*$p$*/> void ToProto(T* pb_obj) const { "
@@ -680,7 +678,7 @@
 
   std::string proto_type = GetFullName(msg, true);
 
-  // Generate the ParseRawProto() method definition.
+  // Generate the ParseFromArray() method definition.
   p->Print("bool $f$::ParseFromArray(const void* raw, size_t size) {\n", "f",
            full_name);
   p->Indent();
@@ -711,7 +709,7 @@
     } else {
       std::string statement;
       if (field->type() == TYPE_MESSAGE) {
-        statement = "$rval$.ParseRawProto(field.as_std_string());\n";
+        statement = "$rval$.ParseFromString(field.as_std_string());\n";
       } else {
         if (field->type() == TYPE_SINT32 || field->type() == TYPE_SINT64) {
           // sint32/64 fields are special and need to be zig-zag-decoded.
diff --git a/src/protozero/test/cppgen_conformance_unittest.cc b/src/protozero/test/cppgen_conformance_unittest.cc
index 040b507..ed12707 100644
--- a/src/protozero/test/cppgen_conformance_unittest.cc
+++ b/src/protozero/test/cppgen_conformance_unittest.cc
@@ -109,7 +109,7 @@
   std::string serialized = gold_msg.SerializeAsString();
 
   pbtest::EveryField msg;
-  EXPECT_TRUE(msg.ParseRawProto(serialized));
+  EXPECT_TRUE(msg.ParseFromString(serialized));
   CheckTestingFields(msg);
 }
 
@@ -119,7 +119,7 @@
   std::string serialized = msg.SerializeAsString();
 
   pbtest::EveryField dec_msg;
-  dec_msg.ParseRawProto(serialized);
+  dec_msg.ParseFromString(serialized);
   CheckTestingFields(dec_msg);
   EXPECT_EQ(serialized.size(), dec_msg.SerializeAsString().size());
 }
@@ -192,7 +192,7 @@
   // the v1 message.
   {
     pbtest::TestVersioning_V1 msg_v1;
-    EXPECT_TRUE(msg_v1.ParseRawProto(serialized));
+    EXPECT_TRUE(msg_v1.ParseFromString(serialized));
     EXPECT_EQ(msg_v1.root_int(), 10);
     EXPECT_EQ(msg_v1.enumz_size(), 3);
     // These are to workaround "ODR-usage" rules that would require that the
@@ -225,7 +225,7 @@
   // fields have been preserved in the double de/serializataion across versions.
   {
     pbtest::TestVersioning_V2 msg_v2;
-    EXPECT_TRUE(msg_v2.ParseRawProto(serialized));
+    EXPECT_TRUE(msg_v2.ParseFromString(serialized));
     EXPECT_EQ(msg_v2.root_int(), 101);
     EXPECT_EQ(msg_v2.root_int_v2(), 11);
     EXPECT_EQ(msg_v2.enumz_size(), 3);
@@ -253,7 +253,7 @@
     }
     {
       pbtest::TestVersioning_V2::Sub1_V2 lazy;
-      EXPECT_TRUE(lazy.ParseRawProto(msg_v2.sub1_lazy_raw()));
+      EXPECT_TRUE(lazy.ParseFromString(msg_v2.sub1_lazy_raw()));
       EXPECT_EQ(lazy.sub1_int(), 15);
       EXPECT_EQ(lazy.sub1_string(), "sub1-lazy-string");
       EXPECT_EQ(lazy.sub1_int_v2(), 16);
@@ -261,7 +261,7 @@
     }
     {
       pbtest::TestVersioning_V2::Sub2_V2 lazy;
-      EXPECT_TRUE(lazy.ParseRawProto(msg_v2.sub2_lazy_raw()));
+      EXPECT_TRUE(lazy.ParseFromString(msg_v2.sub2_lazy_raw()));
       EXPECT_EQ(lazy.sub2_int(), 17);
       EXPECT_EQ(lazy.sub2_string(), "sub2-v2-lazy-string");
     }
@@ -285,7 +285,7 @@
   EXPECT_TRUE(msg.has_field_string());
 
   pbtest::EveryField dec;
-  dec.ParseRawProto(msg.SerializeAsString());
+  dec.ParseFromString(msg.SerializeAsString());
   std::string reserialized = dec.SerializeAsString();
 
   pbgold::EveryField gold_msg;
@@ -320,7 +320,7 @@
   }
   {
     pbtest::PackedRepeatedFields msg;
-    EXPECT_TRUE(msg.ParseRawProto(serialized));
+    EXPECT_TRUE(msg.ParseFromString(serialized));
 
     std::vector<int> exp_int32;
     for (int i = -100; i < 100; i++)
diff --git a/src/protozero/virtual_destructors.cc b/src/protozero/virtual_destructors.cc
new file mode 100644
index 0000000..1e452a4
--- /dev/null
+++ b/src/protozero/virtual_destructors.cc
@@ -0,0 +1,24 @@
+
+/*
+ * Copyright (C) 2019 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 "perfetto/protozero/cpp_message_obj.h"
+
+namespace protozero {
+
+CppMessageObj::~CppMessageObj() = default;
+
+}  // namespace protozero
diff --git a/src/traced/probes/android_log/android_log_data_source.h b/src/traced/probes/android_log/android_log_data_source.h
index 171e543..12f1ae8 100644
--- a/src/traced/probes/android_log/android_log_data_source.h
+++ b/src/traced/probes/android_log/android_log_data_source.h
@@ -26,11 +26,11 @@
 #include "perfetto/ext/base/string_view.h"
 #include "perfetto/ext/base/unix_socket.h"
 #include "perfetto/ext/base/weak_ptr.h"
+#include "perfetto/tracing/core/forward_decls.h"
 #include "src/traced/probes/probes_data_source.h"
 
 namespace perfetto {
 
-class DataSourceConfig;
 class TraceWriter;
 namespace base {
 class TaskRunner;
diff --git a/src/traced/probes/ftrace/BUILD.gn b/src/traced/probes/ftrace/BUILD.gn
index 11a84ef..959926b 100644
--- a/src/traced/probes/ftrace/BUILD.gn
+++ b/src/traced/probes/ftrace/BUILD.gn
@@ -100,6 +100,7 @@
 
 source_set("ftrace") {
   public_deps = [
+    "../../../../protos/perfetto/config/ftrace:cpp",
     "../../../../protos/perfetto/trace/ftrace:zero",
     "../../../tracing",
   ]
@@ -108,7 +109,6 @@
     "..:data_source",
     "../../../../gn:default_deps",
     "../../../../include/perfetto/ext/traced",
-    "../../../../protos/perfetto/config/ftrace:cpp",
     "../../../android_internal:lazy_library_loader",
     "../../../base",
     "../../../protozero",
diff --git a/src/traced/probes/ftrace/compact_sched.h b/src/traced/probes/ftrace/compact_sched.h
index 657d651..63b7edb 100644
--- a/src/traced/probes/ftrace/compact_sched.h
+++ b/src/traced/probes/ftrace/compact_sched.h
@@ -23,11 +23,10 @@
 #include "perfetto/protozero/packed_repeated_fields.h"
 #include "protos/perfetto/trace/ftrace/ftrace_event_bundle.pbzero.h"
 #include "src/traced/probes/ftrace/event_info_constants.h"
+#include "src/traced/probes/ftrace/ftrace_config_utils.h"
 
 namespace perfetto {
 
-class FtraceConfig;
-
 // The subset of the sched_switch event's format that is used when parsing and
 // encoding into the compact format.
 struct CompactSchedSwitchFormat {
diff --git a/src/traced/probes/probes_producer.cc b/src/traced/probes/probes_producer.cc
index 0c3a5de..f59c8f8 100644
--- a/src/traced/probes/probes_producer.cc
+++ b/src/traced/probes/probes_producer.cc
@@ -252,7 +252,7 @@
   PERFETTO_LOG("Ftrace setup (target_buf=%" PRIu32 ")", config.target_buffer());
   const BufferID buffer_id = static_cast<BufferID>(config.target_buffer());
   FtraceConfig ftrace_config;
-  ftrace_config.ParseRawProto(config.ftrace_config_raw());
+  ftrace_config.ParseFromString(config.ftrace_config_raw());
   std::unique_ptr<FtraceDataSource> data_source(new FtraceDataSource(
       ftrace_->GetWeakPtr(), session_id, std::move(ftrace_config),
       endpoint_->CreateTraceWriter(buffer_id)));
diff --git a/src/traced/probes/ps/process_stats_data_source.h b/src/traced/probes/ps/process_stats_data_source.h
index f301e5d..a9ea6ac 100644
--- a/src/traced/probes/ps/process_stats_data_source.h
+++ b/src/traced/probes/ps/process_stats_data_source.h
@@ -27,8 +27,8 @@
 #include "perfetto/ext/base/weak_ptr.h"
 #include "perfetto/ext/tracing/core/basic_types.h"
 #include "perfetto/ext/tracing/core/trace_writer.h"
+#include "perfetto/tracing/core/forward_decls.h"
 #include "src/traced/probes/probes_data_source.h"
-
 namespace perfetto {
 
 namespace base {
@@ -43,7 +43,6 @@
 }  // namespace pbzero
 }  // namespace protos
 
-class DataSourceConfig;
 
 class ProcessStatsDataSource : public ProbesDataSource {
  public:
diff --git a/src/tracing/core/shared_memory_arbiter_impl.h b/src/tracing/core/shared_memory_arbiter_impl.h
index be00684..22bf09d 100644
--- a/src/tracing/core/shared_memory_arbiter_impl.h
+++ b/src/tracing/core/shared_memory_arbiter_impl.h
@@ -29,11 +29,10 @@
 #include "perfetto/ext/tracing/core/shared_memory_abi.h"
 #include "perfetto/ext/tracing/core/shared_memory_arbiter.h"
 #include "perfetto/ext/tracing/core/startup_trace_writer_registry.h"
+#include "perfetto/tracing/core/forward_decls.h"
 #include "src/tracing/core/id_allocator.h"
-
 namespace perfetto {
 
-class CommitDataRequest;
 class PatchList;
 class TraceWriter;
 class TraceWriterImpl;
diff --git a/src/tracing/core/tracing_service_impl.h b/src/tracing/core/tracing_service_impl.h
index 76ce0e2..36561be 100644
--- a/src/tracing/core/tracing_service_impl.h
+++ b/src/tracing/core/tracing_service_impl.h
@@ -36,9 +36,9 @@
 #include "perfetto/ext/tracing/core/tracing_service.h"
 #include "perfetto/tracing/core/data_source_config.h"
 #include "perfetto/tracing/core/data_source_descriptor.h"
+#include "perfetto/tracing/core/forward_decls.h"
 #include "perfetto/tracing/core/trace_config.h"
 #include "src/tracing/core/id_allocator.h"
-
 namespace perfetto {
 
 namespace base {
@@ -46,12 +46,10 @@
 }  // namespace base
 
 class Consumer;
-class DataSourceConfig;
 class Producer;
 class SharedMemory;
 class SharedMemoryArbiterImpl;
 class TraceBuffer;
-class TraceConfig;
 class TracePacket;
 
 // The tracing service business logic.
diff --git a/src/tracing/internal/tracing_muxer_impl.h b/src/tracing/internal/tracing_muxer_impl.h
index 1f0f8be..6c19902 100644
--- a/src/tracing/internal/tracing_muxer_impl.h
+++ b/src/tracing/internal/tracing_muxer_impl.h
@@ -33,16 +33,15 @@
 #include "perfetto/ext/tracing/core/consumer.h"
 #include "perfetto/ext/tracing/core/producer.h"
 #include "perfetto/tracing/core/data_source_descriptor.h"
+#include "perfetto/tracing/core/forward_decls.h"
 #include "perfetto/tracing/core/trace_config.h"
 #include "perfetto/tracing/internal/basic_types.h"
 #include "perfetto/tracing/internal/tracing_muxer.h"
 #include "perfetto/tracing/tracing.h"
-
 namespace perfetto {
 
 class ConsumerEndpoint;
 class DataSourceBase;
-class DataSourceConfig;
 class ProducerEndpoint;
 class TraceWriterBase;
 class TracingBackend;
