diff --git a/Android.bp b/Android.bp
index 7268285..320e7af 100644
--- a/Android.bp
+++ b/Android.bp
@@ -21,6 +21,7 @@
     "src/trace_processor/metrics/android/android_mem_lmk.sql",
     "src/trace_processor/metrics/android/android_mem_proc_counters.sql",
     "src/trace_processor/metrics/android/android_startup.sql",
+    "src/trace_processor/metrics/android/android_startup_cpu.sql",
     "src/trace_processor/metrics/android/android_startup_launches.sql",
     "src/trace_processor/metrics/android/android_task_state.sql",
     "src/trace_processor/metrics/android/heap_profile.sql",
@@ -99,7 +100,6 @@
     "src/protozero/scattered_heap_buffer.cc",
     "src/protozero/scattered_stream_null_delegate.cc",
     "src/protozero/scattered_stream_writer.cc",
-    "src/public/trace_writer_base.cc",
     "src/tracing/core/chrome_config.cc",
     "src/tracing/core/commit_data_request.cc",
     "src/tracing/core/data_source_config.cc",
@@ -121,6 +121,7 @@
     "src/tracing/core/trace_writer_impl.cc",
     "src/tracing/core/tracing_service_impl.cc",
     "src/tracing/core/virtual_destructors.cc",
+    "src/tracing/trace_writer_base.cc",
   ],
   shared_libs: [
     "libbase",
@@ -130,7 +131,6 @@
     "libunwindstack",
   ],
   static_libs: [
-    "libgtest_prod",
     "perfetto_src_tracing_ipc",
   ],
   init_rc: [
@@ -201,7 +201,6 @@
   ],
   static_libs: [
     "libasync_safe",
-    "libgtest_prod",
   ],
   defaults: [
     "perfetto_defaults",
@@ -280,7 +279,6 @@
     "src/protozero/scattered_heap_buffer.cc",
     "src/protozero/scattered_stream_null_delegate.cc",
     "src/protozero/scattered_stream_writer.cc",
-    "src/public/trace_writer_base.cc",
     "src/traced/probes/android_log/android_log_data_source.cc",
     "src/traced/probes/filesystem/file_scanner.cc",
     "src/traced/probes/filesystem/fs_mount.cc",
@@ -336,13 +334,13 @@
     "src/tracing/core/trace_writer_impl.cc",
     "src/tracing/core/tracing_service_impl.cc",
     "src/tracing/core/virtual_destructors.cc",
+    "src/tracing/trace_writer_base.cc",
   ],
   shared_libs: [
     "liblog",
     "libprotobuf-cpp-lite",
   ],
   static_libs: [
-    "libgtest_prod",
     "perfetto_src_tracing_ipc",
   ],
   generated_headers: [
@@ -465,7 +463,6 @@
     "src/protozero/scattered_heap_buffer.cc",
     "src/protozero/scattered_stream_null_delegate.cc",
     "src/protozero/scattered_stream_writer.cc",
-    "src/public/trace_writer_base.cc",
     "src/tracing/core/chrome_config.cc",
     "src/tracing/core/commit_data_request.cc",
     "src/tracing/core/data_source_config.cc",
@@ -487,6 +484,7 @@
     "src/tracing/core/trace_writer_impl.cc",
     "src/tracing/core/tracing_service_impl.cc",
     "src/tracing/core/virtual_destructors.cc",
+    "src/tracing/trace_writer_base.cc",
   ],
   shared_libs: [
     "libandroid",
@@ -498,7 +496,6 @@
     "libz",
   ],
   static_libs: [
-    "libgtest_prod",
     "perfetto_src_tracing_ipc",
   ],
   generated_headers: [
@@ -638,16 +635,6 @@
     "src/protozero/scattered_heap_buffer.cc",
     "src/protozero/scattered_stream_null_delegate.cc",
     "src/protozero/scattered_stream_writer.cc",
-    "src/public/api_integrationtest.cc",
-    "src/public/data_source.cc",
-    "src/public/internal/in_process_tracing_backend.cc",
-    "src/public/internal/system_tracing_backend.cc",
-    "src/public/internal/tracing_muxer_impl.cc",
-    "src/public/platform.cc",
-    "src/public/platform_posix.cc",
-    "src/public/trace_writer_base.cc",
-    "src/public/tracing.cc",
-    "src/public/virtual_destructors.cc",
     "src/traced/probes/android_log/android_log_data_source.cc",
     "src/traced/probes/filesystem/file_scanner.cc",
     "src/traced/probes/filesystem/fs_mount.cc",
@@ -680,6 +667,7 @@
     "src/traced/probes/probes_producer.cc",
     "src/traced/probes/ps/process_stats_data_source.cc",
     "src/traced/probes/sys_stats/sys_stats_data_source.cc",
+    "src/tracing/api_integrationtest.cc",
     "src/tracing/core/chrome_config.cc",
     "src/tracing/core/commit_data_request.cc",
     "src/tracing/core/data_source_config.cc",
@@ -701,6 +689,15 @@
     "src/tracing/core/trace_writer_impl.cc",
     "src/tracing/core/tracing_service_impl.cc",
     "src/tracing/core/virtual_destructors.cc",
+    "src/tracing/data_source.cc",
+    "src/tracing/internal/in_process_tracing_backend.cc",
+    "src/tracing/internal/system_tracing_backend.cc",
+    "src/tracing/internal/tracing_muxer_impl.cc",
+    "src/tracing/platform.cc",
+    "src/tracing/platform_posix.cc",
+    "src/tracing/trace_writer_base.cc",
+    "src/tracing/tracing.cc",
+    "src/tracing/virtual_destructors.cc",
     "test/end_to_end_integrationtest.cc",
     "test/fake_producer.cc",
     "test/task_runner_thread.cc",
@@ -716,7 +713,6 @@
   ],
   static_libs: [
     "libgmock",
-    "libgtest_prod",
     "perfetto_src_tracing_ipc",
   ],
   generated_headers: [
@@ -2747,7 +2743,6 @@
     "src/protozero/scattered_heap_buffer.cc",
     "src/protozero/scattered_stream_null_delegate.cc",
     "src/protozero/scattered_stream_writer.cc",
-    "src/public/trace_writer_base.cc",
     "src/tracing/core/chrome_config.cc",
     "src/tracing/core/commit_data_request.cc",
     "src/tracing/core/data_source_config.cc",
@@ -2776,13 +2771,11 @@
     "src/tracing/ipc/service/consumer_ipc_service.cc",
     "src/tracing/ipc/service/producer_ipc_service.cc",
     "src/tracing/ipc/service/service_ipc_host_impl.cc",
+    "src/tracing/trace_writer_base.cc",
   ],
   shared_libs: [
     "libprotobuf-cpp-lite",
   ],
-  static_libs: [
-    "libgtest_prod",
-  ],
   export_include_dirs: [
     "include",
   ],
@@ -3039,7 +3032,6 @@
     "src/protozero/scattered_stream_writer_unittest.cc",
     "src/protozero/test/fake_scattered_buffer.cc",
     "src/protozero/test/protozero_conformance_unittest.cc",
-    "src/public/trace_writer_base.cc",
     "src/traced/probes/android_log/android_log_data_source.cc",
     "src/traced/probes/android_log/android_log_data_source_unittest.cc",
     "src/traced/probes/filesystem/file_scanner.cc",
@@ -3135,6 +3127,7 @@
     "src/tracing/test/mock_producer.cc",
     "src/tracing/test/test_shared_memory.cc",
     "src/tracing/test/tracing_integration_test.cc",
+    "src/tracing/trace_writer_base.cc",
     "tools/ftrace_proto_gen/ftrace_descriptor_gen.cc",
     "tools/ftrace_proto_gen/ftrace_proto_gen.cc",
     "tools/ftrace_proto_gen/ftrace_proto_gen_unittest.cc",
@@ -3156,7 +3149,6 @@
   ],
   static_libs: [
     "libgmock",
-    "libgtest_prod",
     "perfetto_src_tracing_ipc",
   ],
   generated_headers: [
@@ -3311,6 +3303,7 @@
     "src/trace_processor/string_pool.cc",
     "src/trace_processor/string_table.cc",
     "src/trace_processor/syscall_tracker.cc",
+    "src/trace_processor/systrace_trace_parser.cc",
     "src/trace_processor/table.cc",
     "src/trace_processor/thread_table.cc",
     "src/trace_processor/trace_processor.cc",
@@ -3333,7 +3326,6 @@
     "libprotobuf-cpp-lite",
   ],
   static_libs: [
-    "libgtest_prod",
     "libsqlite",
   ],
   generated_headers: [
@@ -3478,7 +3470,6 @@
     "src/protozero/scattered_heap_buffer.cc",
     "src/protozero/scattered_stream_null_delegate.cc",
     "src/protozero/scattered_stream_writer.cc",
-    "src/public/trace_writer_base.cc",
     "src/tracing/core/chrome_config.cc",
     "src/tracing/core/commit_data_request.cc",
     "src/tracing/core/data_source_config.cc",
@@ -3500,6 +3491,7 @@
     "src/tracing/core/trace_writer_impl.cc",
     "src/tracing/core/tracing_service_impl.cc",
     "src/tracing/core/virtual_destructors.cc",
+    "src/tracing/trace_writer_base.cc",
   ],
   shared_libs: [
     "liblog",
@@ -3507,7 +3499,6 @@
     "libz",
   ],
   static_libs: [
-    "libgtest_prod",
     "perfetto_src_tracing_ipc",
   ],
   generated_headers: [
diff --git a/BUILD b/BUILD
index 37588d9..b93362b 100644
--- a/BUILD
+++ b/BUILD
@@ -28,6 +28,7 @@
         "src/trace_processor/metrics/android/android_mem_lmk.sql",
         "src/trace_processor/metrics/android/android_mem_proc_counters.sql",
         "src/trace_processor/metrics/android/android_startup.sql",
+        "src/trace_processor/metrics/android/android_startup_cpu.sql",
         "src/trace_processor/metrics/android/android_startup_launches.sql",
         "src/trace_processor/metrics/android/android_task_state.sql",
         "src/trace_processor/metrics/android/heap_profile.sql",
@@ -46,21 +47,6 @@
 cc_library(
     name = "libprotozero",
     srcs = [
-        "src/base/event.cc",
-        "src/base/file_utils.cc",
-        "src/base/metatrace.cc",
-        "src/base/paged_memory.cc",
-        "src/base/pipe.cc",
-        "src/base/string_splitter.cc",
-        "src/base/string_utils.cc",
-        "src/base/string_view.cc",
-        "src/base/temp_file.cc",
-        "src/base/thread_checker.cc",
-        "src/base/thread_task_runner.cc",
-        "src/base/time.cc",
-        "src/base/unix_task_runner.cc",
-        "src/base/virtual_destructors.cc",
-        "src/base/watchdog_posix.cc",
         "src/protozero/message.cc",
         "src/protozero/message_handle.cc",
         "src/protozero/proto_decoder.cc",
@@ -70,39 +56,39 @@
     ],
     hdrs = [
         "include/perfetto/base/build_config.h",
-        "include/perfetto/base/circular_queue.h",
-        "include/perfetto/base/container_annotations.h",
-        "include/perfetto/base/event.h",
+        "include/perfetto/base/compiler.h",
         "include/perfetto/base/export.h",
-        "include/perfetto/base/file_utils.h",
-        "include/perfetto/base/gtest_prod_util.h",
-        "include/perfetto/base/hash.h",
         "include/perfetto/base/logging.h",
-        "include/perfetto/base/metatrace.h",
-        "include/perfetto/base/no_destructor.h",
-        "include/perfetto/base/optional.h",
-        "include/perfetto/base/paged_memory.h",
-        "include/perfetto/base/pipe.h",
-        "include/perfetto/base/scoped_file.h",
-        "include/perfetto/base/small_set.h",
-        "include/perfetto/base/string_splitter.h",
-        "include/perfetto/base/string_utils.h",
-        "include/perfetto/base/string_view.h",
-        "include/perfetto/base/string_writer.h",
         "include/perfetto/base/task_runner.h",
-        "include/perfetto/base/temp_file.h",
-        "include/perfetto/base/thread_annotations.h",
-        "include/perfetto/base/thread_checker.h",
-        "include/perfetto/base/thread_task_runner.h",
-        "include/perfetto/base/thread_utils.h",
-        "include/perfetto/base/time.h",
-        "include/perfetto/base/unix_socket.h",
-        "include/perfetto/base/unix_task_runner.h",
-        "include/perfetto/base/utils.h",
-        "include/perfetto/base/watchdog.h",
-        "include/perfetto/base/watchdog_noop.h",
-        "include/perfetto/base/watchdog_posix.h",
-        "include/perfetto/base/weak_ptr.h",
+        "include/perfetto/ext/base/circular_queue.h",
+        "include/perfetto/ext/base/container_annotations.h",
+        "include/perfetto/ext/base/event.h",
+        "include/perfetto/ext/base/file_utils.h",
+        "include/perfetto/ext/base/hash.h",
+        "include/perfetto/ext/base/metatrace.h",
+        "include/perfetto/ext/base/no_destructor.h",
+        "include/perfetto/ext/base/optional.h",
+        "include/perfetto/ext/base/paged_memory.h",
+        "include/perfetto/ext/base/pipe.h",
+        "include/perfetto/ext/base/scoped_file.h",
+        "include/perfetto/ext/base/small_set.h",
+        "include/perfetto/ext/base/string_splitter.h",
+        "include/perfetto/ext/base/string_utils.h",
+        "include/perfetto/ext/base/string_view.h",
+        "include/perfetto/ext/base/string_writer.h",
+        "include/perfetto/ext/base/temp_file.h",
+        "include/perfetto/ext/base/thread_annotations.h",
+        "include/perfetto/ext/base/thread_checker.h",
+        "include/perfetto/ext/base/thread_task_runner.h",
+        "include/perfetto/ext/base/thread_utils.h",
+        "include/perfetto/ext/base/time.h",
+        "include/perfetto/ext/base/unix_socket.h",
+        "include/perfetto/ext/base/unix_task_runner.h",
+        "include/perfetto/ext/base/utils.h",
+        "include/perfetto/ext/base/watchdog.h",
+        "include/perfetto/ext/base/watchdog_noop.h",
+        "include/perfetto/ext/base/watchdog_posix.h",
+        "include/perfetto/ext/base/weak_ptr.h",
         "include/perfetto/protozero/contiguous_memory_range.h",
         "include/perfetto/protozero/field.h",
         "include/perfetto/protozero/message.h",
@@ -113,9 +99,6 @@
         "include/perfetto/protozero/scattered_stream_null_delegate.h",
         "include/perfetto/protozero/scattered_stream_writer.h",
     ],
-    deps = [
-        "//third_party/perfetto/google:gtest_prod",
-    ],
 )
 
 # GN target: //src/protozero/protoc_plugin:protoc_plugin
@@ -242,6 +225,7 @@
         "src/trace_processor/span_join_operator_table.h",
         "src/trace_processor/sql_stats_table.cc",
         "src/trace_processor/sql_stats_table.h",
+        "src/trace_processor/sqlite.h",
         "src/trace_processor/sqlite3_str_split.cc",
         "src/trace_processor/sqlite3_str_split.h",
         "src/trace_processor/sqlite_utils.h",
@@ -264,6 +248,9 @@
         "src/trace_processor/syscalls_aarch64.h",
         "src/trace_processor/syscalls_armeabi.h",
         "src/trace_processor/syscalls_x86_64.h",
+        "src/trace_processor/systrace_trace_parser.cc",
+        "src/trace_processor/systrace_trace_parser.h",
+        "src/trace_processor/systrace_utils.h",
         "src/trace_processor/table.cc",
         "src/trace_processor/table.h",
         "src/trace_processor/thread_table.cc",
@@ -286,39 +273,40 @@
     ],
     hdrs = [
         "include/perfetto/base/build_config.h",
-        "include/perfetto/base/circular_queue.h",
-        "include/perfetto/base/container_annotations.h",
-        "include/perfetto/base/event.h",
+        "include/perfetto/base/compiler.h",
         "include/perfetto/base/export.h",
-        "include/perfetto/base/file_utils.h",
-        "include/perfetto/base/gtest_prod_util.h",
-        "include/perfetto/base/hash.h",
         "include/perfetto/base/logging.h",
-        "include/perfetto/base/metatrace.h",
-        "include/perfetto/base/no_destructor.h",
-        "include/perfetto/base/optional.h",
-        "include/perfetto/base/paged_memory.h",
-        "include/perfetto/base/pipe.h",
-        "include/perfetto/base/scoped_file.h",
-        "include/perfetto/base/small_set.h",
-        "include/perfetto/base/string_splitter.h",
-        "include/perfetto/base/string_utils.h",
-        "include/perfetto/base/string_view.h",
-        "include/perfetto/base/string_writer.h",
         "include/perfetto/base/task_runner.h",
-        "include/perfetto/base/temp_file.h",
-        "include/perfetto/base/thread_annotations.h",
-        "include/perfetto/base/thread_checker.h",
-        "include/perfetto/base/thread_task_runner.h",
-        "include/perfetto/base/thread_utils.h",
-        "include/perfetto/base/time.h",
-        "include/perfetto/base/unix_socket.h",
-        "include/perfetto/base/unix_task_runner.h",
-        "include/perfetto/base/utils.h",
-        "include/perfetto/base/watchdog.h",
-        "include/perfetto/base/watchdog_noop.h",
-        "include/perfetto/base/watchdog_posix.h",
-        "include/perfetto/base/weak_ptr.h",
+        "include/perfetto/ext/base/circular_queue.h",
+        "include/perfetto/ext/base/container_annotations.h",
+        "include/perfetto/ext/base/event.h",
+        "include/perfetto/ext/base/file_utils.h",
+        "include/perfetto/ext/base/hash.h",
+        "include/perfetto/ext/base/metatrace.h",
+        "include/perfetto/ext/base/no_destructor.h",
+        "include/perfetto/ext/base/optional.h",
+        "include/perfetto/ext/base/paged_memory.h",
+        "include/perfetto/ext/base/pipe.h",
+        "include/perfetto/ext/base/scoped_file.h",
+        "include/perfetto/ext/base/small_set.h",
+        "include/perfetto/ext/base/string_splitter.h",
+        "include/perfetto/ext/base/string_utils.h",
+        "include/perfetto/ext/base/string_view.h",
+        "include/perfetto/ext/base/string_writer.h",
+        "include/perfetto/ext/base/temp_file.h",
+        "include/perfetto/ext/base/thread_annotations.h",
+        "include/perfetto/ext/base/thread_checker.h",
+        "include/perfetto/ext/base/thread_task_runner.h",
+        "include/perfetto/ext/base/thread_utils.h",
+        "include/perfetto/ext/base/time.h",
+        "include/perfetto/ext/base/unix_socket.h",
+        "include/perfetto/ext/base/unix_task_runner.h",
+        "include/perfetto/ext/base/utils.h",
+        "include/perfetto/ext/base/watchdog.h",
+        "include/perfetto/ext/base/watchdog_noop.h",
+        "include/perfetto/ext/base/watchdog_posix.h",
+        "include/perfetto/ext/base/weak_ptr.h",
+        "include/perfetto/ext/traced/sys_stats_counters.h",
         "include/perfetto/protozero/contiguous_memory_range.h",
         "include/perfetto/protozero/field.h",
         "include/perfetto/protozero/message.h",
@@ -329,12 +317,11 @@
         "include/perfetto/protozero/scattered_stream_null_delegate.h",
         "include/perfetto/protozero/scattered_stream_writer.h",
         "include/perfetto/trace_processor/basic_types.h",
+        "include/perfetto/trace_processor/status.h",
         "include/perfetto/trace_processor/trace_processor.h",
-        "include/perfetto/traced/sys_stats_counters.h",
     ],
     deps = [
         "//third_party/perfetto:gen_merged_sql_metrics",
-        "//third_party/perfetto/google:gtest_prod",
         "//third_party/perfetto/google:jsoncpp",
         "//third_party/perfetto/protos:common_zero_cc_proto",
         "//third_party/perfetto/protos:config_zero_cc_proto",
@@ -362,39 +349,40 @@
     name = "trace_processor_shell",
     srcs = [
         "include/perfetto/base/build_config.h",
-        "include/perfetto/base/circular_queue.h",
-        "include/perfetto/base/container_annotations.h",
-        "include/perfetto/base/event.h",
+        "include/perfetto/base/compiler.h",
         "include/perfetto/base/export.h",
-        "include/perfetto/base/file_utils.h",
-        "include/perfetto/base/gtest_prod_util.h",
-        "include/perfetto/base/hash.h",
         "include/perfetto/base/logging.h",
-        "include/perfetto/base/metatrace.h",
-        "include/perfetto/base/no_destructor.h",
-        "include/perfetto/base/optional.h",
-        "include/perfetto/base/paged_memory.h",
-        "include/perfetto/base/pipe.h",
-        "include/perfetto/base/scoped_file.h",
-        "include/perfetto/base/small_set.h",
-        "include/perfetto/base/string_splitter.h",
-        "include/perfetto/base/string_utils.h",
-        "include/perfetto/base/string_view.h",
-        "include/perfetto/base/string_writer.h",
         "include/perfetto/base/task_runner.h",
-        "include/perfetto/base/temp_file.h",
-        "include/perfetto/base/thread_annotations.h",
-        "include/perfetto/base/thread_checker.h",
-        "include/perfetto/base/thread_task_runner.h",
-        "include/perfetto/base/thread_utils.h",
-        "include/perfetto/base/time.h",
-        "include/perfetto/base/unix_socket.h",
-        "include/perfetto/base/unix_task_runner.h",
-        "include/perfetto/base/utils.h",
-        "include/perfetto/base/watchdog.h",
-        "include/perfetto/base/watchdog_noop.h",
-        "include/perfetto/base/watchdog_posix.h",
-        "include/perfetto/base/weak_ptr.h",
+        "include/perfetto/ext/base/circular_queue.h",
+        "include/perfetto/ext/base/container_annotations.h",
+        "include/perfetto/ext/base/event.h",
+        "include/perfetto/ext/base/file_utils.h",
+        "include/perfetto/ext/base/hash.h",
+        "include/perfetto/ext/base/metatrace.h",
+        "include/perfetto/ext/base/no_destructor.h",
+        "include/perfetto/ext/base/optional.h",
+        "include/perfetto/ext/base/paged_memory.h",
+        "include/perfetto/ext/base/pipe.h",
+        "include/perfetto/ext/base/scoped_file.h",
+        "include/perfetto/ext/base/small_set.h",
+        "include/perfetto/ext/base/string_splitter.h",
+        "include/perfetto/ext/base/string_utils.h",
+        "include/perfetto/ext/base/string_view.h",
+        "include/perfetto/ext/base/string_writer.h",
+        "include/perfetto/ext/base/temp_file.h",
+        "include/perfetto/ext/base/thread_annotations.h",
+        "include/perfetto/ext/base/thread_checker.h",
+        "include/perfetto/ext/base/thread_task_runner.h",
+        "include/perfetto/ext/base/thread_utils.h",
+        "include/perfetto/ext/base/time.h",
+        "include/perfetto/ext/base/unix_socket.h",
+        "include/perfetto/ext/base/unix_task_runner.h",
+        "include/perfetto/ext/base/utils.h",
+        "include/perfetto/ext/base/watchdog.h",
+        "include/perfetto/ext/base/watchdog_noop.h",
+        "include/perfetto/ext/base/watchdog_posix.h",
+        "include/perfetto/ext/base/weak_ptr.h",
+        "include/perfetto/ext/traced/sys_stats_counters.h",
         "include/perfetto/protozero/contiguous_memory_range.h",
         "include/perfetto/protozero/field.h",
         "include/perfetto/protozero/message.h",
@@ -405,8 +393,8 @@
         "include/perfetto/protozero/scattered_stream_null_delegate.h",
         "include/perfetto/protozero/scattered_stream_writer.h",
         "include/perfetto/trace_processor/basic_types.h",
+        "include/perfetto/trace_processor/status.h",
         "include/perfetto/trace_processor/trace_processor.h",
-        "include/perfetto/traced/sys_stats_counters.h",
         "src/base/event.cc",
         "src/base/file_utils.cc",
         "src/base/metatrace.cc",
@@ -513,6 +501,7 @@
         "src/trace_processor/span_join_operator_table.h",
         "src/trace_processor/sql_stats_table.cc",
         "src/trace_processor/sql_stats_table.h",
+        "src/trace_processor/sqlite.h",
         "src/trace_processor/sqlite3_str_split.cc",
         "src/trace_processor/sqlite3_str_split.h",
         "src/trace_processor/sqlite_utils.h",
@@ -535,6 +524,9 @@
         "src/trace_processor/syscalls_aarch64.h",
         "src/trace_processor/syscalls_armeabi.h",
         "src/trace_processor/syscalls_x86_64.h",
+        "src/trace_processor/systrace_trace_parser.cc",
+        "src/trace_processor/systrace_trace_parser.h",
+        "src/trace_processor/systrace_utils.h",
         "src/trace_processor/table.cc",
         "src/trace_processor/table.h",
         "src/trace_processor/thread_table.cc",
@@ -558,7 +550,6 @@
     ],
     deps = [
         "//third_party/perfetto:gen_merged_sql_metrics",
-        "//third_party/perfetto/google:gtest_prod",
         "//third_party/perfetto/google:jsoncpp",
         "//third_party/perfetto/google:linenoise",
         "//third_party/perfetto/google:perfetto_version",
@@ -590,39 +581,40 @@
     name = "trace_to_text",
     srcs = [
         "include/perfetto/base/build_config.h",
-        "include/perfetto/base/circular_queue.h",
-        "include/perfetto/base/container_annotations.h",
-        "include/perfetto/base/event.h",
+        "include/perfetto/base/compiler.h",
         "include/perfetto/base/export.h",
-        "include/perfetto/base/file_utils.h",
-        "include/perfetto/base/gtest_prod_util.h",
-        "include/perfetto/base/hash.h",
         "include/perfetto/base/logging.h",
-        "include/perfetto/base/metatrace.h",
-        "include/perfetto/base/no_destructor.h",
-        "include/perfetto/base/optional.h",
-        "include/perfetto/base/paged_memory.h",
-        "include/perfetto/base/pipe.h",
-        "include/perfetto/base/scoped_file.h",
-        "include/perfetto/base/small_set.h",
-        "include/perfetto/base/string_splitter.h",
-        "include/perfetto/base/string_utils.h",
-        "include/perfetto/base/string_view.h",
-        "include/perfetto/base/string_writer.h",
         "include/perfetto/base/task_runner.h",
-        "include/perfetto/base/temp_file.h",
-        "include/perfetto/base/thread_annotations.h",
-        "include/perfetto/base/thread_checker.h",
-        "include/perfetto/base/thread_task_runner.h",
-        "include/perfetto/base/thread_utils.h",
-        "include/perfetto/base/time.h",
-        "include/perfetto/base/unix_socket.h",
-        "include/perfetto/base/unix_task_runner.h",
-        "include/perfetto/base/utils.h",
-        "include/perfetto/base/watchdog.h",
-        "include/perfetto/base/watchdog_noop.h",
-        "include/perfetto/base/watchdog_posix.h",
-        "include/perfetto/base/weak_ptr.h",
+        "include/perfetto/ext/base/circular_queue.h",
+        "include/perfetto/ext/base/container_annotations.h",
+        "include/perfetto/ext/base/event.h",
+        "include/perfetto/ext/base/file_utils.h",
+        "include/perfetto/ext/base/hash.h",
+        "include/perfetto/ext/base/metatrace.h",
+        "include/perfetto/ext/base/no_destructor.h",
+        "include/perfetto/ext/base/optional.h",
+        "include/perfetto/ext/base/paged_memory.h",
+        "include/perfetto/ext/base/pipe.h",
+        "include/perfetto/ext/base/scoped_file.h",
+        "include/perfetto/ext/base/small_set.h",
+        "include/perfetto/ext/base/string_splitter.h",
+        "include/perfetto/ext/base/string_utils.h",
+        "include/perfetto/ext/base/string_view.h",
+        "include/perfetto/ext/base/string_writer.h",
+        "include/perfetto/ext/base/temp_file.h",
+        "include/perfetto/ext/base/thread_annotations.h",
+        "include/perfetto/ext/base/thread_checker.h",
+        "include/perfetto/ext/base/thread_task_runner.h",
+        "include/perfetto/ext/base/thread_utils.h",
+        "include/perfetto/ext/base/time.h",
+        "include/perfetto/ext/base/unix_socket.h",
+        "include/perfetto/ext/base/unix_task_runner.h",
+        "include/perfetto/ext/base/utils.h",
+        "include/perfetto/ext/base/watchdog.h",
+        "include/perfetto/ext/base/watchdog_noop.h",
+        "include/perfetto/ext/base/watchdog_posix.h",
+        "include/perfetto/ext/base/weak_ptr.h",
+        "include/perfetto/ext/traced/sys_stats_counters.h",
         "include/perfetto/protozero/contiguous_memory_range.h",
         "include/perfetto/protozero/field.h",
         "include/perfetto/protozero/message.h",
@@ -633,8 +625,8 @@
         "include/perfetto/protozero/scattered_stream_null_delegate.h",
         "include/perfetto/protozero/scattered_stream_writer.h",
         "include/perfetto/trace_processor/basic_types.h",
+        "include/perfetto/trace_processor/status.h",
         "include/perfetto/trace_processor/trace_processor.h",
-        "include/perfetto/traced/sys_stats_counters.h",
         "src/base/event.cc",
         "src/base/file_utils.cc",
         "src/base/metatrace.cc",
@@ -741,6 +733,7 @@
         "src/trace_processor/span_join_operator_table.h",
         "src/trace_processor/sql_stats_table.cc",
         "src/trace_processor/sql_stats_table.h",
+        "src/trace_processor/sqlite.h",
         "src/trace_processor/sqlite3_str_split.cc",
         "src/trace_processor/sqlite3_str_split.h",
         "src/trace_processor/sqlite_utils.h",
@@ -763,6 +756,9 @@
         "src/trace_processor/syscalls_aarch64.h",
         "src/trace_processor/syscalls_armeabi.h",
         "src/trace_processor/syscalls_x86_64.h",
+        "src/trace_processor/systrace_trace_parser.cc",
+        "src/trace_processor/systrace_trace_parser.h",
+        "src/trace_processor/systrace_utils.h",
         "src/trace_processor/table.cc",
         "src/trace_processor/table.h",
         "src/trace_processor/thread_table.cc",
@@ -796,7 +792,6 @@
     ],
     deps = [
         "//third_party/perfetto:gen_merged_sql_metrics",
-        "//third_party/perfetto/google:gtest_prod",
         "//third_party/perfetto/google:jsoncpp",
         "//third_party/perfetto/google:perfetto_version",
         "//third_party/perfetto/protos:common_cc_proto",
diff --git a/BUILD.gn b/BUILD.gn
index 1173b01..54b73b6 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -58,7 +58,7 @@
       "protos/perfetto/config:merged_config",  # For syntax-checking the proto.
       "protos/perfetto/trace:merged_trace",  # For syntax-checking the proto.
       "src/ipc/protoc_plugin:ipc_plugin($host_toolchain)",
-      "src/public",
+      "src/tracing:client_api",
       "tools:protoc_helper",
     ]
     if (perfetto_build_standalone) {
@@ -72,6 +72,10 @@
         "tools/proto_to_cpp",
         "tools/trace_to_text",
         "tools/trace_to_text:trace_to_text_lite_host($host_toolchain)",
+
+        # The diff testing framework depends on these descriptors.
+        "protos/perfetto/metrics:descriptor",
+        "protos/perfetto/trace:descriptor",
       ]
       if (is_linux || is_android) {
         deps += [ "tools/skippy" ]
@@ -83,6 +87,13 @@
       }
     }
   }
+
+  # TODO(khokhlov): Remove this once the chrome dep is added. This is a
+  # temporary target to make sure that we don't regress trace processor support
+  # for the Windows build.
+  if (build_with_chromium) {
+    deps += [ "src/trace_processor:lib" ]
+  }
 }
 
 # TODO(primiano): temporary workaround to:
@@ -152,8 +163,8 @@
     deps = [
       "gn:default_deps",
       "gn:gtest_main",
-      "src/public:integrationtests",
       "src/traced/probes/ftrace:integrationtests",
+      "src/tracing:client_api_integrationtests",
       "test:end_to_end_integrationtests",
     ]
     if (perfetto_build_standalone && !is_android) {
@@ -177,7 +188,7 @@
       "gn:default_deps",
       "src/traced/probes",
       "src/traced/service",
-      "src/tracing:api",
+      "src/tracing:consumer_api_deprecated",
     ]
   }
 
@@ -188,7 +199,7 @@
     deps = [
       ":libperfetto",
       "gn:default_deps",
-      "include/perfetto/traced",
+      "include/perfetto/ext/traced",
     ]
     sources = [
       "src/traced/service/main.cc",
@@ -201,7 +212,7 @@
     deps = [
       ":libperfetto",
       "gn:default_deps",
-      "include/perfetto/traced",
+      "include/perfetto/ext/traced",
     ]
     sources = [
       "src/traced/probes/main.cc",
@@ -277,7 +288,7 @@
     configs -= [ "//build/config/compiler:chromium_code" ]
     configs += [ "//build/config/compiler:no_chromium_code" ]
     public_deps = [
-      "include/perfetto/tracing/core",
+      "include/perfetto/ext/tracing/core",
       "protos/perfetto/trace:zero",
       "protos/perfetto/trace/chrome:zero",
       "protos/perfetto/trace/interned_data:zero",
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index fa136fc..3c30708 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -15,134 +15,154 @@
 import itertools
 import subprocess
 
+
 def CheckChange(input, output):
-    # There apparently is no way to wrap strings in blueprints, so ignore long
-    # lines in them.
-    long_line_sources = lambda x: input.FilterSourceFile(
-            x, white_list=".*",
-            black_list=['Android[.]bp', '.*[.]json$', '.*[.]sql$', '.*[.]out$',
-                        'test/trace_processor/index$', 'BUILD$', 'protos/BUILD$'])
-    results = []
-    results += input.canned_checks.CheckDoNotSubmit(input, output)
-    results += input.canned_checks.CheckChangeHasNoTabs(input, output)
-    results += input.canned_checks.CheckLongLines(
-            input, output, 80, source_file_filter=long_line_sources)
-    results += input.canned_checks.CheckPatchFormatted(
-            input, output, check_js=True)
-    results += input.canned_checks.CheckGNFormatted(input, output)
-    results += CheckIncludeGuards(input, output)
-    results += CheckBuild(input, output)
-    results += CheckAndroidBlueprint(input, output)
-    results += CheckBinaryDescriptors(input, output)
-    results += CheckMergedTraceConfigProto(input, output)
-    results += CheckWhitelist(input, output)
-    return results
+  # There apparently is no way to wrap strings in blueprints, so ignore long
+  # lines in them.
+  def long_line_sources(x): return input.FilterSourceFile(
+      x, white_list=".*",
+      black_list=['Android[.]bp', '.*[.]json$', '.*[.]sql$', '.*[.]out$',
+                  'test/trace_processor/index$', 'BUILD$', 'protos/BUILD$'])
+  results = []
+  results += input.canned_checks.CheckDoNotSubmit(input, output)
+  results += input.canned_checks.CheckChangeHasNoTabs(input, output)
+  results += input.canned_checks.CheckLongLines(
+      input, output, 80, source_file_filter=long_line_sources)
+  results += input.canned_checks.CheckPatchFormatted(
+      input, output, check_js=True)
+  results += input.canned_checks.CheckGNFormatted(input, output)
+  results += CheckIncludeGuards(input, output)
+  results += CheckIncludeViolations(input, output)
+  results += CheckBuild(input, output)
+  results += CheckAndroidBlueprint(input, output)
+  results += CheckBinaryDescriptors(input, output)
+  results += CheckMergedTraceConfigProto(input, output)
+  results += CheckWhitelist(input, output)
+  return results
 
 
 def CheckChangeOnUpload(input_api, output_api):
-    return CheckChange(input_api, output_api)
+  return CheckChange(input_api, output_api)
 
 
 def CheckChangeOnCommit(input_api, output_api):
-    return CheckChange(input_api, output_api)
+  return CheckChange(input_api, output_api)
 
 
 def CheckBuild(input_api, output_api):
-    # If no GN files were modified, bail out.
-    def build_file_filter(x): return input_api.FilterSourceFile(
-        x,
-        white_list=('.*BUILD[.]gn$', '.*[.]gni$', 'tools/gen_bazel'))
-    if not input_api.AffectedSourceFiles(build_file_filter):
-        return []
-
-    with open('BUILD') as f:
-        current_build = f.read()
-
-    new_build = subprocess.check_output(
-        ['tools/gen_bazel', '--output', '/dev/stdout', '--output-proto', '/dev/null'])
-
-    with open('protos/BUILD') as f:
-        current_proto_build = f.read()
-
-    new_proto_build = subprocess.check_output(
-        ['tools/gen_bazel', '--output', '/dev/null', '--output-proto', '/dev/stdout'])
-
-    if current_build != new_build or current_proto_build != new_proto_build:
-        return [
-            output_api.PresubmitError(
-                'BUILD and/or protos/BUILD is out of date. Please run tools/gen_bazel '
-                'to update it.')
-        ]
+  # If no GN files were modified, bail out.
+  def build_file_filter(x): return input_api.FilterSourceFile(
+      x,
+      white_list=('.*BUILD[.]gn$', '.*[.]gni$', 'tools/gen_bazel'))
+  if not input_api.AffectedSourceFiles(build_file_filter):
     return []
 
+  with open('BUILD') as f:
+    current_build = f.read()
+
+  new_build = subprocess.check_output(
+      ['tools/gen_bazel', '--output', '/dev/stdout', '--output-proto',
+       '/dev/null'])
+
+  with open('protos/BUILD') as f:
+    current_proto_build = f.read()
+
+  new_proto_build = subprocess.check_output(
+      ['tools/gen_bazel', '--output', '/dev/null', '--output-proto',
+       '/dev/stdout'])
+
+  if current_build != new_build or current_proto_build != new_proto_build:
+    return [
+        output_api.PresubmitError(
+            'BUILD and/or protos/BUILD is out of date. ' +
+            'Please run tools/gen_bazel to update it.')
+    ]
+  return []
+
 
 def CheckAndroidBlueprint(input_api, output_api):
-    # If no GN files were modified, bail out.
-    build_file_filter = lambda x: input_api.FilterSourceFile(
-          x,
-          white_list=('.*BUILD[.]gn$', '.*[.]gni$', 'tools/gen_android_bp'))
-    if not input_api.AffectedSourceFiles(build_file_filter):
-        return []
-
-    with open('Android.bp') as f:
-        current_blueprint = f.read()
-
-    new_blueprint = subprocess.check_output(
-        ['tools/gen_android_bp', '--output', '/dev/stdout'])
-
-    if current_blueprint != new_blueprint:
-        return [
-            output_api.PresubmitError(
-                'Android.bp is out of date. Please run tools/gen_android_bp '
-                'to update it.')
-        ]
+  # If no GN files were modified, bail out.
+  def build_file_filter(x): return input_api.FilterSourceFile(
+      x,
+      white_list=('.*BUILD[.]gn$', '.*[.]gni$', 'tools/gen_android_bp'))
+  if not input_api.AffectedSourceFiles(build_file_filter):
     return []
 
+  with open('Android.bp') as f:
+    current_blueprint = f.read()
+
+  new_blueprint = subprocess.check_output(
+      ['tools/gen_android_bp', '--output', '/dev/stdout'])
+
+  if current_blueprint != new_blueprint:
+    return [
+        output_api.PresubmitError(
+            'Android.bp is out of date. Please run tools/gen_android_bp '
+            'to update it.')
+    ]
+  return []
+
 
 def CheckIncludeGuards(input_api, output_api):
-    tool = 'tools/fix_include_guards'
-    file_filter = lambda x: input_api.FilterSourceFile(
-          x,
-          white_list=('.*[.]cc$', '.*[.]h$', tool))
-    if not input_api.AffectedSourceFiles(file_filter):
-        return []
-    if subprocess.call([tool, '--check-only']):
-        return [
-            output_api.PresubmitError(
-                'Please run ' + tool + ' to fix include guards.')
-        ]
+  tool = 'tools/fix_include_guards'
+
+  def file_filter(x): return input_api.FilterSourceFile(
+      x,
+      white_list=['.*[.]cc$', '.*[.]h$', tool])
+  if not input_api.AffectedSourceFiles(file_filter):
     return []
+  if subprocess.call([tool, '--check-only']):
+    return [
+        output_api.PresubmitError(
+            'Please run ' + tool + ' to fix include guards.')
+    ]
+  return []
+
+
+def CheckIncludeViolations(input_api, output_api):
+  tool = 'tools/check_include_violations'
+
+  def file_filter(x): return input_api.FilterSourceFile(
+      x,
+      white_list=['include/.*[.]h$', tool])
+  if not input_api.AffectedSourceFiles(file_filter):
+    return []
+  if subprocess.call([tool]):
+    return [output_api.PresubmitError(tool + ' failed.')]
+  return []
 
 
 def CheckBinaryDescriptors(input_api, output_api):
-    tool = 'tools/gen_binary_descriptors'
-    file_filter = lambda x: input_api.FilterSourceFile(
-          x,
-          white_list=('protos/perfetto/.*[.]proto$', '.*[.]h', tool))
-    if not input_api.AffectedSourceFiles(file_filter):
-        return []
-    if subprocess.call([tool, '--check-only']):
-        return [
-            output_api.PresubmitError(
-                'Please run ' + tool + ' to update binary descriptors.')
-        ]
+  tool = 'tools/gen_binary_descriptors'
+
+  def file_filter(x): return input_api.FilterSourceFile(
+      x,
+      white_list=['protos/perfetto/.*[.]proto$', '.*[.]h', tool])
+  if not input_api.AffectedSourceFiles(file_filter):
     return []
+  if subprocess.call([tool, '--check-only']):
+    return [
+        output_api.PresubmitError(
+            'Please run ' + tool + ' to update binary descriptors.')
+    ]
+  return []
 
 
 def CheckMergedTraceConfigProto(input_api, output_api):
-    tool = 'tools/gen_merged_protos'
-    build_file_filter = lambda x: input_api.FilterSourceFile(
-          x,
-          white_list=('protos/perfetto/.*[.]proto$', tool))
-    if not input_api.AffectedSourceFiles(build_file_filter):
-        return []
-    if subprocess.call([tool, '--check-only']):
-        return [
-            output_api.PresubmitError(
-                'perfetto_config.proto or perfetto_trace.proto is out of ' +
-                'date. Please run ' + tool + ' to update it.')
-        ]
+  tool = 'tools/gen_merged_protos'
+
+  def build_file_filter(x): return input_api.FilterSourceFile(
+      x,
+      white_list=['protos/perfetto/.*[.]proto$', tool])
+  if not input_api.AffectedSourceFiles(build_file_filter):
     return []
+  if subprocess.call([tool, '--check-only']):
+    return [
+        output_api.PresubmitError(
+            'perfetto_config.proto or perfetto_trace.proto is out of ' +
+            'date. Please run ' + tool + ' to update it.')
+    ]
+  return []
 
 
 # Prevent removing or changing lines in event_whitelist.
@@ -154,9 +174,9 @@
             and new_line != old_line for old_line, new_line
            in itertools.izip(f.OldContents(), f.NewContents())):
       return [
-        output_api.PresubmitError(
-            'event_whitelist only has two supported changes: '
-            'appending a new line, and replacing a line with removed.'
-        )
+          output_api.PresubmitError(
+              'event_whitelist only has two supported changes: '
+              'appending a new line, and replacing a line with removed.'
+          )
       ]
   return []
diff --git a/docs/index.html b/docs/index.html
index 05c1ffd..4db856e 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -50,6 +50,8 @@
   <script src="/static/docsify-themeable.min.js"></script>
   <script src="/static/docsify-copy-code.min.js"></script>
   <script src="/static/prism-bash.min.js"></script>
+  <script src="/static/prism-protobuf.min.js"></script>
+  <script src="/static/prism-sql.min.js"></script>
 </body>
 
-</html>
\ No newline at end of file
+</html>
diff --git a/docs/metrics.md b/docs/metrics.md
new file mode 100644
index 0000000..6ff137b
--- /dev/null
+++ b/docs/metrics.md
@@ -0,0 +1,356 @@
+Writing Perfetto-based metrics
+=============
+
+Contents
+---------
+1. Background
+2. The Perfetto Metrics Platform
+3. Writing your first metric - step by step
+4. Breaking down and composing metrics (TBD)
+5. Adding a new metric or editing an existing metric (TBD)
+6. Running a metric over a set of traces (TBD)
+7. Metrics platform as an API (TBD)
+
+Background
+---------
+Using traces allows computation of reproducible metrics in a wide range
+of situations; examples include benchmarks, lab tests and on
+large corpuses of traces. In these cases, these metrics allow for direct
+root-causing when a regression is detected.
+
+The Perfetto Metrics Platform
+----------
+The metrics platform (powered by the
+[trace processor](trace-processor.md)) allows metrics authors to write
+SQL queries to generate metrics in the form of protobuf messages or proto text.
+
+We strongly encourage all metrics derived on Perfetto traces to be added to the
+Perfetto repo unless there is a clear usecase (e.g. confidentiality) why these
+metrics should not be publicly available.
+
+In return for upstreaming metrics, authors will have first class support for
+running metrics locally and the confidence that their metrics will remain stable
+as trace processor is developed.
+
+For example, generating the full (human readable) set of Android memory
+metrics on a trace is as simple as:
+```shell
+trace_processor_shell --run-metrics android_mem <trace>
+```
+
+As well as scaling upwards while developing from running on a single trace
+locally to running on a large set of traces, the reverse is also very useful.
+When an anomaly is observed in the metrics of a lab benchmark, you can simply
+download a representative trace and run the same metric locally in shell.
+
+Since the same code is running locally and remotely, you can be confident in
+reproducing the issue and use the power of trace processor and/or the Perfetto
+UI to identify the problem!
+
+Writing your first metric: A Step by Step Guide
+----------
+To begin, all you need is some familiarity with SQL and you're ready to start!
+
+Suppose that want a write a metric which computes the CPU time for every process
+in the trace and lists the names of the top 5 processes (by CPU time)
+and the number of threads which were associated with those processes over its
+lifetime.
+
+*Note:*
+* If you want to jump straight to the code, at the end of this guide, your
+workspace should look something like this [GitHub gist](https://gist.github.com/tilal6991/c221cf0cae17e298dfa82b118edf9080). See Step 0 and 4
+below as to where to get trace processor and how to run it to output the
+metrics.
+
+### Step 0
+As a setup step, you'll want to create a folder to act as a scratch workspace;
+this folder will be referred to using the env variable `$WORKSPACE` in Step 4.
+
+The other thing you'll need is trace processor shell. You can download this
+[here](https://get.perfetto.dev/trace_processor) or you can build from source
+using the instructions [here](trace-processor.md). Whichever method is
+chosen, $TRACE_PROCESSOR env variable will be used to refer to the location of
+the binary in Step 4.
+
+### Step 1
+As all metrics in the metrics platform are defined using protos, the metric
+needs to be strctured as a proto. For this metric, there needs to be some notion
+of a process name along with its CPU time and number of threads.
+
+Starting off, in a file named `top_five_processes.proto` in our workspace,
+let's create a basic proto message called ProcessInfo with those three fields:
+```protobuf
+message ProcessInfo {
+  optional string process_name = 1;
+  optional uint64 cpu_time_ms = 2;
+  optional uint32 num_threads = 3;
+}
+```
+
+Next up is a wrapping message which will hold the repeated field containing
+the top 5 processes.
+```protobuf
+message TopProcesses {
+  repeated ProcessInfo process_info = 1;
+}
+```
+
+Finally, let's define an extension to the root proto for all metrics -
+the
+[TraceMetrics](https://android.googlesource.com/platform/external/perfetto/+/HEAD/protos/perfetto/metrics/metrics.proto#39)
+proto).
+```protobuf
+extend TraceMetrics {
+  optional TopProcesses top_processes = 450;
+}
+```
+Adding this extension field allows trace processor to link the newly defined
+metric to the `TraceMetrics` proto.
+
+*Notes:*
+* The field ids 450-500 are reserved for local development so you can use
+any of them as the field id for the extension field.
+* The choice of field name here is important as the SQL file and the final
+table generated in SQL will be based on this name.
+
+Putting everything together, along with some boilerplate header information
+gives:
+```protobuf
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+
+package perfetto.protos;
+
+import "perfetto/metrics/metrics.proto";
+
+message ProcessInfo {
+  optional string process_name = 1;
+  optional int64 cpu_time_ms = 2;
+  optional uint32 num_threads = 3;
+}
+
+message TopProcesses {
+  repeated ProcessInfo process_info = 1;
+}
+
+extend TraceMetrics {
+  optional TopProcesses top_processes = 450;
+}
+```
+
+### Step 2
+Let's write the SQL to generate the table of the top 5 processes ordered
+by the sum of the CPU time they ran for and the number of threads which were
+associated with the process. The following SQL should be to a file called
+`top_five_processes.sql` in your workspace:
+```sql
+CREATE VIEW top_five_processes_by_cpu
+SELECT
+  process.name as process_name,
+  CAST(SUM(sched.dur) / 1e6 as INT64) as cpu_time_ms,
+  COUNT(DISTINCT utid) as num_threads
+FROM sched
+INNER JOIN thread USING(utid)
+INNER JOIN process USING(upid)
+GROUP BY process.name
+ORDER BY cpu_time_ms DESC
+LIMIT 5;
+```
+Let's break this query down:
+1. The first table used is the `sched` table. This contains all the
+   scheduling data available in the trace. Each scheduling "slice" is associated
+   with a thread which is uniquely identified in Perfetto traces using its
+   `utid`. The two pieces of information which needed from the sched table
+   is the `dur` - short for duration, this is the amount of time the slice
+   lasted - and the `utid` which will be use to join with the thread table.
+2. The next table is the thread table. This gives us a lot of information which
+   are not particularily interested (including its thread name) but it does give
+   us the `upid`. Similar to `utid`, `upid` is the unique identifier for a
+   process in a Perfetto trace. In this case, `upid` will refer to the process
+   which hosts the thread given by `utid`.
+3. The final table is the process table. This gives the name of the
+   process associated with the orginal sched slice.
+4. With the process, thread and duration for each sched slice, all the slices
+   for a single processes are collected and their durations summed to get the
+   CPU time (dividing by 1e6 as sched's duration is in nanoseconds) and count
+   the number of distinct threads.
+5. Finally, we order by the cpu time and take limit to the top 5.
+
+### Step 3
+Now that the result of the metric has been expressed as an SQL table, it needs
+to be converted a proto. The metrics platform has built-in support for emitting
+protos using SQL functions; something which is used extensively in this step.
+
+Let's look at how it works for our table above.
+```sql
+CREATE VIEW top_processes_output AS
+SELECT TopProcesses(
+  'process_info', (
+    SELECT RepeatedField(
+      ProcessInfo(
+        'process_name', process_name,
+        'cpu_time_ms', cpu_time_ms,
+        'num_threads', num_threads
+      )
+    )
+    FROM top_five_processes_by_cpu
+  )
+);
+```
+Let's break this down again:
+1. Starting from the inner-most SELECT statement, there is
+   what looks like a function call to the ProcessInfo function; in face this is
+   no conincidence. For each proto that the metrics platform knows about,
+   it generates a SQL function with the same name as the proto. This function
+   takes key value pairs with the key as the name of the proto field to fill
+   and the value being the data to store in the field. The output is the proto
+   created by writing the fields described in the function! (*)
+
+   In this case, this function is called once for each row in
+   the `top_five_processes_by_cpu` table. The output of will be the fully filled
+   ProcessInfo proto.
+
+   The call to the `RepeatedField` function is the most interesting part and
+   also the most important. In technical terms, `RepeatedField` is an aggregate
+   function; practically, this means that it takes a full table of values and
+   generates a single array which contains all the values passed to it.
+
+   Therefore, the output of this whole SELECT statement is an array of
+   5 ProcessInfo protos.
+2. Next is creation of the `TopProcesses` proto. By now, the syntax should
+   already feel somewhat familiar; the proto builder funciton is called
+   to fill in the `process_info` field with the array of protos from the
+   inner funciton.
+
+   The output of this SELECT is a single `TopProcesses` proto containing
+   the ProcessInfos as a repeated field.
+3. Finally, the view is created. This view is specially named to allow the
+   metrics platform to query it to obtain the root proto for each metric (in
+   this case `TopProcesses`). See the note below as to the pattern behind
+   this view's name.
+
+(*) - side note: this is not strictly true. To type-check the protos, we
+also return some metadata about the type of the proto but this is unimportant
+for metric authors
+
+*Note:*
+* It is important that the views be named
+  {name of TraceMetrics extension field}_output. This is the pattern used
+  and expected by the metrics platform for all metrics.
+
+And that's all the SQL we need to write! Our final file should look like so:
+```sql
+CREATE VIEW top_five_processes_by_cpu AS
+SELECT
+  process.name as process_name,
+  CAST(SUM(sched.dur) / 1e6 as INT64) as cpu_time_ms,
+  COUNT(DISTINCT utid) as num_threads
+FROM sched
+INNER JOIN thread USING(utid)
+INNER JOIN process USING(upid)
+GROUP BY process.name
+ORDER BY cpu_time_ms DESC
+LIMIT 5;
+
+CREATE top_processes_output AS
+SELECT TopProcesses(
+  'process_info', (
+    SELECT RepeatedField(
+      ProcessInfo(
+        'process_name', process_name,
+        'cpu_time_ms', cpu_time_ms,
+        'num_threads', num_threads
+      )
+    )
+    FROM top_five_processes_by_cpu
+  )
+);
+```
+
+*Notes:*
+* The name of the SQL file should be the same as the name of TraceMetrics
+  extension field. This is to allow the metrics platform to associated the
+  proto extension field with the SQL which needs to be run to generate it.
+
+### Step 4
+This is the last step and where we get to see the results of our work!
+
+For this step, all we need is a one-liner, invoking trace processor
+shell (see Step 0 for downloading it):
+```shell
+$TRACE_PROCESSOR --run-metrics $WORKSPACE/top_five_processes.sql $TRACE 2> /dev/null
+```
+(If you want a example trace to test this on, see the Notes section below.)
+
+By passing the SQL file for the metric we want to compute, trace processor uses
+the name of this file to both find the proto and also to figure out the name
+of the output table for the proto and the name of the extension field for
+`TraceMetrics`; this is why it was important to choose the names of these other
+objects carefully.
+
+*Notes:*
+* If something doesn't work as intended, check that your workspace looks the
+  same as the contents of this [GitHub gist](https://gist.github.com/tilal6991/c221cf0cae17e298dfa82b118edf9080).
+* A good example trace for this metric is the Android example trace used by
+  the Perfetto UI found [here](https://storage.googleapis.com/perfetto-misc/example_android_trace_30s_1)
+* We're redirecting stderror to remove any noise from parsing the trace that
+  trace processor generates.
+
+If everything went successfully, you should see something like the following
+(this is specifically the output for the Android example trace linked above):
+```
+[perfetto.protos.top_five_processes] {
+  process_info {
+    process_name: "com.google.android.GoogleCamera"
+    cpu_time_ms: 15154
+    num_threads: 125
+  }
+  process_info {
+    process_name: "sugov:4"
+    cpu_time_ms: 6846
+    num_threads: 1
+  }
+  process_info {
+    process_name: "system_server"
+    cpu_time_ms: 6809
+    num_threads: 66
+  }
+  process_info {
+    process_name: "cds_ol_rx_threa"
+    cpu_time_ms: 6684
+    num_threads: 1
+  }
+  process_info {
+    process_name: "com.android.chrome"
+    cpu_time_ms: 5125
+    num_threads: 49
+  }
+}
+```
+
+### Conclusion
+That finishes the introductory guide to writing an metric using the Perfetto
+metrics platform! For more information about where to go next, the following
+links may be useful:
+* To understand what data is available to you and how the SQL tables are
+  structured see the [trace processor](trace-processor.md) docs.
+* To see how you can use the RUN_METRIC function to extract common snippets of
+  SQL and reuse them for writing bigger metrics, continue reading!
+* To see how you can add your own metrics to the platform or edit an existing
+  metric, continue reading!
+
+Breaking down and composing metrics
+----------
+Coming soon!
+
+Adding a new metric or editing an existing metric
+----------
+Coming soon!
+
+Running a metric over a set of traces
+----------
+Coming soon!
+
+Metrics platform as an API
+----------
+Coming soon!
diff --git a/docs/toc.md b/docs/toc.md
index 7fb68f2..ccb96b2 100644
--- a/docs/toc.md
+++ b/docs/toc.md
@@ -10,6 +10,7 @@
   * [Heap Profiling](heapprofd.md)
 * Trace analysis
   * [Trace processor](trace-processor.md)
+  * [Trace-based metrics](metrics.md)
   * [Trace conversion](traceconv.md)
 * Architectural docs
   * [Key concepts](architecture.md)
diff --git a/gn/BUILD.gn b/gn/BUILD.gn
index 7aa6d02..beb1ebb 100644
--- a/gn/BUILD.gn
+++ b/gn/BUILD.gn
@@ -26,17 +26,6 @@
   }
 }
 
-# Used by base/gtest_prod_util.h for the FRIEND_TEST_* macros. Note that other
-# production targets (i.e. testonly == false) should use base/gtest_prod_util.h
-# instead.
-group("gtest_prod_config") {
-  if (perfetto_build_standalone || perfetto_build_with_android) {
-    public_configs = [ "//buildtools:googletest_prod_config" ]
-  } else {
-    public_configs = [ ":gtest_config" ]
-  }
-}
-
 config("gtest_config") {
   if (perfetto_build_with_embedder) {
     include_dirs = [ "//testing/gtest/include" ]
@@ -88,6 +77,18 @@
   }
 }
 
+group("sqlite") {
+  if (perfetto_build_standalone || perfetto_build_with_android) {
+    public_deps = [
+      "//buildtools:sqlite",
+    ]
+  } else {
+    public_deps = [
+      "//third_party/sqlite:sqlite",
+    ]
+  }
+}
+
 # protoc compiler library, for building protoc plugins on the host.
 if (current_toolchain == host_toolchain) {
   group("protoc_lib_deps") {
diff --git a/gn/standalone/proto_library.gni b/gn/standalone/proto_library.gni
index d2ffe54..e496fd0 100644
--- a/gn/standalone/proto_library.gni
+++ b/gn/standalone/proto_library.gni
@@ -105,8 +105,12 @@
   }
 
   config_name = "${target_name}_config"
-  action_name = "${target_name}_gen"
-  source_set_name = target_name
+  if (generate_descriptor == "") {
+    action_name = "${target_name}_gen"
+    source_set_name = target_name
+  } else {
+    action_name = target_name
+  }
 
   config(config_name) {
     include_dirs = [ cc_out_dir ]
@@ -114,7 +118,9 @@
 
   # The XXX_gen action that generates the .pb.{cc,h} files.
   action(action_name) {
-    visibility = [ ":$source_set_name" ]
+    if (generate_descriptor == "") {
+      visibility = [ ":$source_set_name" ]
+    }
     script = "//gn/standalone/build_tool_wrapper.py"
     sources = proto_sources
     outputs = get_path_info(protogens, "abspath")
@@ -184,50 +190,52 @@
     if (defined(invoker.deps)) {
       deps += invoker.deps
     }
-  }  # action "${target_name}_gen"
+  }  # action(action_name)
 
   # The source_set that builds the generated .pb.cc files.
-  source_set(target_name) {
-    forward_variables_from(invoker,
-                           [
-                             "defines",
-                             "include_dirs",
-                             "public_configs",
-                             "testonly",
-                             "visibility",
-                           ])
+  if (generate_descriptor == "") {
+    source_set(source_set_name) {
+      forward_variables_from(invoker,
+                             [
+                               "defines",
+                               "include_dirs",
+                               "public_configs",
+                               "testonly",
+                               "visibility",
+                             ])
 
-    sources = get_target_outputs(":$action_name")
+      sources = get_target_outputs(":$action_name")
 
-    configs -= [ "//gn/standalone:extra_warnings" ]
-    if (defined(invoker.extra_configs)) {
-      configs += invoker.extra_configs
-    }
+      configs -= [ "//gn/standalone:extra_warnings" ]
+      if (defined(invoker.extra_configs)) {
+        configs += invoker.extra_configs
+      }
 
-    if (!defined(invoker.public_configs)) {
-      public_configs = []
-    }
+      if (!defined(invoker.public_configs)) {
+        public_configs = []
+      }
 
-    public_configs += [
-      "//buildtools:protobuf_gen_config",
-      ":$config_name",
-    ]
-
-    # Use protobuf_full only for tests.
-    if (defined(invoker.use_protobuf_full) &&
-        invoker.use_protobuf_full == true) {
-      deps = [
-        "//buildtools:protobuf_full",
+      public_configs += [
+        "//buildtools:protobuf_gen_config",
+        ":$config_name",
       ]
-    } else {
-      deps = [
-        "//buildtools:protobuf_lite",
-      ]
-    }
 
-    deps += [ ":$action_name" ]
-    if (defined(invoker.deps)) {
-      deps += invoker.deps
-    }
-  }  # source_set(target_name)
+      # Use protobuf_full only for tests.
+      if (defined(invoker.use_protobuf_full) &&
+          invoker.use_protobuf_full == true) {
+        deps = [
+          "//buildtools:protobuf_full",
+        ]
+      } else {
+        deps = [
+          "//buildtools:protobuf_lite",
+        ]
+      }
+
+      deps += [ ":$action_name" ]
+      if (defined(invoker.deps)) {
+        deps += invoker.deps
+      }
+    }  # source_set(source_set_name)
+  }
 }  # template
diff --git a/gn/standalone/toolchain/BUILD.gn b/gn/standalone/toolchain/BUILD.gn
index 1ffb94f..7b46500 100644
--- a/gn/standalone/toolchain/BUILD.gn
+++ b/gn/standalone/toolchain/BUILD.gn
@@ -98,10 +98,11 @@
     }
 
     tool("alink") {
+      rspfile = "{{output}}.rsp"
       if (is_mac && ar != "suppress_unused_ar_variable_warning") {
-        command = "rm -f {{output}} && libtool -static {{arflags}} -o {{output}} {{inputs}}"
+        rspfile_content = "{{inputs_newline}}"
+        command = "rm -f {{output}} && libtool -static {{arflags}} -o {{output}} -filelist $rspfile"
       } else {
-        rspfile = "{{output}}.rsp"
         rspfile_content = "{{inputs}}"
         command = "$ar rcsD {{output}} @$rspfile"
       }
diff --git a/include/perfetto/README.md b/include/perfetto/README.md
new file mode 100644
index 0000000..eace7f7
--- /dev/null
+++ b/include/perfetto/README.md
@@ -0,0 +1,111 @@
+# Perfetto public API surface
+
+**This API surface is not stable yet, don't depend on it**
+
+This folder contains the public perfetto API headers. This allows an app to
+inject trace events into perfetto with ~10 lines of code (see
+api_usage_example.cc).
+
+The ext/ subdirectory expose the (unstable) classes and types that are
+exposed to emvbedders that have exceptional requirements in terms of interposing
+their own custom IPC layer. To the day the only case is chromium. Nothing else
+should depend on ext/. Contact perfetto-dev@ if you think you need to 
+depend on an ext/ header.
+
+Headers in this folder must be hermetic. No ext/ perfetto header must be
+leaked from the includes.
+
+What is a client supposed to do to use tracing? See example below in this page.
+
+
+Source code layout: what goes where?
+------------------------------------
+
+**include/perfetto (this folder):**
+Embedders are allowed to access and depend on any folder of this but ext/.
+This contains classes to: (i) use tracing; (ii) extend the tracing internals
+(i.e. implement the Platform).
+
+Rules:
+- This directory should contain only .h files and no .cc files.
+- Corresponding .cc files go into `src/`.
+- .h files in here can depend only on `include/perfetto/` but not on 
+  `include/perfetto/ext/`,
+
+**include/perfetto/tracing/internal:**
+This directory contains headers that are required to implement the public-facing
+tracing API efficiently but that are not part of the API surface.
+In an ideal world there would be no need of these headers and everything would
+be handle via forward-declarations and PIMPL patterns. Unfortunately, however,
+PIMPL cannot be used for inline functions, where the implementation needs to be
+exposed in the public headers, which in turn need to depend on the memory layout
+of structs/classes.
+
+Rules:
+- All classes / types declared in this folder must be wrapped in the
+  ::perfetto::internal namespace.
+- Both public and internal .h headers must not pull other perfetto headers
+  from ext/.
+- .cc files instead can depend on other perfetto classes, as well as .h headers
+  located in src/.
+- Embedders must not depend on the perfetto::internal namespace.
+- Internal types cannot be used as input, output or return arguments of public
+  API functions.
+- Internal types cannot be directly exposed to virtual methods that are
+  intended to be called or overridden by the embedder (e.g. TracingBackend's
+  methods). For those the solution is to create a matching non-internal base
+  class with a static factory method.
+- We don't guarantee binary compatibility between versions (i.e. this client
+  library can only be statically linked) but we guarantee source-level
+  compatibility and ABI of the UNIX socket and shared memory buffers.
+
+
+Usage example
+-------------
+1. Call `perfetto::Tracing::Initialize(...)` once, when starting the app.
+  While doing so the app can chose the tracing model:
+  - Fully in-process: the service runs in a thread within the same process.
+  - System: connects to the traced system daemon via a UNIX socket. This allows
+    the app to join system-wide tracing sessions. This is available only on
+    Linux/Android/MacOS for now.
+  - Private dedicated process: similar to the in-process case, but the service
+    runs in a dedicated process rather than a thread. This is for performance,
+    stability and security isolation. Also, this is not implemented yet.
+  - Custom backend: this is for peculiar cases (mainly chromium) where the
+    embedder is multi-process but wants to use a different IPC mechanism. The
+    embedder needs to deal with the larger and clunkier set of perfetto APIs.
+    Reach out to the team before using this mode. It's very unlikely you need
+    this unless you are a project rolled into chromium.
+
+2. Define and register one or more data sources, like this:
+```cpp
+  #include "perfetto/tracing.h"
+
+  class MyDataSource : public perfetto::DataSource<MyDataSource> {
+    void OnSetup(SetupArgs) override {}
+    void OnStart(StartArgs) override {}
+    void OnStop(StopArgs) override {}
+  };
+  ...
+  PERFETTO_DEFINE_DATA_SOURCE_STATIC_MEMBERS(MyDataSource);
+  ...
+  perfetto::DataSourceDescriptor dsd;
+  dsd.set_name("my_data_source");
+  MyDataSource::Register(dsd);
+```
+
+3. Optionally define a new proto schema in `trace_packet.proto`
+
+4. Emit trace events
+```cpp
+  MyDataSource::Trace([](TraceContext ctx) {
+      auto trace_packet = ctx.NewTracePacket();
+      ctx.set_timestamp(...);
+      ctx.set_my_custom_proto(...);
+  });
+```
+
+The passed labmda will be called only if tracing is enabled and the data source
+was enabled in the trace config. It might be called multiple times, one for each
+active tracing session, in case of concurrent tracing sessions (or even within a
+single tracing session, if the data source is listed twice in the trace config).
diff --git a/include/perfetto/base/BUILD.gn b/include/perfetto/base/BUILD.gn
index 0540e0f..3a3e426 100644
--- a/include/perfetto/base/BUILD.gn
+++ b/include/perfetto/base/BUILD.gn
@@ -17,47 +17,9 @@
 source_set("base") {
   sources = [
     "build_config.h",
-    "circular_queue.h",
-    "container_annotations.h",
-    "event.h",
+    "compiler.h",
     "export.h",
-    "file_utils.h",
-    "gtest_prod_util.h",
-    "hash.h",
     "logging.h",
-    "metatrace.h",
-    "no_destructor.h",
-    "optional.h",
-    "paged_memory.h",
-    "pipe.h",
-    "scoped_file.h",
-    "small_set.h",
-    "string_splitter.h",
-    "string_utils.h",
-    "string_view.h",
-    "string_writer.h",
     "task_runner.h",
-    "temp_file.h",
-    "thread_annotations.h",
-    "thread_checker.h",
-    "thread_task_runner.h",
-    "thread_utils.h",
-    "time.h",
-    "unix_task_runner.h",
-    "utils.h",
-    "watchdog.h",
-    "watchdog_noop.h",
-    "watchdog_posix.h",
-    "weak_ptr.h",
   ]
-  if (is_android) {
-    sources += [ "android_task_runner.h" ]
-  }
-  if (perfetto_build_with_ipc_layer) {
-    sources += [ "unix_socket.h" ]
-  }
-  public_deps = [
-    "../../../gn:gtest_prod_config",
-  ]
-  public_configs = [ "../../../gn:asan_instrumentation" ]
 }
diff --git a/include/perfetto/base/compiler.h b/include/perfetto/base/compiler.h
new file mode 100644
index 0000000..a4cb6ec
--- /dev/null
+++ b/include/perfetto/base/compiler.h
@@ -0,0 +1,67 @@
+/*
+ * 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_BASE_COMPILER_H_
+#define INCLUDE_PERFETTO_BASE_COMPILER_H_
+
+#include <type_traits>
+
+#define PERFETTO_LIKELY(_x) __builtin_expect(!!(_x), 1)
+#define PERFETTO_UNLIKELY(_x) __builtin_expect(!!(_x), 0)
+
+#if defined(__GNUC__) || defined(__clang__)
+#define PERFETTO_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
+#else
+#define PERFETTO_WARN_UNUSED_RESULT
+#endif
+
+#if defined(__clang__)
+#define PERFETTO_ALWAYS_INLINE __attribute__((__always_inline__))
+#else
+// GCC is too pedantic and often fails with the error:
+// "always_inline function might not be inlinable"
+#define PERFETTO_ALWAYS_INLINE
+#endif
+
+// TODO(lalitm): is_trivially_constructible is currently not available
+// in some environments we build in. Reenable when that environment supports
+// this.
+#if defined(__GLIBCXX__)
+#define PERFETTO_IS_TRIVIALLY_CONSTRUCTIBLE(T) true
+#else
+#define PERFETTO_IS_TRIVIALLY_CONSTRUCTIBLE(T) \
+  std::is_trivially_constructible<T>::value
+#endif
+
+// TODO(lalitm): is_trivially_copyable is currently not available
+// in some environments we build in. Reenable when that environment supports
+// this.
+#if defined(__GLIBCXX__)
+#define PERFETTO_IS_TRIVIALLY_COPYABLE(T) true
+#else
+#define PERFETTO_IS_TRIVIALLY_COPYABLE(T) std::is_trivially_copyable<T>::value
+#endif
+
+namespace perfetto {
+namespace base {
+
+template <typename... T>
+inline void ignore_result(const T&...) {}
+
+}  // namespace base
+}  // namespace perfetto
+
+#endif  // INCLUDE_PERFETTO_BASE_COMPILER_H_
diff --git a/include/perfetto/base/gtest_prod_util.h b/include/perfetto/base/gtest_prod_util.h
deleted file mode 100644
index 09b5f82..0000000
--- a/include/perfetto/base/gtest_prod_util.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef INCLUDE_PERFETTO_BASE_GTEST_PROD_UTIL_H_
-#define INCLUDE_PERFETTO_BASE_GTEST_PROD_UTIL_H_
-
-#include "gtest/gtest_prod.h"  // nogncheck
-
-#endif  // INCLUDE_PERFETTO_BASE_GTEST_PROD_UTIL_H_
diff --git a/include/perfetto/base/logging.h b/include/perfetto/base/logging.h
index 131f589..09512d4 100644
--- a/include/perfetto/base/logging.h
+++ b/include/perfetto/base/logging.h
@@ -22,6 +22,9 @@
 #include <stdlib.h>
 #include <string.h>  // For strerror.
 
+#include "perfetto/base/build_config.h"
+#include "perfetto/base/compiler.h"
+
 #if defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON)
 #define PERFETTO_DCHECK_IS_ON() 0
 #else
@@ -34,9 +37,6 @@
 #define PERFETTO_DLOG_IS_ON() PERFETTO_FORCE_DLOG
 #endif
 
-#include "perfetto/base/build_config.h"
-#include "perfetto/base/utils.h"
-
 #if defined(PERFETTO_ANDROID_ASYNC_SAFE_LOG)
 #if !PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) || \
     !PERFETTO_BUILDFLAG(PERFETTO_ANDROID_BUILD)
diff --git a/include/perfetto/base/task_runner.h b/include/perfetto/base/task_runner.h
index 3b80bbb..cf60401 100644
--- a/include/perfetto/base/task_runner.h
+++ b/include/perfetto/base/task_runner.h
@@ -19,18 +19,11 @@
 
 #include <functional>
 
-#include "perfetto/base/build_config.h"
 #include "perfetto/base/export.h"
-#include "perfetto/base/utils.h"
-#include "perfetto/base/watchdog.h"
 
 namespace perfetto {
 namespace base {
 
-// Maximum time a single task can take in a TaskRunner before the
-// program suicides.
-constexpr int64_t kWatchdogMillis = 30000;  // 30s
-
 // A generic interface to allow the library clients to interleave the execution
 // of the tracing internals in their runtime environment.
 // The expectation is that all tasks, which are queued either via PostTask() or
@@ -73,13 +66,6 @@
   // thread/sequence. This can allow some callers to skip PostTask and instead
   // directly execute the code. Can be called from any thread.
   virtual bool RunsTasksOnCurrentThread() const = 0;
-
- protected:
-  static void RunTask(const std::function<void()>& task) {
-    Watchdog::Timer handle =
-        base::Watchdog::GetInstance()->CreateFatalTimer(kWatchdogMillis);
-    task();
-  }
 };
 
 }  // namespace base
diff --git a/include/perfetto/base/watchdog.h b/include/perfetto/base/watchdog.h
deleted file mode 100644
index 77fde51..0000000
--- a/include/perfetto/base/watchdog.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef INCLUDE_PERFETTO_BASE_WATCHDOG_H_
-#define INCLUDE_PERFETTO_BASE_WATCHDOG_H_
-
-#include "perfetto/base/build_config.h"
-
-#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) ||    \
-     PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)) && \
-    !PERFETTO_BUILDFLAG(PERFETTO_EMBEDDER_BUILD)
-#include "perfetto/base/watchdog_posix.h"
-#else
-#include "perfetto/base/watchdog_noop.h"
-#endif
-
-#endif  // INCLUDE_PERFETTO_BASE_WATCHDOG_H_
diff --git a/include/perfetto/ext/base/BUILD.gn b/include/perfetto/ext/base/BUILD.gn
new file mode 100644
index 0000000..64d50ae
--- /dev/null
+++ b/include/perfetto/ext/base/BUILD.gn
@@ -0,0 +1,58 @@
+# 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.
+
+import("../../../../gn/perfetto.gni")
+
+source_set("base") {
+  sources = [
+    "circular_queue.h",
+    "container_annotations.h",
+    "event.h",
+    "file_utils.h",
+    "hash.h",
+    "metatrace.h",
+    "no_destructor.h",
+    "optional.h",
+    "paged_memory.h",
+    "pipe.h",
+    "scoped_file.h",
+    "small_set.h",
+    "string_splitter.h",
+    "string_utils.h",
+    "string_view.h",
+    "string_writer.h",
+    "temp_file.h",
+    "thread_annotations.h",
+    "thread_checker.h",
+    "thread_task_runner.h",
+    "thread_utils.h",
+    "time.h",
+    "unix_task_runner.h",
+    "utils.h",
+    "watchdog.h",
+    "watchdog_noop.h",
+    "watchdog_posix.h",
+    "weak_ptr.h",
+  ]
+  if (is_android) {
+    sources += [ "android_task_runner.h" ]
+  }
+  if (perfetto_build_with_ipc_layer) {
+    sources += [ "unix_socket.h" ]
+  }
+  public_configs = [ "../../../../gn:asan_instrumentation" ]
+  public_deps = [
+    "../../base",
+  ]
+}
diff --git a/include/perfetto/base/android_task_runner.h b/include/perfetto/ext/base/android_task_runner.h
similarity index 89%
rename from include/perfetto/base/android_task_runner.h
rename to include/perfetto/ext/base/android_task_runner.h
index 5986997..85a5e40 100644
--- a/include/perfetto/base/android_task_runner.h
+++ b/include/perfetto/ext/base/android_task_runner.h
@@ -14,14 +14,14 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_BASE_ANDROID_TASK_RUNNER_H_
-#define INCLUDE_PERFETTO_BASE_ANDROID_TASK_RUNNER_H_
+#ifndef INCLUDE_PERFETTO_EXT_BASE_ANDROID_TASK_RUNNER_H_
+#define INCLUDE_PERFETTO_EXT_BASE_ANDROID_TASK_RUNNER_H_
 
-#include "perfetto/base/event.h"
-#include "perfetto/base/scoped_file.h"
 #include "perfetto/base/task_runner.h"
-#include "perfetto/base/thread_checker.h"
-#include "perfetto/base/time.h"
+#include "perfetto/ext/base/event.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/thread_checker.h"
+#include "perfetto/ext/base/time.h"
 
 #include <poll.h>
 #include <chrono>
@@ -90,4 +90,4 @@
 }  // namespace base
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_BASE_ANDROID_TASK_RUNNER_H_
+#endif  // INCLUDE_PERFETTO_EXT_BASE_ANDROID_TASK_RUNNER_H_
diff --git a/include/perfetto/base/circular_queue.h b/include/perfetto/ext/base/circular_queue.h
similarity index 97%
rename from include/perfetto/base/circular_queue.h
rename to include/perfetto/ext/base/circular_queue.h
index 6e8d917..72f14d1 100644
--- a/include/perfetto/base/circular_queue.h
+++ b/include/perfetto/ext/base/circular_queue.h
@@ -14,14 +14,14 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_BASE_CIRCULAR_QUEUE_H_
-#define INCLUDE_PERFETTO_BASE_CIRCULAR_QUEUE_H_
+#ifndef INCLUDE_PERFETTO_EXT_BASE_CIRCULAR_QUEUE_H_
+#define INCLUDE_PERFETTO_EXT_BASE_CIRCULAR_QUEUE_H_
 
 #include <stdint.h>
 #include <iterator>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/utils.h"
 
 namespace perfetto {
 namespace base {
@@ -298,4 +298,4 @@
 }  // namespace base
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_BASE_CIRCULAR_QUEUE_H_
+#endif  // INCLUDE_PERFETTO_EXT_BASE_CIRCULAR_QUEUE_H_
diff --git a/include/perfetto/base/container_annotations.h b/include/perfetto/ext/base/container_annotations.h
similarity index 93%
rename from include/perfetto/base/container_annotations.h
rename to include/perfetto/ext/base/container_annotations.h
index 615a0b3..183e6e0 100644
--- a/include/perfetto/base/container_annotations.h
+++ b/include/perfetto/ext/base/container_annotations.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_BASE_CONTAINER_ANNOTATIONS_H_
-#define INCLUDE_PERFETTO_BASE_CONTAINER_ANNOTATIONS_H_
+#ifndef INCLUDE_PERFETTO_EXT_BASE_CONTAINER_ANNOTATIONS_H_
+#define INCLUDE_PERFETTO_EXT_BASE_CONTAINER_ANNOTATIONS_H_
 
 #include "perfetto/base/build_config.h"
 
@@ -54,4 +54,4 @@
                                  new_capacity)
 #endif  // defined(ADDRESS_SANITIZER)
 
-#endif  // INCLUDE_PERFETTO_BASE_CONTAINER_ANNOTATIONS_H_
+#endif  // INCLUDE_PERFETTO_EXT_BASE_CONTAINER_ANNOTATIONS_H_
diff --git a/include/perfetto/base/event.h b/include/perfetto/ext/base/event.h
similarity index 90%
rename from include/perfetto/base/event.h
rename to include/perfetto/ext/base/event.h
index bca6c00..4cfdb7a 100644
--- a/include/perfetto/base/event.h
+++ b/include/perfetto/ext/base/event.h
@@ -14,11 +14,11 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_BASE_EVENT_H_
-#define INCLUDE_PERFETTO_BASE_EVENT_H_
+#ifndef INCLUDE_PERFETTO_EXT_BASE_EVENT_H_
+#define INCLUDE_PERFETTO_EXT_BASE_EVENT_H_
 
 #include "perfetto/base/build_config.h"
-#include "perfetto/base/scoped_file.h"
+#include "perfetto/ext/base/scoped_file.h"
 
 #if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
     PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
@@ -64,4 +64,4 @@
 }  // namespace base
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_BASE_EVENT_H_
+#endif  // INCLUDE_PERFETTO_EXT_BASE_EVENT_H_
diff --git a/include/perfetto/base/file_utils.h b/include/perfetto/ext/base/file_utils.h
similarity index 86%
rename from include/perfetto/base/file_utils.h
rename to include/perfetto/ext/base/file_utils.h
index 0d5b825..e297812 100644
--- a/include/perfetto/base/file_utils.h
+++ b/include/perfetto/ext/base/file_utils.h
@@ -14,14 +14,14 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_BASE_FILE_UTILS_H_
-#define INCLUDE_PERFETTO_BASE_FILE_UTILS_H_
+#ifndef INCLUDE_PERFETTO_EXT_BASE_FILE_UTILS_H_
+#define INCLUDE_PERFETTO_EXT_BASE_FILE_UTILS_H_
 
 #include <stddef.h>
 
 #include <string>
 
-#include "perfetto/base/utils.h"  // For ssize_t on Windows.
+#include "perfetto/ext/base/utils.h"
 
 namespace perfetto {
 namespace base {
@@ -43,4 +43,4 @@
 }  // namespace base
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_BASE_FILE_UTILS_H_
+#endif  // INCLUDE_PERFETTO_EXT_BASE_FILE_UTILS_H_
diff --git a/include/perfetto/base/hash.h b/include/perfetto/ext/base/hash.h
similarity index 92%
rename from include/perfetto/base/hash.h
rename to include/perfetto/ext/base/hash.h
index e64778e..87b1a54 100644
--- a/include/perfetto/base/hash.h
+++ b/include/perfetto/ext/base/hash.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_BASE_HASH_H_
-#define INCLUDE_PERFETTO_BASE_HASH_H_
+#ifndef INCLUDE_PERFETTO_EXT_BASE_HASH_H_
+#define INCLUDE_PERFETTO_EXT_BASE_HASH_H_
 
 #include <stddef.h>
 #include <stdint.h>
@@ -60,4 +60,4 @@
 }  // namespace base
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_BASE_HASH_H_
+#endif  // INCLUDE_PERFETTO_EXT_BASE_HASH_H_
diff --git a/include/perfetto/base/lookup_set.h b/include/perfetto/ext/base/lookup_set.h
similarity index 91%
rename from include/perfetto/base/lookup_set.h
rename to include/perfetto/ext/base/lookup_set.h
index a730dbe..11bff8e 100644
--- a/include/perfetto/base/lookup_set.h
+++ b/include/perfetto/ext/base/lookup_set.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_BASE_LOOKUP_SET_H_
-#define INCLUDE_PERFETTO_BASE_LOOKUP_SET_H_
+#ifndef INCLUDE_PERFETTO_EXT_BASE_LOOKUP_SET_H_
+#define INCLUDE_PERFETTO_EXT_BASE_LOOKUP_SET_H_
 
 #include <set>
 
@@ -63,4 +63,4 @@
 }  // namespace base
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_BASE_LOOKUP_SET_H_
+#endif  // INCLUDE_PERFETTO_EXT_BASE_LOOKUP_SET_H_
diff --git a/include/perfetto/base/metatrace.h b/include/perfetto/ext/base/metatrace.h
similarity index 90%
rename from include/perfetto/base/metatrace.h
rename to include/perfetto/ext/base/metatrace.h
index 116a160..c41e0ee 100644
--- a/include/perfetto/base/metatrace.h
+++ b/include/perfetto/ext/base/metatrace.h
@@ -14,15 +14,15 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_BASE_METATRACE_H_
-#define INCLUDE_PERFETTO_BASE_METATRACE_H_
+#ifndef INCLUDE_PERFETTO_EXT_BASE_METATRACE_H_
+#define INCLUDE_PERFETTO_EXT_BASE_METATRACE_H_
 
 #include <string.h>
 
 #include <string>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/utils.h"
 
 namespace perfetto {
 namespace base {
@@ -66,4 +66,4 @@
 }  // namespace base
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_BASE_METATRACE_H_
+#endif  // INCLUDE_PERFETTO_EXT_BASE_METATRACE_H_
diff --git a/include/perfetto/base/no_destructor.h b/include/perfetto/ext/base/no_destructor.h
similarity index 92%
rename from include/perfetto/base/no_destructor.h
rename to include/perfetto/ext/base/no_destructor.h
index 8009fc5..3ecea99 100644
--- a/include/perfetto/base/no_destructor.h
+++ b/include/perfetto/ext/base/no_destructor.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_BASE_NO_DESTRUCTOR_H_
-#define INCLUDE_PERFETTO_BASE_NO_DESTRUCTOR_H_
+#ifndef INCLUDE_PERFETTO_EXT_BASE_NO_DESTRUCTOR_H_
+#define INCLUDE_PERFETTO_EXT_BASE_NO_DESTRUCTOR_H_
 
 #include <new>
 #include <utility>
@@ -64,4 +64,4 @@
 }  // namespace base
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_BASE_NO_DESTRUCTOR_H_
+#endif  // INCLUDE_PERFETTO_EXT_BASE_NO_DESTRUCTOR_H_
diff --git a/include/perfetto/base/optional.h b/include/perfetto/ext/base/optional.h
similarity index 98%
rename from include/perfetto/base/optional.h
rename to include/perfetto/ext/base/optional.h
index c46d6ca..2a09bf2 100644
--- a/include/perfetto/base/optional.h
+++ b/include/perfetto/ext/base/optional.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_BASE_OPTIONAL_H_
-#define INCLUDE_PERFETTO_BASE_OPTIONAL_H_
+#ifndef INCLUDE_PERFETTO_EXT_BASE_OPTIONAL_H_
+#define INCLUDE_PERFETTO_EXT_BASE_OPTIONAL_H_
 
 #include <functional>
 #include <type_traits>
@@ -569,7 +569,7 @@
     return &storage_.value_;
   }
 
-  const T& operator*() const & {
+  const T& operator*() const& {
     PERFETTO_DCHECK(storage_.is_populated_);
     return storage_.value_;
   }
@@ -579,7 +579,7 @@
     return storage_.value_;
   }
 
-  const T&& operator*() const && {
+  const T&& operator*() const&& {
     PERFETTO_DCHECK(storage_.is_populated_);
     return std::move(storage_.value_);
   }
@@ -598,7 +598,7 @@
     return storage_.value_;
   }
 
-  const T& value() const & {
+  const T& value() const& {
     PERFETTO_CHECK(storage_.is_populated_);
     return storage_.value_;
   }
@@ -608,13 +608,13 @@
     return std::move(storage_.value_);
   }
 
-  const T&& value() const && {
+  const T&& value() const&& {
     PERFETTO_CHECK(storage_.is_populated_);
     return std::move(storage_.value_);
   }
 
   template <class U>
-  constexpr T value_or(U&& default_value) const & {
+  constexpr T value_or(U&& default_value) const& {
     static_assert(std::is_convertible<U, T>::value,
                   "U must be convertible to T");
     return storage_.is_populated_
@@ -899,4 +899,4 @@
 
 }  // namespace std
 
-#endif  // INCLUDE_PERFETTO_BASE_OPTIONAL_H_
+#endif  // INCLUDE_PERFETTO_EXT_BASE_OPTIONAL_H_
diff --git a/include/perfetto/base/paged_memory.h b/include/perfetto/ext/base/paged_memory.h
similarity index 93%
rename from include/perfetto/base/paged_memory.h
rename to include/perfetto/ext/base/paged_memory.h
index f994ea5..f0ed568 100644
--- a/include/perfetto/base/paged_memory.h
+++ b/include/perfetto/ext/base/paged_memory.h
@@ -14,13 +14,13 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_BASE_PAGED_MEMORY_H_
-#define INCLUDE_PERFETTO_BASE_PAGED_MEMORY_H_
+#ifndef INCLUDE_PERFETTO_EXT_BASE_PAGED_MEMORY_H_
+#define INCLUDE_PERFETTO_EXT_BASE_PAGED_MEMORY_H_
 
 #include <memory>
 
 #include "perfetto/base/build_config.h"
-#include "perfetto/base/container_annotations.h"
+#include "perfetto/ext/base/container_annotations.h"
 
 // We need to track the committed size on windows and when ASAN is enabled.
 #if PERFETTO_BUILDFLAG(PERFETTO_OS_WIN) || defined(ADDRESS_SANITIZER)
@@ -72,7 +72,7 @@
   // chunks above |committed_size|. Crashes if the memory couldn't be committed.
 #if TRACK_COMMITTED_SIZE()
   void EnsureCommitted(size_t committed_size);
-#else  // TRACK_COMMITTED_SIZE()
+#else   // TRACK_COMMITTED_SIZE()
   void EnsureCommitted(size_t /*committed_size*/) {}
 #endif  // TRACK_COMMITTED_SIZE()
 
@@ -98,4 +98,4 @@
 }  // namespace base
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_BASE_PAGED_MEMORY_H_
+#endif  // INCLUDE_PERFETTO_EXT_BASE_PAGED_MEMORY_H_
diff --git a/include/perfetto/base/pipe.h b/include/perfetto/ext/base/pipe.h
similarity index 84%
rename from include/perfetto/base/pipe.h
rename to include/perfetto/ext/base/pipe.h
index a1fde3c..ba22729 100644
--- a/include/perfetto/base/pipe.h
+++ b/include/perfetto/ext/base/pipe.h
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_BASE_PIPE_H_
-#define INCLUDE_PERFETTO_BASE_PIPE_H_
+#ifndef INCLUDE_PERFETTO_EXT_BASE_PIPE_H_
+#define INCLUDE_PERFETTO_EXT_BASE_PIPE_H_
 
-#include "perfetto/base/scoped_file.h"
+#include "perfetto/ext/base/scoped_file.h"
 
 namespace perfetto {
 namespace base {
@@ -44,4 +44,4 @@
 }  // namespace base
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_BASE_PIPE_H_
+#endif  // INCLUDE_PERFETTO_EXT_BASE_PIPE_H_
diff --git a/include/perfetto/base/scoped_file.h b/include/perfetto/ext/base/scoped_file.h
similarity index 94%
rename from include/perfetto/base/scoped_file.h
rename to include/perfetto/ext/base/scoped_file.h
index 9981001..2fee6a1 100644
--- a/include/perfetto/base/scoped_file.h
+++ b/include/perfetto/ext/base/scoped_file.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_BASE_SCOPED_FILE_H_
-#define INCLUDE_PERFETTO_BASE_SCOPED_FILE_H_
+#ifndef INCLUDE_PERFETTO_EXT_BASE_SCOPED_FILE_H_
+#define INCLUDE_PERFETTO_EXT_BASE_SCOPED_FILE_H_
 
 #include "perfetto/base/build_config.h"
 
@@ -104,4 +104,4 @@
 }  // namespace base
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_BASE_SCOPED_FILE_H_
+#endif  // INCLUDE_PERFETTO_EXT_BASE_SCOPED_FILE_H_
diff --git a/include/perfetto/base/small_set.h b/include/perfetto/ext/base/small_set.h
similarity index 91%
rename from include/perfetto/base/small_set.h
rename to include/perfetto/ext/base/small_set.h
index 94f2324..db057a0 100644
--- a/include/perfetto/base/small_set.h
+++ b/include/perfetto/ext/base/small_set.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_BASE_SMALL_SET_H_
-#define INCLUDE_PERFETTO_BASE_SMALL_SET_H_
+#ifndef INCLUDE_PERFETTO_EXT_BASE_SMALL_SET_H_
+#define INCLUDE_PERFETTO_EXT_BASE_SMALL_SET_H_
 
 #include <array>
 
@@ -59,4 +59,4 @@
 
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_BASE_SMALL_SET_H_
+#endif  // INCLUDE_PERFETTO_EXT_BASE_SMALL_SET_H_
diff --git a/include/perfetto/base/string_splitter.h b/include/perfetto/ext/base/string_splitter.h
similarity index 93%
rename from include/perfetto/base/string_splitter.h
rename to include/perfetto/ext/base/string_splitter.h
index cee1a27..c68506c 100644
--- a/include/perfetto/base/string_splitter.h
+++ b/include/perfetto/ext/base/string_splitter.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_BASE_STRING_SPLITTER_H_
-#define INCLUDE_PERFETTO_BASE_STRING_SPLITTER_H_
+#ifndef INCLUDE_PERFETTO_EXT_BASE_STRING_SPLITTER_H_
+#define INCLUDE_PERFETTO_EXT_BASE_STRING_SPLITTER_H_
 
 #include <string>
 
@@ -71,4 +71,4 @@
 }  // namespace base
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_BASE_STRING_SPLITTER_H_
+#endif  // INCLUDE_PERFETTO_EXT_BASE_STRING_SPLITTER_H_
diff --git a/include/perfetto/base/string_utils.h b/include/perfetto/ext/base/string_utils.h
similarity index 83%
rename from include/perfetto/base/string_utils.h
rename to include/perfetto/ext/base/string_utils.h
index d2f9a36..3220a69 100644
--- a/include/perfetto/base/string_utils.h
+++ b/include/perfetto/ext/base/string_utils.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_BASE_STRING_UTILS_H_
-#define INCLUDE_PERFETTO_BASE_STRING_UTILS_H_
+#ifndef INCLUDE_PERFETTO_EXT_BASE_STRING_UTILS_H_
+#define INCLUDE_PERFETTO_EXT_BASE_STRING_UTILS_H_
 
 #include <string>
 #include <vector>
@@ -26,6 +26,7 @@
 bool StartsWith(const std::string& str, const std::string& prefix);
 bool EndsWith(const std::string& str, const std::string& suffix);
 bool Contains(const std::string& haystack, const std::string& needle);
+bool CaseInsensitiveEqual(const std::string& first, const std::string& second);
 std::string Join(const std::vector<std::string>& parts,
                  const std::string& delim);
 std::vector<std::string> SplitString(const std::string& text,
@@ -34,4 +35,4 @@
 }  // namespace base
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_BASE_STRING_UTILS_H_
+#endif  // INCLUDE_PERFETTO_EXT_BASE_STRING_UTILS_H_
diff --git a/include/perfetto/base/string_view.h b/include/perfetto/ext/base/string_view.h
similarity index 95%
rename from include/perfetto/base/string_view.h
rename to include/perfetto/ext/base/string_view.h
index b0b0f79..dba22e7 100644
--- a/include/perfetto/base/string_view.h
+++ b/include/perfetto/ext/base/string_view.h
@@ -14,16 +14,16 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_BASE_STRING_VIEW_H_
-#define INCLUDE_PERFETTO_BASE_STRING_VIEW_H_
+#ifndef INCLUDE_PERFETTO_EXT_BASE_STRING_VIEW_H_
+#define INCLUDE_PERFETTO_EXT_BASE_STRING_VIEW_H_
 
 #include <string.h>
 
 #include <algorithm>
 #include <string>
 
-#include "perfetto/base/hash.h"
 #include "perfetto/base/logging.h"
+#include "perfetto/ext/base/hash.h"
 
 namespace perfetto {
 namespace base {
@@ -154,4 +154,4 @@
 
 }  // namespace std
 
-#endif  // INCLUDE_PERFETTO_BASE_STRING_VIEW_H_
+#endif  // INCLUDE_PERFETTO_EXT_BASE_STRING_VIEW_H_
diff --git a/include/perfetto/base/string_writer.h b/include/perfetto/ext/base/string_writer.h
similarity index 95%
rename from include/perfetto/base/string_writer.h
rename to include/perfetto/ext/base/string_writer.h
index 5bc81bb..10e92a0 100644
--- a/include/perfetto/base/string_writer.h
+++ b/include/perfetto/ext/base/string_writer.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_BASE_STRING_WRITER_H_
-#define INCLUDE_PERFETTO_BASE_STRING_WRITER_H_
+#ifndef INCLUDE_PERFETTO_EXT_BASE_STRING_WRITER_H_
+#define INCLUDE_PERFETTO_EXT_BASE_STRING_WRITER_H_
 
 #include <math.h>
 #include <stdlib.h>
@@ -23,8 +23,7 @@
 #include <limits>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/base/string_view.h"
+#include "perfetto/ext/base/string_view.h"
 
 namespace perfetto {
 namespace base {
@@ -146,4 +145,4 @@
 }  // namespace base
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_BASE_STRING_WRITER_H_
+#endif  // INCLUDE_PERFETTO_EXT_BASE_STRING_WRITER_H_
diff --git a/include/perfetto/base/temp_file.h b/include/perfetto/ext/base/temp_file.h
similarity index 90%
rename from include/perfetto/base/temp_file.h
rename to include/perfetto/ext/base/temp_file.h
index e862971..da7e1bf 100644
--- a/include/perfetto/base/temp_file.h
+++ b/include/perfetto/ext/base/temp_file.h
@@ -14,12 +14,12 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_BASE_TEMP_FILE_H_
-#define INCLUDE_PERFETTO_BASE_TEMP_FILE_H_
+#ifndef INCLUDE_PERFETTO_EXT_BASE_TEMP_FILE_H_
+#define INCLUDE_PERFETTO_EXT_BASE_TEMP_FILE_H_
 
 #include <string>
 
-#include "perfetto/base/scoped_file.h"
+#include "perfetto/ext/base/scoped_file.h"
 
 namespace perfetto {
 namespace base {
@@ -75,4 +75,4 @@
 }  // namespace base
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_BASE_TEMP_FILE_H_
+#endif  // INCLUDE_PERFETTO_EXT_BASE_TEMP_FILE_H_
diff --git a/include/perfetto/base/thread_annotations.h b/include/perfetto/ext/base/thread_annotations.h
similarity index 89%
rename from include/perfetto/base/thread_annotations.h
rename to include/perfetto/ext/base/thread_annotations.h
index b5d3671..beb8c45 100644
--- a/include/perfetto/base/thread_annotations.h
+++ b/include/perfetto/ext/base/thread_annotations.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_BASE_THREAD_ANNOTATIONS_H_
-#define INCLUDE_PERFETTO_BASE_THREAD_ANNOTATIONS_H_
+#ifndef INCLUDE_PERFETTO_EXT_BASE_THREAD_ANNOTATIONS_H_
+#define INCLUDE_PERFETTO_EXT_BASE_THREAD_ANNOTATIONS_H_
 
 #include "perfetto/base/build_config.h"
 
@@ -37,4 +37,4 @@
 #define PERFETTO_ANNOTATE_BENIGN_RACE_SIZED(pointer, size, description)
 #endif  // defined(ADDRESS_SANITIZER)
 
-#endif  // INCLUDE_PERFETTO_BASE_THREAD_ANNOTATIONS_H_
+#endif  // INCLUDE_PERFETTO_EXT_BASE_THREAD_ANNOTATIONS_H_
diff --git a/include/perfetto/base/thread_checker.h b/include/perfetto/ext/base/thread_checker.h
similarity index 90%
rename from include/perfetto/base/thread_checker.h
rename to include/perfetto/ext/base/thread_checker.h
index 9b99e88..643aba1 100644
--- a/include/perfetto/base/thread_checker.h
+++ b/include/perfetto/ext/base/thread_checker.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_BASE_THREAD_CHECKER_H_
-#define INCLUDE_PERFETTO_BASE_THREAD_CHECKER_H_
+#ifndef INCLUDE_PERFETTO_EXT_BASE_THREAD_CHECKER_H_
+#define INCLUDE_PERFETTO_EXT_BASE_THREAD_CHECKER_H_
 
 #include "perfetto/base/build_config.h"
 
@@ -26,7 +26,7 @@
 
 #include "perfetto/base/export.h"
 #include "perfetto/base/logging.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/utils.h"
 
 namespace perfetto {
 namespace base {
@@ -65,4 +65,4 @@
 }  // namespace base
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_BASE_THREAD_CHECKER_H_
+#endif  // INCLUDE_PERFETTO_EXT_BASE_THREAD_CHECKER_H_
diff --git a/include/perfetto/base/thread_task_runner.h b/include/perfetto/ext/base/thread_task_runner.h
similarity index 90%
rename from include/perfetto/base/thread_task_runner.h
rename to include/perfetto/ext/base/thread_task_runner.h
index db49a61..fac4553 100644
--- a/include/perfetto/base/thread_task_runner.h
+++ b/include/perfetto/ext/base/thread_task_runner.h
@@ -14,13 +14,13 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_BASE_THREAD_TASK_RUNNER_H_
-#define INCLUDE_PERFETTO_BASE_THREAD_TASK_RUNNER_H_
+#ifndef INCLUDE_PERFETTO_EXT_BASE_THREAD_TASK_RUNNER_H_
+#define INCLUDE_PERFETTO_EXT_BASE_THREAD_TASK_RUNNER_H_
 
 #include <functional>
 #include <thread>
 
-#include "perfetto/base/unix_task_runner.h"
+#include "perfetto/ext/base/unix_task_runner.h"
 
 namespace perfetto {
 namespace base {
@@ -63,4 +63,4 @@
 }  // namespace base
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_BASE_THREAD_TASK_RUNNER_H_
+#endif  // INCLUDE_PERFETTO_EXT_BASE_THREAD_TASK_RUNNER_H_
diff --git a/include/perfetto/base/thread_utils.h b/include/perfetto/ext/base/thread_utils.h
similarity index 92%
rename from include/perfetto/base/thread_utils.h
rename to include/perfetto/ext/base/thread_utils.h
index 3d7eac0..2914025 100644
--- a/include/perfetto/base/thread_utils.h
+++ b/include/perfetto/ext/base/thread_utils.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_BASE_THREAD_UTILS_H_
-#define INCLUDE_PERFETTO_BASE_THREAD_UTILS_H_
+#ifndef INCLUDE_PERFETTO_EXT_BASE_THREAD_UTILS_H_
+#define INCLUDE_PERFETTO_EXT_BASE_THREAD_UTILS_H_
 
 #include <stdint.h>
 
@@ -73,4 +73,4 @@
 }  // namespace base
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_BASE_THREAD_UTILS_H_
+#endif  // INCLUDE_PERFETTO_EXT_BASE_THREAD_UTILS_H_
diff --git a/include/perfetto/base/time.h b/include/perfetto/ext/base/time.h
similarity index 97%
rename from include/perfetto/base/time.h
rename to include/perfetto/ext/base/time.h
index b58c0ed..a3b4a78 100644
--- a/include/perfetto/base/time.h
+++ b/include/perfetto/ext/base/time.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_BASE_TIME_H_
-#define INCLUDE_PERFETTO_BASE_TIME_H_
+#ifndef INCLUDE_PERFETTO_EXT_BASE_TIME_H_
+#define INCLUDE_PERFETTO_EXT_BASE_TIME_H_
 
 #include <time.h>
 
@@ -161,4 +161,4 @@
 }  // namespace base
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_BASE_TIME_H_
+#endif  // INCLUDE_PERFETTO_EXT_BASE_TIME_H_
diff --git a/include/perfetto/base/unix_socket.h b/include/perfetto/ext/base/unix_socket.h
similarity index 97%
rename from include/perfetto/base/unix_socket.h
rename to include/perfetto/ext/base/unix_socket.h
index f2b8003..b4e8e04 100644
--- a/include/perfetto/base/unix_socket.h
+++ b/include/perfetto/ext/base/unix_socket.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_BASE_UNIX_SOCKET_H_
-#define INCLUDE_PERFETTO_BASE_UNIX_SOCKET_H_
+#ifndef INCLUDE_PERFETTO_EXT_BASE_UNIX_SOCKET_H_
+#define INCLUDE_PERFETTO_EXT_BASE_UNIX_SOCKET_H_
 
 #include <stdint.h>
 #include <sys/types.h>
@@ -24,9 +24,9 @@
 #include <string>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/base/utils.h"
-#include "perfetto/base/weak_ptr.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/utils.h"
+#include "perfetto/ext/base/weak_ptr.h"
 
 struct msghdr;
 
@@ -329,4 +329,4 @@
 }  // namespace base
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_BASE_UNIX_SOCKET_H_
+#endif  // INCLUDE_PERFETTO_EXT_BASE_UNIX_SOCKET_H_
diff --git a/include/perfetto/base/unix_task_runner.h b/include/perfetto/ext/base/unix_task_runner.h
similarity index 90%
rename from include/perfetto/base/unix_task_runner.h
rename to include/perfetto/ext/base/unix_task_runner.h
index 98c9c7e..d25bc52 100644
--- a/include/perfetto/base/unix_task_runner.h
+++ b/include/perfetto/ext/base/unix_task_runner.h
@@ -14,16 +14,16 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_BASE_UNIX_TASK_RUNNER_H_
-#define INCLUDE_PERFETTO_BASE_UNIX_TASK_RUNNER_H_
+#ifndef INCLUDE_PERFETTO_EXT_BASE_UNIX_TASK_RUNNER_H_
+#define INCLUDE_PERFETTO_EXT_BASE_UNIX_TASK_RUNNER_H_
 
 #include "perfetto/base/build_config.h"
-#include "perfetto/base/event.h"
-#include "perfetto/base/scoped_file.h"
 #include "perfetto/base/task_runner.h"
-#include "perfetto/base/thread_checker.h"
-#include "perfetto/base/thread_utils.h"
-#include "perfetto/base/time.h"
+#include "perfetto/ext/base/event.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/thread_checker.h"
+#include "perfetto/ext/base/thread_utils.h"
+#include "perfetto/ext/base/time.h"
 
 #include <poll.h>
 #include <chrono>
@@ -117,4 +117,4 @@
 }  // namespace base
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_BASE_UNIX_TASK_RUNNER_H_
+#endif  // INCLUDE_PERFETTO_EXT_BASE_UNIX_TASK_RUNNER_H_
diff --git a/include/perfetto/base/utils.h b/include/perfetto/ext/base/utils.h
similarity index 66%
rename from include/perfetto/base/utils.h
rename to include/perfetto/ext/base/utils.h
index 3669cb1..884ee5e 100644
--- a/include/perfetto/base/utils.h
+++ b/include/perfetto/ext/base/utils.h
@@ -14,10 +14,11 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_BASE_UTILS_H_
-#define INCLUDE_PERFETTO_BASE_UTILS_H_
+#ifndef INCLUDE_PERFETTO_EXT_BASE_UTILS_H_
+#define INCLUDE_PERFETTO_EXT_BASE_UTILS_H_
 
 #include "perfetto/base/build_config.h"
+#include "perfetto/base/compiler.h"
 
 #include <errno.h>
 #include <stddef.h>
@@ -35,9 +36,6 @@
     eintr_wrapper_result;                                   \
   })
 
-#define PERFETTO_LIKELY(_x) __builtin_expect(!!(_x), 1)
-#define PERFETTO_UNLIKELY(_x) __builtin_expect(!!(_x), 0)
-
 #if PERFETTO_BUILDFLAG(PERFETTO_OS_WIN)
 // TODO(brucedawson) - create a ::perfetto::base::IOSize to replace this.
 #if defined(_WIN64)
@@ -47,39 +45,6 @@
 #endif
 #endif
 
-#if defined(__GNUC__) || defined(__clang__)
-#define PERFETTO_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
-#else
-#define PERFETTO_WARN_UNUSED_RESULT
-#endif
-
-#if defined(__clang__)
-#define PERFETTO_ALWAYS_INLINE __attribute__((__always_inline__))
-#else
-// GCC is too pedantic and often fails with the error:
-// "always_inline function might not be inlinable"
-#define PERFETTO_ALWAYS_INLINE
-#endif
-
-// TODO(lalitm): is_trivially_constructible is currently not available
-// in some environments we build in. Reenable when that environment supports
-// this.
-#if defined(__GLIBCXX__)
-#define PERFETTO_IS_TRIVIALLY_CONSTRUCTIBLE(T) true
-#else
-#define PERFETTO_IS_TRIVIALLY_CONSTRUCTIBLE(T) \
-  std::is_trivially_constructible<T>::value
-#endif
-
-// TODO(lalitm): is_trivially_copyable is currently not available
-// in some environments we build in. Reenable when that environment supports
-// this.
-#if defined(__GLIBCXX__)
-#define PERFETTO_IS_TRIVIALLY_COPYABLE(T) true
-#else
-#define PERFETTO_IS_TRIVIALLY_COPYABLE(T) std::is_trivially_copyable<T>::value
-#endif
-
 namespace perfetto {
 namespace base {
 
@@ -96,9 +61,6 @@
   return sizeof(array) / sizeof(array[0]);
 }
 
-template <typename... T>
-inline void ignore_result(const T&...) {}
-
 // Function object which invokes 'free' on its parameter, which must be
 // a pointer. Can be used to store malloc-allocated pointers in std::unique_ptr:
 //
@@ -129,4 +91,4 @@
 }  // namespace base
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_BASE_UTILS_H_
+#endif  // INCLUDE_PERFETTO_EXT_BASE_UTILS_H_
diff --git a/include/perfetto/ext/base/watchdog.h b/include/perfetto/ext/base/watchdog.h
new file mode 100644
index 0000000..02f1918
--- /dev/null
+++ b/include/perfetto/ext/base/watchdog.h
@@ -0,0 +1,48 @@
+/*
+ * 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.
+ */
+
+#ifndef INCLUDE_PERFETTO_EXT_BASE_WATCHDOG_H_
+#define INCLUDE_PERFETTO_EXT_BASE_WATCHDOG_H_
+
+#include <functional>
+
+#include "perfetto/base/build_config.h"
+
+#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) ||    \
+     PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)) && \
+    !PERFETTO_BUILDFLAG(PERFETTO_EMBEDDER_BUILD)
+#include "perfetto/ext/base/watchdog_posix.h"
+#else
+#include "perfetto/ext/base/watchdog_noop.h"
+#endif
+
+namespace perfetto {
+namespace base {
+
+inline void RunTaskWithWatchdogGuard(const std::function<void()>& task) {
+  // Maximum time a single task can take in a TaskRunner before the
+  // program suicides.
+  constexpr int64_t kWatchdogMillis = 30000;  // 30s
+
+  Watchdog::Timer handle =
+      base::Watchdog::GetInstance()->CreateFatalTimer(kWatchdogMillis);
+  task();
+}
+
+}  // namespace base
+}  // namespace perfetto
+
+#endif  // INCLUDE_PERFETTO_EXT_BASE_WATCHDOG_H_
diff --git a/include/perfetto/base/watchdog_noop.h b/include/perfetto/ext/base/watchdog_noop.h
similarity index 88%
rename from include/perfetto/base/watchdog_noop.h
rename to include/perfetto/ext/base/watchdog_noop.h
index e542aa6..d678063 100644
--- a/include/perfetto/base/watchdog_noop.h
+++ b/include/perfetto/ext/base/watchdog_noop.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_BASE_WATCHDOG_NOOP_H_
-#define INCLUDE_PERFETTO_BASE_WATCHDOG_NOOP_H_
+#ifndef INCLUDE_PERFETTO_EXT_BASE_WATCHDOG_NOOP_H_
+#define INCLUDE_PERFETTO_EXT_BASE_WATCHDOG_NOOP_H_
 
 #include <stdint.h>
 
@@ -44,4 +44,4 @@
 }  // namespace base
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_BASE_WATCHDOG_NOOP_H_
+#endif  // INCLUDE_PERFETTO_EXT_BASE_WATCHDOG_NOOP_H_
diff --git a/include/perfetto/base/watchdog_posix.h b/include/perfetto/ext/base/watchdog_posix.h
similarity index 95%
rename from include/perfetto/base/watchdog_posix.h
rename to include/perfetto/ext/base/watchdog_posix.h
index a7080df..40e3289 100644
--- a/include/perfetto/base/watchdog_posix.h
+++ b/include/perfetto/ext/base/watchdog_posix.h
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_BASE_WATCHDOG_POSIX_H_
-#define INCLUDE_PERFETTO_BASE_WATCHDOG_POSIX_H_
+#ifndef INCLUDE_PERFETTO_EXT_BASE_WATCHDOG_POSIX_H_
+#define INCLUDE_PERFETTO_EXT_BASE_WATCHDOG_POSIX_H_
 
-#include "perfetto/base/thread_checker.h"
+#include "perfetto/ext/base/thread_checker.h"
 
 #include <atomic>
 #include <condition_variable>
@@ -151,4 +151,4 @@
 
 }  // namespace base
 }  // namespace perfetto
-#endif  // INCLUDE_PERFETTO_BASE_WATCHDOG_POSIX_H_
+#endif  // INCLUDE_PERFETTO_EXT_BASE_WATCHDOG_POSIX_H_
diff --git a/include/perfetto/base/weak_ptr.h b/include/perfetto/ext/base/weak_ptr.h
similarity index 93%
rename from include/perfetto/base/weak_ptr.h
rename to include/perfetto/ext/base/weak_ptr.h
index 369b70e..7ba4ca3 100644
--- a/include/perfetto/base/weak_ptr.h
+++ b/include/perfetto/ext/base/weak_ptr.h
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_BASE_WEAK_PTR_H_
-#define INCLUDE_PERFETTO_BASE_WEAK_PTR_H_
+#ifndef INCLUDE_PERFETTO_EXT_BASE_WEAK_PTR_H_
+#define INCLUDE_PERFETTO_EXT_BASE_WEAK_PTR_H_
 
-#include "perfetto/base/thread_checker.h"
+#include "perfetto/ext/base/thread_checker.h"
 
 #include <memory>
 
@@ -104,4 +104,4 @@
 }  // namespace base
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_BASE_WEAK_PTR_H_
+#endif  // INCLUDE_PERFETTO_EXT_BASE_WEAK_PTR_H_
diff --git a/include/perfetto/ipc/BUILD.gn b/include/perfetto/ext/ipc/BUILD.gn
similarity index 100%
rename from include/perfetto/ipc/BUILD.gn
rename to include/perfetto/ext/ipc/BUILD.gn
diff --git a/include/perfetto/ipc/async_result.h b/include/perfetto/ext/ipc/async_result.h
similarity index 91%
rename from include/perfetto/ipc/async_result.h
rename to include/perfetto/ext/ipc/async_result.h
index e3178c3..cb4d849 100644
--- a/include/perfetto/ipc/async_result.h
+++ b/include/perfetto/ext/ipc/async_result.h
@@ -14,14 +14,14 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_IPC_ASYNC_RESULT_H_
-#define INCLUDE_PERFETTO_IPC_ASYNC_RESULT_H_
+#ifndef INCLUDE_PERFETTO_EXT_IPC_ASYNC_RESULT_H_
+#define INCLUDE_PERFETTO_EXT_IPC_ASYNC_RESULT_H_
 
 #include <memory>
 #include <type_traits>
 #include <utility>
 
-#include "perfetto/ipc/basic_types.h"
+#include "perfetto/ext/ipc/basic_types.h"
 
 namespace perfetto {
 namespace ipc {
@@ -71,4 +71,4 @@
 }  // namespace ipc
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_IPC_ASYNC_RESULT_H_
+#endif  // INCLUDE_PERFETTO_EXT_IPC_ASYNC_RESULT_H_
diff --git a/include/perfetto/ipc/basic_types.h b/include/perfetto/ext/ipc/basic_types.h
similarity index 89%
rename from include/perfetto/ipc/basic_types.h
rename to include/perfetto/ext/ipc/basic_types.h
index 2d14085..793cc19 100644
--- a/include/perfetto/ipc/basic_types.h
+++ b/include/perfetto/ext/ipc/basic_types.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_IPC_BASIC_TYPES_H_
-#define INCLUDE_PERFETTO_IPC_BASIC_TYPES_H_
+#ifndef INCLUDE_PERFETTO_EXT_IPC_BASIC_TYPES_H_
+#define INCLUDE_PERFETTO_EXT_IPC_BASIC_TYPES_H_
 
 #include <stddef.h>
 #include <stdint.h>
@@ -46,4 +46,4 @@
 }  // namespace ipc
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_IPC_BASIC_TYPES_H_
+#endif  // INCLUDE_PERFETTO_EXT_IPC_BASIC_TYPES_H_
diff --git a/include/perfetto/ipc/client.h b/include/perfetto/ext/ipc/client.h
similarity index 89%
rename from include/perfetto/ipc/client.h
rename to include/perfetto/ext/ipc/client.h
index cd802d1..72c3e73 100644
--- a/include/perfetto/ipc/client.h
+++ b/include/perfetto/ext/ipc/client.h
@@ -14,15 +14,15 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_IPC_CLIENT_H_
-#define INCLUDE_PERFETTO_IPC_CLIENT_H_
+#ifndef INCLUDE_PERFETTO_EXT_IPC_CLIENT_H_
+#define INCLUDE_PERFETTO_EXT_IPC_CLIENT_H_
 
 #include <functional>
 #include <memory>
 
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/base/weak_ptr.h"
-#include "perfetto/ipc/basic_types.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/weak_ptr.h"
+#include "perfetto/ext/ipc/basic_types.h"
 
 namespace perfetto {
 
@@ -66,4 +66,4 @@
 }  // namespace ipc
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_IPC_CLIENT_H_
+#endif  // INCLUDE_PERFETTO_EXT_IPC_CLIENT_H_
diff --git a/include/perfetto/ipc/client_info.h b/include/perfetto/ext/ipc/client_info.h
similarity index 89%
rename from include/perfetto/ipc/client_info.h
rename to include/perfetto/ext/ipc/client_info.h
index 5c4fe5b..0b43f9a 100644
--- a/include/perfetto/ipc/client_info.h
+++ b/include/perfetto/ext/ipc/client_info.h
@@ -14,13 +14,13 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_IPC_CLIENT_INFO_H_
-#define INCLUDE_PERFETTO_IPC_CLIENT_INFO_H_
+#ifndef INCLUDE_PERFETTO_EXT_IPC_CLIENT_INFO_H_
+#define INCLUDE_PERFETTO_EXT_IPC_CLIENT_INFO_H_
 
 #include <unistd.h>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/ipc/basic_types.h"
+#include "perfetto/ext/ipc/basic_types.h"
 
 namespace perfetto {
 namespace ipc {
@@ -59,4 +59,4 @@
 }  // namespace ipc
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_IPC_CLIENT_INFO_H_
+#endif  // INCLUDE_PERFETTO_EXT_IPC_CLIENT_INFO_H_
diff --git a/include/perfetto/ipc/codegen_helpers.h b/include/perfetto/ext/ipc/codegen_helpers.h
similarity index 91%
rename from include/perfetto/ipc/codegen_helpers.h
rename to include/perfetto/ext/ipc/codegen_helpers.h
index e4cec82..90ca49d 100644
--- a/include/perfetto/ipc/codegen_helpers.h
+++ b/include/perfetto/ext/ipc/codegen_helpers.h
@@ -16,8 +16,8 @@
 
 // This file is only meant to be included in autogenerated .cc files.
 
-#ifndef INCLUDE_PERFETTO_IPC_CODEGEN_HELPERS_H_
-#define INCLUDE_PERFETTO_IPC_CODEGEN_HELPERS_H_
+#ifndef INCLUDE_PERFETTO_EXT_IPC_CODEGEN_HELPERS_H_
+#define INCLUDE_PERFETTO_EXT_IPC_CODEGEN_HELPERS_H_
 
 // A templated protobuf message decoder. Returns nullptr in case of failure.
 template <typename T>
@@ -45,4 +45,4 @@
       ::perfetto::ipc::Deferred<TReply>(::std::move(reply)));
 }
 
-#endif  // INCLUDE_PERFETTO_IPC_CODEGEN_HELPERS_H_
+#endif  // INCLUDE_PERFETTO_EXT_IPC_CODEGEN_HELPERS_H_
diff --git a/include/perfetto/ipc/deferred.h b/include/perfetto/ext/ipc/deferred.h
similarity index 95%
rename from include/perfetto/ipc/deferred.h
rename to include/perfetto/ext/ipc/deferred.h
index b1740b0..8b58920 100644
--- a/include/perfetto/ipc/deferred.h
+++ b/include/perfetto/ext/ipc/deferred.h
@@ -14,15 +14,15 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_IPC_DEFERRED_H_
-#define INCLUDE_PERFETTO_IPC_DEFERRED_H_
+#ifndef INCLUDE_PERFETTO_EXT_IPC_DEFERRED_H_
+#define INCLUDE_PERFETTO_EXT_IPC_DEFERRED_H_
 
 #include <functional>
 #include <memory>
 #include <utility>
 
-#include "perfetto/ipc/async_result.h"
-#include "perfetto/ipc/basic_types.h"
+#include "perfetto/ext/ipc/async_result.h"
+#include "perfetto/ext/ipc/basic_types.h"
 
 namespace perfetto {
 namespace ipc {
@@ -137,4 +137,4 @@
 }  // namespace ipc
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_IPC_DEFERRED_H_
+#endif  // INCLUDE_PERFETTO_EXT_IPC_DEFERRED_H_
diff --git a/include/perfetto/ipc/host.h b/include/perfetto/ext/ipc/host.h
similarity index 90%
rename from include/perfetto/ipc/host.h
rename to include/perfetto/ext/ipc/host.h
index a3abb99..2c02c29 100644
--- a/include/perfetto/ipc/host.h
+++ b/include/perfetto/ext/ipc/host.h
@@ -14,13 +14,13 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_IPC_HOST_H_
-#define INCLUDE_PERFETTO_IPC_HOST_H_
+#ifndef INCLUDE_PERFETTO_EXT_IPC_HOST_H_
+#define INCLUDE_PERFETTO_EXT_IPC_HOST_H_
 
 #include <memory>
 
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/ipc/basic_types.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/ipc/basic_types.h"
 
 namespace perfetto {
 
@@ -62,4 +62,4 @@
 }  // namespace ipc
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_IPC_HOST_H_
+#endif  // INCLUDE_PERFETTO_EXT_IPC_HOST_H_
diff --git a/include/perfetto/ipc/service.h b/include/perfetto/ext/ipc/service.h
similarity index 90%
rename from include/perfetto/ipc/service.h
rename to include/perfetto/ext/ipc/service.h
index 18dc1be..ea49834 100644
--- a/include/perfetto/ipc/service.h
+++ b/include/perfetto/ext/ipc/service.h
@@ -14,12 +14,12 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_IPC_SERVICE_H_
-#define INCLUDE_PERFETTO_IPC_SERVICE_H_
+#ifndef INCLUDE_PERFETTO_EXT_IPC_SERVICE_H_
+#define INCLUDE_PERFETTO_EXT_IPC_SERVICE_H_
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/ipc/client_info.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/ipc/client_info.h"
 
 namespace perfetto {
 namespace ipc {
@@ -71,4 +71,4 @@
 }  // namespace ipc
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_IPC_SERVICE_H_
+#endif  // INCLUDE_PERFETTO_EXT_IPC_SERVICE_H_
diff --git a/include/perfetto/ipc/service_descriptor.h b/include/perfetto/ext/ipc/service_descriptor.h
similarity index 90%
rename from include/perfetto/ipc/service_descriptor.h
rename to include/perfetto/ext/ipc/service_descriptor.h
index c4aca7e..97eb9bf 100644
--- a/include/perfetto/ipc/service_descriptor.h
+++ b/include/perfetto/ext/ipc/service_descriptor.h
@@ -14,16 +14,16 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_IPC_SERVICE_DESCRIPTOR_H_
-#define INCLUDE_PERFETTO_IPC_SERVICE_DESCRIPTOR_H_
+#ifndef INCLUDE_PERFETTO_EXT_IPC_SERVICE_DESCRIPTOR_H_
+#define INCLUDE_PERFETTO_EXT_IPC_SERVICE_DESCRIPTOR_H_
 
 #include <functional>
 #include <string>
 #include <utility>
 #include <vector>
 
-#include "perfetto/ipc/basic_types.h"
-#include "perfetto/ipc/deferred.h"
+#include "perfetto/ext/ipc/basic_types.h"
+#include "perfetto/ext/ipc/deferred.h"
 
 namespace perfetto {
 namespace ipc {
@@ -69,4 +69,4 @@
 }  // namespace ipc
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_IPC_SERVICE_DESCRIPTOR_H_
+#endif  // INCLUDE_PERFETTO_EXT_IPC_SERVICE_DESCRIPTOR_H_
diff --git a/include/perfetto/ipc/service_proxy.h b/include/perfetto/ext/ipc/service_proxy.h
similarity index 91%
rename from include/perfetto/ipc/service_proxy.h
rename to include/perfetto/ext/ipc/service_proxy.h
index a0107da..98f111c 100644
--- a/include/perfetto/ipc/service_proxy.h
+++ b/include/perfetto/ext/ipc/service_proxy.h
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_IPC_SERVICE_PROXY_H_
-#define INCLUDE_PERFETTO_IPC_SERVICE_PROXY_H_
+#ifndef INCLUDE_PERFETTO_EXT_IPC_SERVICE_PROXY_H_
+#define INCLUDE_PERFETTO_EXT_IPC_SERVICE_PROXY_H_
 
-#include "perfetto/ipc/basic_types.h"
+#include "perfetto/ext/ipc/basic_types.h"
 
 #include <assert.h>
 
@@ -26,8 +26,8 @@
 #include <memory>
 #include <string>
 
-#include "perfetto/base/weak_ptr.h"
-#include "perfetto/ipc/deferred.h"
+#include "perfetto/ext/base/weak_ptr.h"
+#include "perfetto/ext/ipc/deferred.h"
 
 namespace perfetto {
 namespace ipc {
@@ -98,4 +98,4 @@
 }  // namespace ipc
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_IPC_SERVICE_PROXY_H_
+#endif  // INCLUDE_PERFETTO_EXT_IPC_SERVICE_PROXY_H_
diff --git a/include/perfetto/traced/BUILD.gn b/include/perfetto/ext/traced/BUILD.gn
similarity index 90%
rename from include/perfetto/traced/BUILD.gn
rename to include/perfetto/ext/traced/BUILD.gn
index c0c9316..3e7df3a 100644
--- a/include/perfetto/traced/BUILD.gn
+++ b/include/perfetto/ext/traced/BUILD.gn
@@ -21,8 +21,8 @@
 
 source_set("sys_stats_counters") {
   deps = [
-    "../../../gn:default_deps",
-    "../../../protos/perfetto/common:zero",
+    "../../../../gn:default_deps",
+    "../../../../protos/perfetto/common:zero",
     "../base",
   ]
   sources = [
diff --git a/include/perfetto/traced/data_source_types.h b/include/perfetto/ext/traced/data_source_types.h
similarity index 91%
rename from include/perfetto/traced/data_source_types.h
rename to include/perfetto/ext/traced/data_source_types.h
index 6a76e50..4ed362b 100644
--- a/include/perfetto/traced/data_source_types.h
+++ b/include/perfetto/ext/traced/data_source_types.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_TRACED_DATA_SOURCE_TYPES_H_
-#define INCLUDE_PERFETTO_TRACED_DATA_SOURCE_TYPES_H_
+#ifndef INCLUDE_PERFETTO_EXT_TRACED_DATA_SOURCE_TYPES_H_
+#define INCLUDE_PERFETTO_EXT_TRACED_DATA_SOURCE_TYPES_H_
 
 #include <sys/stat.h>
 #include <sys/types.h>
@@ -60,4 +60,4 @@
 
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_TRACED_DATA_SOURCE_TYPES_H_
+#endif  // INCLUDE_PERFETTO_EXT_TRACED_DATA_SOURCE_TYPES_H_
diff --git a/include/perfetto/traced/sys_stats_counters.h b/include/perfetto/ext/traced/sys_stats_counters.h
similarity index 97%
rename from include/perfetto/traced/sys_stats_counters.h
rename to include/perfetto/ext/traced/sys_stats_counters.h
index 98d25af..48f2fcb 100644
--- a/include/perfetto/traced/sys_stats_counters.h
+++ b/include/perfetto/ext/traced/sys_stats_counters.h
@@ -14,11 +14,11 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_TRACED_SYS_STATS_COUNTERS_H_
-#define INCLUDE_PERFETTO_TRACED_SYS_STATS_COUNTERS_H_
+#ifndef INCLUDE_PERFETTO_EXT_TRACED_SYS_STATS_COUNTERS_H_
+#define INCLUDE_PERFETTO_EXT_TRACED_SYS_STATS_COUNTERS_H_
 
-#include "perfetto/base/utils.h"
 #include "perfetto/common/sys_stats_counters.pbzero.h"
+#include "perfetto/ext/base/utils.h"
 
 #include <vector>
 
@@ -232,4 +232,4 @@
 
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_TRACED_SYS_STATS_COUNTERS_H_
+#endif  // INCLUDE_PERFETTO_EXT_TRACED_SYS_STATS_COUNTERS_H_
diff --git a/include/perfetto/traced/traced.h b/include/perfetto/ext/traced/traced.h
similarity index 83%
rename from include/perfetto/traced/traced.h
rename to include/perfetto/ext/traced/traced.h
index dd58d63..042f9ec 100644
--- a/include/perfetto/traced/traced.h
+++ b/include/perfetto/ext/traced/traced.h
@@ -14,10 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_TRACED_TRACED_H_
-#define INCLUDE_PERFETTO_TRACED_TRACED_H_
-
-#include "perfetto/base/build_config.h"
+#ifndef INCLUDE_PERFETTO_EXT_TRACED_TRACED_H_
+#define INCLUDE_PERFETTO_EXT_TRACED_TRACED_H_
 
 namespace perfetto {
 
@@ -28,4 +26,4 @@
 
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_TRACED_TRACED_H_
+#endif  // INCLUDE_PERFETTO_EXT_TRACED_TRACED_H_
diff --git a/include/perfetto/tracing/core/BUILD.gn b/include/perfetto/ext/tracing/core/BUILD.gn
similarity index 100%
rename from include/perfetto/tracing/core/BUILD.gn
rename to include/perfetto/ext/tracing/core/BUILD.gn
diff --git a/include/perfetto/tracing/core/basic_types.h b/include/perfetto/ext/tracing/core/basic_types.h
similarity index 93%
rename from include/perfetto/tracing/core/basic_types.h
rename to include/perfetto/ext/tracing/core/basic_types.h
index a7bbdf2..cf05dd4 100644
--- a/include/perfetto/tracing/core/basic_types.h
+++ b/include/perfetto/ext/tracing/core/basic_types.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_TRACING_CORE_BASIC_TYPES_H_
-#define INCLUDE_PERFETTO_TRACING_CORE_BASIC_TYPES_H_
+#ifndef INCLUDE_PERFETTO_EXT_TRACING_CORE_BASIC_TYPES_H_
+#define INCLUDE_PERFETTO_EXT_TRACING_CORE_BASIC_TYPES_H_
 
 #include "perfetto/base/build_config.h"
 
@@ -80,4 +80,4 @@
 
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_TRACING_CORE_BASIC_TYPES_H_
+#endif  // INCLUDE_PERFETTO_EXT_TRACING_CORE_BASIC_TYPES_H_
diff --git a/include/perfetto/tracing/core/chrome_config.h b/include/perfetto/ext/tracing/core/chrome_config.h
similarity index 93%
rename from include/perfetto/tracing/core/chrome_config.h
rename to include/perfetto/ext/tracing/core/chrome_config.h
index 8dc87a6..f6a729e 100644
--- a/include/perfetto/tracing/core/chrome_config.h
+++ b/include/perfetto/ext/tracing/core/chrome_config.h
@@ -25,8 +25,8 @@
  * ./tools/gen_tracing_cpp_headers_from_protos
  */
 
-#ifndef INCLUDE_PERFETTO_TRACING_CORE_CHROME_CONFIG_H_
-#define INCLUDE_PERFETTO_TRACING_CORE_CHROME_CONFIG_H_
+#ifndef INCLUDE_PERFETTO_EXT_TRACING_CORE_CHROME_CONFIG_H_
+#define INCLUDE_PERFETTO_EXT_TRACING_CORE_CHROME_CONFIG_H_
 
 #include <stdint.h>
 #include <string>
@@ -80,4 +80,4 @@
 
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_TRACING_CORE_CHROME_CONFIG_H_
+#endif  // INCLUDE_PERFETTO_EXT_TRACING_CORE_CHROME_CONFIG_H_
diff --git a/include/perfetto/tracing/core/commit_data_request.h b/include/perfetto/ext/tracing/core/commit_data_request.h
similarity index 97%
rename from include/perfetto/tracing/core/commit_data_request.h
rename to include/perfetto/ext/tracing/core/commit_data_request.h
index b93576d..ca68a9e 100644
--- a/include/perfetto/tracing/core/commit_data_request.h
+++ b/include/perfetto/ext/tracing/core/commit_data_request.h
@@ -25,8 +25,8 @@
  * ./tools/gen_tracing_cpp_headers_from_protos
  */
 
-#ifndef INCLUDE_PERFETTO_TRACING_CORE_COMMIT_DATA_REQUEST_H_
-#define INCLUDE_PERFETTO_TRACING_CORE_COMMIT_DATA_REQUEST_H_
+#ifndef INCLUDE_PERFETTO_EXT_TRACING_CORE_COMMIT_DATA_REQUEST_H_
+#define INCLUDE_PERFETTO_EXT_TRACING_CORE_COMMIT_DATA_REQUEST_H_
 
 #include <stdint.h>
 #include <string>
@@ -238,4 +238,4 @@
 
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_TRACING_CORE_COMMIT_DATA_REQUEST_H_
+#endif  // INCLUDE_PERFETTO_EXT_TRACING_CORE_COMMIT_DATA_REQUEST_H_
diff --git a/include/perfetto/tracing/core/consumer.h b/include/perfetto/ext/tracing/core/consumer.h
similarity index 91%
rename from include/perfetto/tracing/core/consumer.h
rename to include/perfetto/ext/tracing/core/consumer.h
index cf92253..b8d722a 100644
--- a/include/perfetto/tracing/core/consumer.h
+++ b/include/perfetto/ext/tracing/core/consumer.h
@@ -14,14 +14,14 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_TRACING_CORE_CONSUMER_H_
-#define INCLUDE_PERFETTO_TRACING_CORE_CONSUMER_H_
+#ifndef INCLUDE_PERFETTO_EXT_TRACING_CORE_CONSUMER_H_
+#define INCLUDE_PERFETTO_EXT_TRACING_CORE_CONSUMER_H_
 
 #include <vector>
 
 #include "perfetto/base/export.h"
-#include "perfetto/tracing/core/basic_types.h"
-#include "perfetto/tracing/core/observable_events.h"
+#include "perfetto/ext/tracing/core/basic_types.h"
+#include "perfetto/ext/tracing/core/observable_events.h"
 
 namespace perfetto {
 
@@ -82,4 +82,4 @@
 
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_TRACING_CORE_CONSUMER_H_
+#endif  // INCLUDE_PERFETTO_EXT_TRACING_CORE_CONSUMER_H_
diff --git a/include/perfetto/tracing/core/data_source_config.h b/include/perfetto/ext/tracing/core/data_source_config.h
similarity index 94%
rename from include/perfetto/tracing/core/data_source_config.h
rename to include/perfetto/ext/tracing/core/data_source_config.h
index e0db801..c841101 100644
--- a/include/perfetto/tracing/core/data_source_config.h
+++ b/include/perfetto/ext/tracing/core/data_source_config.h
@@ -25,8 +25,8 @@
  * ./tools/gen_tracing_cpp_headers_from_protos
  */
 
-#ifndef INCLUDE_PERFETTO_TRACING_CORE_DATA_SOURCE_CONFIG_H_
-#define INCLUDE_PERFETTO_TRACING_CORE_DATA_SOURCE_CONFIG_H_
+#ifndef INCLUDE_PERFETTO_EXT_TRACING_CORE_DATA_SOURCE_CONFIG_H_
+#define INCLUDE_PERFETTO_EXT_TRACING_CORE_DATA_SOURCE_CONFIG_H_
 
 #include <stdint.h>
 #include <string>
@@ -35,8 +35,8 @@
 
 #include "perfetto/base/export.h"
 
-#include "perfetto/tracing/core/chrome_config.h"
-#include "perfetto/tracing/core/test_config.h"
+#include "perfetto/ext/tracing/core/chrome_config.h"
+#include "perfetto/ext/tracing/core/test_config.h"
 
 // Forward declarations for protobuf types.
 namespace perfetto {
@@ -160,4 +160,4 @@
 
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_TRACING_CORE_DATA_SOURCE_CONFIG_H_
+#endif  // INCLUDE_PERFETTO_EXT_TRACING_CORE_DATA_SOURCE_CONFIG_H_
diff --git a/include/perfetto/tracing/core/data_source_descriptor.h b/include/perfetto/ext/tracing/core/data_source_descriptor.h
similarity index 93%
rename from include/perfetto/tracing/core/data_source_descriptor.h
rename to include/perfetto/ext/tracing/core/data_source_descriptor.h
index 2653c8f..652261d 100644
--- a/include/perfetto/tracing/core/data_source_descriptor.h
+++ b/include/perfetto/ext/tracing/core/data_source_descriptor.h
@@ -25,8 +25,8 @@
  * ./tools/gen_tracing_cpp_headers_from_protos
  */
 
-#ifndef INCLUDE_PERFETTO_TRACING_CORE_DATA_SOURCE_DESCRIPTOR_H_
-#define INCLUDE_PERFETTO_TRACING_CORE_DATA_SOURCE_DESCRIPTOR_H_
+#ifndef INCLUDE_PERFETTO_EXT_TRACING_CORE_DATA_SOURCE_DESCRIPTOR_H_
+#define INCLUDE_PERFETTO_EXT_TRACING_CORE_DATA_SOURCE_DESCRIPTOR_H_
 
 #include <stdint.h>
 #include <string>
@@ -92,4 +92,4 @@
 
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_TRACING_CORE_DATA_SOURCE_DESCRIPTOR_H_
+#endif  // INCLUDE_PERFETTO_EXT_TRACING_CORE_DATA_SOURCE_DESCRIPTOR_H_
diff --git a/include/perfetto/tracing/core/observable_events.h b/include/perfetto/ext/tracing/core/observable_events.h
similarity index 95%
rename from include/perfetto/tracing/core/observable_events.h
rename to include/perfetto/ext/tracing/core/observable_events.h
index 8ce8378..2ba9da7 100644
--- a/include/perfetto/tracing/core/observable_events.h
+++ b/include/perfetto/ext/tracing/core/observable_events.h
@@ -25,8 +25,8 @@
  * ./tools/gen_tracing_cpp_headers_from_protos
  */
 
-#ifndef INCLUDE_PERFETTO_TRACING_CORE_OBSERVABLE_EVENTS_H_
-#define INCLUDE_PERFETTO_TRACING_CORE_OBSERVABLE_EVENTS_H_
+#ifndef INCLUDE_PERFETTO_EXT_TRACING_CORE_OBSERVABLE_EVENTS_H_
+#define INCLUDE_PERFETTO_EXT_TRACING_CORE_OBSERVABLE_EVENTS_H_
 
 #include <stdint.h>
 #include <string>
@@ -138,4 +138,4 @@
 
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_TRACING_CORE_OBSERVABLE_EVENTS_H_
+#endif  // INCLUDE_PERFETTO_EXT_TRACING_CORE_OBSERVABLE_EVENTS_H_
diff --git a/include/perfetto/tracing/core/producer.h b/include/perfetto/ext/tracing/core/producer.h
similarity index 96%
rename from include/perfetto/tracing/core/producer.h
rename to include/perfetto/ext/tracing/core/producer.h
index f383b7e..30775f7 100644
--- a/include/perfetto/tracing/core/producer.h
+++ b/include/perfetto/ext/tracing/core/producer.h
@@ -14,11 +14,11 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_TRACING_CORE_PRODUCER_H_
-#define INCLUDE_PERFETTO_TRACING_CORE_PRODUCER_H_
+#ifndef INCLUDE_PERFETTO_EXT_TRACING_CORE_PRODUCER_H_
+#define INCLUDE_PERFETTO_EXT_TRACING_CORE_PRODUCER_H_
 
 #include "perfetto/base/export.h"
-#include "perfetto/tracing/core/basic_types.h"
+#include "perfetto/ext/tracing/core/basic_types.h"
 
 namespace perfetto {
 
@@ -125,4 +125,4 @@
 
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_TRACING_CORE_PRODUCER_H_
+#endif  // INCLUDE_PERFETTO_EXT_TRACING_CORE_PRODUCER_H_
diff --git a/include/perfetto/tracing/core/shared_memory.h b/include/perfetto/ext/tracing/core/shared_memory.h
similarity index 90%
rename from include/perfetto/tracing/core/shared_memory.h
rename to include/perfetto/ext/tracing/core/shared_memory.h
index b2ca791..3c77e07 100644
--- a/include/perfetto/tracing/core/shared_memory.h
+++ b/include/perfetto/ext/tracing/core/shared_memory.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_TRACING_CORE_SHARED_MEMORY_H_
-#define INCLUDE_PERFETTO_TRACING_CORE_SHARED_MEMORY_H_
+#ifndef INCLUDE_PERFETTO_EXT_TRACING_CORE_SHARED_MEMORY_H_
+#define INCLUDE_PERFETTO_EXT_TRACING_CORE_SHARED_MEMORY_H_
 
 #include <stddef.h>
 
@@ -50,4 +50,4 @@
 
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_TRACING_CORE_SHARED_MEMORY_H_
+#endif  // INCLUDE_PERFETTO_EXT_TRACING_CORE_SHARED_MEMORY_H_
diff --git a/include/perfetto/tracing/core/shared_memory_abi.h b/include/perfetto/ext/tracing/core/shared_memory_abi.h
similarity index 98%
rename from include/perfetto/tracing/core/shared_memory_abi.h
rename to include/perfetto/ext/tracing/core/shared_memory_abi.h
index 7a5a14c..b92da2e 100644
--- a/include/perfetto/tracing/core/shared_memory_abi.h
+++ b/include/perfetto/ext/tracing/core/shared_memory_abi.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_TRACING_CORE_SHARED_MEMORY_ABI_H_
-#define INCLUDE_PERFETTO_TRACING_CORE_SHARED_MEMORY_ABI_H_
+#ifndef INCLUDE_PERFETTO_EXT_TRACING_CORE_SHARED_MEMORY_ABI_H_
+#define INCLUDE_PERFETTO_EXT_TRACING_CORE_SHARED_MEMORY_ABI_H_
 
 #include <stddef.h>
 #include <stdint.h>
@@ -578,4 +578,4 @@
 
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_TRACING_CORE_SHARED_MEMORY_ABI_H_
+#endif  // INCLUDE_PERFETTO_EXT_TRACING_CORE_SHARED_MEMORY_ABI_H_
diff --git a/include/perfetto/tracing/core/shared_memory_arbiter.h b/include/perfetto/ext/tracing/core/shared_memory_arbiter.h
similarity index 90%
rename from include/perfetto/tracing/core/shared_memory_arbiter.h
rename to include/perfetto/ext/tracing/core/shared_memory_arbiter.h
index 660014c..9c34e50 100644
--- a/include/perfetto/tracing/core/shared_memory_arbiter.h
+++ b/include/perfetto/ext/tracing/core/shared_memory_arbiter.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_TRACING_CORE_SHARED_MEMORY_ARBITER_H_
-#define INCLUDE_PERFETTO_TRACING_CORE_SHARED_MEMORY_ARBITER_H_
+#ifndef INCLUDE_PERFETTO_EXT_TRACING_CORE_SHARED_MEMORY_ARBITER_H_
+#define INCLUDE_PERFETTO_EXT_TRACING_CORE_SHARED_MEMORY_ARBITER_H_
 
 #include <stddef.h>
 
@@ -24,8 +24,8 @@
 #include <vector>
 
 #include "perfetto/base/export.h"
-#include "perfetto/tracing/core/basic_types.h"
-#include "perfetto/tracing/core/tracing_service.h"
+#include "perfetto/ext/tracing/core/basic_types.h"
+#include "perfetto/ext/tracing/core/tracing_service.h"
 
 namespace perfetto {
 
@@ -85,4 +85,4 @@
 
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_TRACING_CORE_SHARED_MEMORY_ARBITER_H_
+#endif  // INCLUDE_PERFETTO_EXT_TRACING_CORE_SHARED_MEMORY_ARBITER_H_
diff --git a/include/perfetto/tracing/core/slice.h b/include/perfetto/ext/tracing/core/slice.h
similarity index 92%
rename from include/perfetto/tracing/core/slice.h
rename to include/perfetto/ext/tracing/core/slice.h
index 954e58d..b2db3d0 100644
--- a/include/perfetto/tracing/core/slice.h
+++ b/include/perfetto/ext/tracing/core/slice.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_TRACING_CORE_SLICE_H_
-#define INCLUDE_PERFETTO_TRACING_CORE_SLICE_H_
+#ifndef INCLUDE_PERFETTO_EXT_TRACING_CORE_SLICE_H_
+#define INCLUDE_PERFETTO_EXT_TRACING_CORE_SLICE_H_
 
 #include <stddef.h>
 #include <string.h>
@@ -72,4 +72,4 @@
 
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_TRACING_CORE_SLICE_H_
+#endif  // INCLUDE_PERFETTO_EXT_TRACING_CORE_SLICE_H_
diff --git a/include/perfetto/tracing/core/startup_trace_writer.h b/include/perfetto/ext/tracing/core/startup_trace_writer.h
similarity index 94%
rename from include/perfetto/tracing/core/startup_trace_writer.h
rename to include/perfetto/ext/tracing/core/startup_trace_writer.h
index 9e3642a..700af74 100644
--- a/include/perfetto/tracing/core/startup_trace_writer.h
+++ b/include/perfetto/ext/tracing/core/startup_trace_writer.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_TRACING_CORE_STARTUP_TRACE_WRITER_H_
-#define INCLUDE_PERFETTO_TRACING_CORE_STARTUP_TRACE_WRITER_H_
+#ifndef INCLUDE_PERFETTO_EXT_TRACING_CORE_STARTUP_TRACE_WRITER_H_
+#define INCLUDE_PERFETTO_EXT_TRACING_CORE_STARTUP_TRACE_WRITER_H_
 
 #include <memory>
 #include <mutex>
@@ -23,13 +23,13 @@
 #include <vector>
 
 #include "perfetto/base/export.h"
-#include "perfetto/base/optional.h"
-#include "perfetto/base/thread_checker.h"
+#include "perfetto/ext/base/optional.h"
+#include "perfetto/ext/base/thread_checker.h"
+#include "perfetto/ext/tracing/core/basic_types.h"
+#include "perfetto/ext/tracing/core/trace_writer.h"
 #include "perfetto/protozero/message_handle.h"
 #include "perfetto/protozero/scattered_heap_buffer.h"
 #include "perfetto/protozero/scattered_stream_writer.h"
-#include "perfetto/tracing/core/basic_types.h"
-#include "perfetto/tracing/core/trace_writer.h"
 
 namespace perfetto {
 
@@ -180,4 +180,4 @@
 
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_TRACING_CORE_STARTUP_TRACE_WRITER_H_
+#endif  // INCLUDE_PERFETTO_EXT_TRACING_CORE_STARTUP_TRACE_WRITER_H_
diff --git a/include/perfetto/tracing/core/startup_trace_writer_registry.h b/include/perfetto/ext/tracing/core/startup_trace_writer_registry.h
similarity index 93%
rename from include/perfetto/tracing/core/startup_trace_writer_registry.h
rename to include/perfetto/ext/tracing/core/startup_trace_writer_registry.h
index 0cd035d..cdd7931 100644
--- a/include/perfetto/tracing/core/startup_trace_writer_registry.h
+++ b/include/perfetto/ext/tracing/core/startup_trace_writer_registry.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_TRACING_CORE_STARTUP_TRACE_WRITER_REGISTRY_H_
-#define INCLUDE_PERFETTO_TRACING_CORE_STARTUP_TRACE_WRITER_REGISTRY_H_
+#ifndef INCLUDE_PERFETTO_EXT_TRACING_CORE_STARTUP_TRACE_WRITER_REGISTRY_H_
+#define INCLUDE_PERFETTO_EXT_TRACING_CORE_STARTUP_TRACE_WRITER_REGISTRY_H_
 
 #include <functional>
 #include <memory>
@@ -24,8 +24,8 @@
 #include <vector>
 
 #include "perfetto/base/export.h"
-#include "perfetto/base/weak_ptr.h"
-#include "perfetto/tracing/core/basic_types.h"
+#include "perfetto/ext/base/weak_ptr.h"
+#include "perfetto/ext/tracing/core/basic_types.h"
 
 namespace perfetto {
 
@@ -140,4 +140,4 @@
 
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_TRACING_CORE_STARTUP_TRACE_WRITER_REGISTRY_H_
+#endif  // INCLUDE_PERFETTO_EXT_TRACING_CORE_STARTUP_TRACE_WRITER_REGISTRY_H_
diff --git a/include/perfetto/tracing/core/test_config.h b/include/perfetto/ext/tracing/core/test_config.h
similarity index 97%
rename from include/perfetto/tracing/core/test_config.h
rename to include/perfetto/ext/tracing/core/test_config.h
index 17caa70..1033f18 100644
--- a/include/perfetto/tracing/core/test_config.h
+++ b/include/perfetto/ext/tracing/core/test_config.h
@@ -25,8 +25,8 @@
  * ./tools/gen_tracing_cpp_headers_from_protos
  */
 
-#ifndef INCLUDE_PERFETTO_TRACING_CORE_TEST_CONFIG_H_
-#define INCLUDE_PERFETTO_TRACING_CORE_TEST_CONFIG_H_
+#ifndef INCLUDE_PERFETTO_EXT_TRACING_CORE_TEST_CONFIG_H_
+#define INCLUDE_PERFETTO_EXT_TRACING_CORE_TEST_CONFIG_H_
 
 #include <stdint.h>
 #include <string>
@@ -184,4 +184,4 @@
 
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_TRACING_CORE_TEST_CONFIG_H_
+#endif  // INCLUDE_PERFETTO_EXT_TRACING_CORE_TEST_CONFIG_H_
diff --git a/include/perfetto/tracing/core/trace_config.h b/include/perfetto/ext/tracing/core/trace_config.h
similarity index 98%
rename from include/perfetto/tracing/core/trace_config.h
rename to include/perfetto/ext/tracing/core/trace_config.h
index 284a84b..7aaa95b 100644
--- a/include/perfetto/tracing/core/trace_config.h
+++ b/include/perfetto/ext/tracing/core/trace_config.h
@@ -25,8 +25,8 @@
  * ./tools/gen_tracing_cpp_headers_from_protos
  */
 
-#ifndef INCLUDE_PERFETTO_TRACING_CORE_TRACE_CONFIG_H_
-#define INCLUDE_PERFETTO_TRACING_CORE_TRACE_CONFIG_H_
+#ifndef INCLUDE_PERFETTO_EXT_TRACING_CORE_TRACE_CONFIG_H_
+#define INCLUDE_PERFETTO_EXT_TRACING_CORE_TRACE_CONFIG_H_
 
 #include <stdint.h>
 #include <string>
@@ -35,7 +35,7 @@
 
 #include "perfetto/base/export.h"
 
-#include "perfetto/tracing/core/data_source_config.h"
+#include "perfetto/ext/tracing/core/data_source_config.h"
 
 // Forward declarations for protobuf types.
 namespace perfetto {
@@ -601,4 +601,4 @@
 
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_TRACING_CORE_TRACE_CONFIG_H_
+#endif  // INCLUDE_PERFETTO_EXT_TRACING_CORE_TRACE_CONFIG_H_
diff --git a/include/perfetto/tracing/core/trace_packet.h b/include/perfetto/ext/tracing/core/trace_packet.h
similarity index 94%
rename from include/perfetto/tracing/core/trace_packet.h
rename to include/perfetto/ext/tracing/core/trace_packet.h
index cdf61aa..308a2ef 100644
--- a/include/perfetto/tracing/core/trace_packet.h
+++ b/include/perfetto/ext/tracing/core/trace_packet.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_TRACING_CORE_TRACE_PACKET_H_
-#define INCLUDE_PERFETTO_TRACING_CORE_TRACE_PACKET_H_
+#ifndef INCLUDE_PERFETTO_EXT_TRACING_CORE_TRACE_PACKET_H_
+#define INCLUDE_PERFETTO_EXT_TRACING_CORE_TRACE_PACKET_H_
 
 #include <stddef.h>
 #include <memory>
@@ -24,7 +24,7 @@
 #include <google/protobuf/io/zero_copy_stream.h>
 #include "perfetto/base/export.h"
 #include "perfetto/base/logging.h"
-#include "perfetto/tracing/core/slice.h"
+#include "perfetto/ext/tracing/core/slice.h"
 
 namespace perfetto {
 
@@ -103,4 +103,4 @@
 
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_TRACING_CORE_TRACE_PACKET_H_
+#endif  // INCLUDE_PERFETTO_EXT_TRACING_CORE_TRACE_PACKET_H_
diff --git a/include/perfetto/tracing/core/trace_stats.h b/include/perfetto/ext/tracing/core/trace_stats.h
similarity index 97%
rename from include/perfetto/tracing/core/trace_stats.h
rename to include/perfetto/ext/tracing/core/trace_stats.h
index 9eaa86d..184227a 100644
--- a/include/perfetto/tracing/core/trace_stats.h
+++ b/include/perfetto/ext/tracing/core/trace_stats.h
@@ -25,8 +25,8 @@
  * ./tools/gen_tracing_cpp_headers_from_protos
  */
 
-#ifndef INCLUDE_PERFETTO_TRACING_CORE_TRACE_STATS_H_
-#define INCLUDE_PERFETTO_TRACING_CORE_TRACE_STATS_H_
+#ifndef INCLUDE_PERFETTO_EXT_TRACING_CORE_TRACE_STATS_H_
+#define INCLUDE_PERFETTO_EXT_TRACING_CORE_TRACE_STATS_H_
 
 #include <stdint.h>
 #include <string>
@@ -225,4 +225,4 @@
 
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_TRACING_CORE_TRACE_STATS_H_
+#endif  // INCLUDE_PERFETTO_EXT_TRACING_CORE_TRACE_STATS_H_
diff --git a/include/perfetto/tracing/core/trace_writer.h b/include/perfetto/ext/tracing/core/trace_writer.h
similarity index 93%
rename from include/perfetto/tracing/core/trace_writer.h
rename to include/perfetto/ext/tracing/core/trace_writer.h
index 8df1567..7af1bbf 100644
--- a/include/perfetto/tracing/core/trace_writer.h
+++ b/include/perfetto/ext/tracing/core/trace_writer.h
@@ -14,15 +14,15 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_TRACING_CORE_TRACE_WRITER_H_
-#define INCLUDE_PERFETTO_TRACING_CORE_TRACE_WRITER_H_
+#ifndef INCLUDE_PERFETTO_EXT_TRACING_CORE_TRACE_WRITER_H_
+#define INCLUDE_PERFETTO_EXT_TRACING_CORE_TRACE_WRITER_H_
 
 #include <functional>
 
 #include "perfetto/base/export.h"
+#include "perfetto/ext/tracing/core/basic_types.h"
 #include "perfetto/protozero/message_handle.h"
-#include "perfetto/public/trace_writer_base.h"
-#include "perfetto/tracing/core/basic_types.h"
+#include "perfetto/tracing/trace_writer_base.h"
 
 namespace perfetto {
 
@@ -95,4 +95,4 @@
 
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_TRACING_CORE_TRACE_WRITER_H_
+#endif  // INCLUDE_PERFETTO_EXT_TRACING_CORE_TRACE_WRITER_H_
diff --git a/include/perfetto/tracing/core/tracing_service.h b/include/perfetto/ext/tracing/core/tracing_service.h
similarity index 97%
rename from include/perfetto/tracing/core/tracing_service.h
rename to include/perfetto/ext/tracing/core/tracing_service.h
index fd10957..c24e629 100644
--- a/include/perfetto/tracing/core/tracing_service.h
+++ b/include/perfetto/ext/tracing/core/tracing_service.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_TRACING_CORE_TRACING_SERVICE_H_
-#define INCLUDE_PERFETTO_TRACING_CORE_TRACING_SERVICE_H_
+#ifndef INCLUDE_PERFETTO_EXT_TRACING_CORE_TRACING_SERVICE_H_
+#define INCLUDE_PERFETTO_EXT_TRACING_CORE_TRACING_SERVICE_H_
 
 #include <stdint.h>
 
@@ -24,9 +24,9 @@
 #include <vector>
 
 #include "perfetto/base/export.h"
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/tracing/core/basic_types.h"
-#include "perfetto/tracing/core/shared_memory.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/tracing/core/basic_types.h"
+#include "perfetto/ext/tracing/core/shared_memory.h"
 
 namespace perfetto {
 
@@ -292,4 +292,4 @@
 
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_TRACING_CORE_TRACING_SERVICE_H_
+#endif  // INCLUDE_PERFETTO_EXT_TRACING_CORE_TRACING_SERVICE_H_
diff --git a/include/perfetto/tracing/ipc/BUILD.gn b/include/perfetto/ext/tracing/ipc/BUILD.gn
similarity index 100%
rename from include/perfetto/tracing/ipc/BUILD.gn
rename to include/perfetto/ext/tracing/ipc/BUILD.gn
diff --git a/include/perfetto/tracing/ipc/consumer_ipc_client.h b/include/perfetto/ext/tracing/ipc/consumer_ipc_client.h
similarity index 86%
rename from include/perfetto/tracing/ipc/consumer_ipc_client.h
rename to include/perfetto/ext/tracing/ipc/consumer_ipc_client.h
index 85ca354..b39d17c 100644
--- a/include/perfetto/tracing/ipc/consumer_ipc_client.h
+++ b/include/perfetto/ext/tracing/ipc/consumer_ipc_client.h
@@ -14,13 +14,13 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_TRACING_IPC_CONSUMER_IPC_CLIENT_H_
-#define INCLUDE_PERFETTO_TRACING_IPC_CONSUMER_IPC_CLIENT_H_
+#ifndef INCLUDE_PERFETTO_EXT_TRACING_IPC_CONSUMER_IPC_CLIENT_H_
+#define INCLUDE_PERFETTO_EXT_TRACING_IPC_CONSUMER_IPC_CLIENT_H_
 
 #include <memory>
 #include <string>
 
-#include "perfetto/tracing/core/tracing_service.h"
+#include "perfetto/ext/tracing/core/tracing_service.h"
 
 namespace perfetto {
 
@@ -50,4 +50,4 @@
 
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_TRACING_IPC_CONSUMER_IPC_CLIENT_H_
+#endif  // INCLUDE_PERFETTO_EXT_TRACING_IPC_CONSUMER_IPC_CLIENT_H_
diff --git a/include/perfetto/tracing/ipc/producer_ipc_client.h b/include/perfetto/ext/tracing/ipc/producer_ipc_client.h
similarity index 88%
rename from include/perfetto/tracing/ipc/producer_ipc_client.h
rename to include/perfetto/ext/tracing/ipc/producer_ipc_client.h
index 533c97f..6f6a63e 100644
--- a/include/perfetto/tracing/ipc/producer_ipc_client.h
+++ b/include/perfetto/ext/tracing/ipc/producer_ipc_client.h
@@ -14,13 +14,13 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_TRACING_IPC_PRODUCER_IPC_CLIENT_H_
-#define INCLUDE_PERFETTO_TRACING_IPC_PRODUCER_IPC_CLIENT_H_
+#ifndef INCLUDE_PERFETTO_EXT_TRACING_IPC_PRODUCER_IPC_CLIENT_H_
+#define INCLUDE_PERFETTO_EXT_TRACING_IPC_PRODUCER_IPC_CLIENT_H_
 
 #include <memory>
 #include <string>
 
-#include "perfetto/tracing/core/tracing_service.h"
+#include "perfetto/ext/tracing/core/tracing_service.h"
 
 namespace perfetto {
 
@@ -55,4 +55,4 @@
 
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_TRACING_IPC_PRODUCER_IPC_CLIENT_H_
+#endif  // INCLUDE_PERFETTO_EXT_TRACING_IPC_PRODUCER_IPC_CLIENT_H_
diff --git a/include/perfetto/tracing/ipc/service_ipc_host.h b/include/perfetto/ext/tracing/ipc/service_ipc_host.h
similarity index 87%
rename from include/perfetto/tracing/ipc/service_ipc_host.h
rename to include/perfetto/ext/tracing/ipc/service_ipc_host.h
index eeec568..86915af 100644
--- a/include/perfetto/tracing/ipc/service_ipc_host.h
+++ b/include/perfetto/ext/tracing/ipc/service_ipc_host.h
@@ -14,13 +14,13 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_TRACING_IPC_SERVICE_IPC_HOST_H_
-#define INCLUDE_PERFETTO_TRACING_IPC_SERVICE_IPC_HOST_H_
+#ifndef INCLUDE_PERFETTO_EXT_TRACING_IPC_SERVICE_IPC_HOST_H_
+#define INCLUDE_PERFETTO_EXT_TRACING_IPC_SERVICE_IPC_HOST_H_
 
 #include <memory>
 
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/tracing/core/basic_types.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/tracing/core/basic_types.h"
 
 namespace perfetto {
 namespace base {
@@ -62,4 +62,4 @@
 
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_TRACING_IPC_SERVICE_IPC_HOST_H_
+#endif  // INCLUDE_PERFETTO_EXT_TRACING_IPC_SERVICE_IPC_HOST_H_
diff --git a/include/perfetto/protozero/proto_decoder.h b/include/perfetto/protozero/proto_decoder.h
index 8089acf..fb65261 100644
--- a/include/perfetto/protozero/proto_decoder.h
+++ b/include/perfetto/protozero/proto_decoder.h
@@ -22,9 +22,8 @@
 #include <memory>
 #include <vector>
 
+#include "perfetto/base/compiler.h"
 #include "perfetto/base/logging.h"
-#include "perfetto/base/string_view.h"
-#include "perfetto/base/utils.h"
 #include "perfetto/protozero/field.h"
 #include "perfetto/protozero/proto_utils.h"
 
diff --git a/include/perfetto/protozero/proto_utils.h b/include/perfetto/protozero/proto_utils.h
index 9dd5278..0ea5d5e 100644
--- a/include/perfetto/protozero/proto_utils.h
+++ b/include/perfetto/protozero/proto_utils.h
@@ -23,7 +23,6 @@
 #include <type_traits>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/utils.h"
 
 namespace protozero {
 namespace proto_utils {
diff --git a/include/perfetto/protozero/scattered_stream_writer.h b/include/perfetto/protozero/scattered_stream_writer.h
index 175a0aa..c508ad9 100644
--- a/include/perfetto/protozero/scattered_stream_writer.h
+++ b/include/perfetto/protozero/scattered_stream_writer.h
@@ -22,8 +22,8 @@
 #include <stdint.h>
 #include <string.h>
 
+#include "perfetto/base/compiler.h"
 #include "perfetto/base/export.h"
-#include "perfetto/base/utils.h"
 #include "perfetto/protozero/contiguous_memory_range.h"
 
 namespace protozero {
diff --git a/include/perfetto/public/BUILD.gn b/include/perfetto/public/BUILD.gn
index 31c0175..0ec88f1 100644
--- a/include/perfetto/public/BUILD.gn
+++ b/include/perfetto/public/BUILD.gn
@@ -13,24 +13,7 @@
 # limitations under the License.
 
 source_set("public") {
-  deps = [
-    "../../../gn:default_deps",
-  ]
-  public_deps = [
-    "../../../protos/perfetto/trace:zero",
-    "../protozero",
-  ]
   sources = [
-    "compiler.h",
-    "data_source.h",
-    "internal/basic_types.h",
-    "internal/data_source_internal.h",
-    "internal/tracing_muxer.h",
-    "internal/tracing_tls.h",
-    "locked_handle.h",
-    "platform.h",
-    "trace_writer_base.h",
-    "tracing.h",
-    "tracing_backend.h",
+    "consumer_api.h",
   ]
 }
diff --git a/include/perfetto/public/README.md b/include/perfetto/public/README.md
index 48d485a..e26e9c3 100644
--- a/include/perfetto/public/README.md
+++ b/include/perfetto/public/README.md
@@ -1,120 +1,3 @@
-# Perfetto public API surface
-
-**This API surface is not stable yet, don't depend on it**
-
-This folder contains the public perfetto API headers. This allows an app to
-inject trace events into perfetto with ~10 lines of code (see
-api_usage_example.cc).
-
-Headers in this folder must be hermetic. No other perfetto header must be leaked
-from the includes. This applies also to the public/internal directory.
-
-What is a client supposed to do to use tracing? See example below in this page.
-
-
-Source code layout: what goes where?
-------------------------------------
-
-There are four "public" directories in the perfetto codebase:
-
-**include/perfetto/public (this folder):**
-This is the only directory that embedders are allowed to access and depend on.
-This contains classes to: (i) use tracing; (ii) extend the tracing internals
-(i.e. implement the Platform).
-
-Rules:
-- This directory should contain only .h files and no .cc files.
-- Corresponding .cc files go into `src/public`.
-- .h files in here can depend only on:
-  (i) `include/perfetto/public/`,
-  (ii) `include/perfetto/public/internal/`.
-  (iii) `include/perfetto/protozero/`.
-
-**src/public:**
-Contains the .cc files that implement matching headers in
-`include/perfetto/public`. They can freely include other parts of the perfetto
-codebase outside of /public/ because /src/ is not exposed to clients.
-
-**include/perfetto/public/internal:**
-This directory contains headers that are required to implement the public-facing
-tracing API efficiently but that are not part of the API surface.
-In an ideal world there would be no need of these headers and everything would
-be handle via forward-declarations and PIMPL patterns. Unfortunately, however,
-PIMPL cannot be used for inline functions, where the implementation needs to be
-exposed in the public headers, which in turn need to depend on the memory layout
-of structs/classes.
-
-Rules:
-- All classes / types declared in this folder must be wrapped in the
-  ::perfetto::internal namespace.
-- Both public and internal .h headers must not pull other perfetto headers
-  (even base/) outside of /public/ (with the exclusion of protozero, which
-  should be moved to public as well soon).
-- .cc files instead can depend on other perfetto classes, as well as .h headers
-  located in src/public (as opposite to include/public).
-- Embedders must not depend or rely on the declarations of internal types.
-- Internal types cannot be used as input, output or return arguments of public
-  API functions.
-- Internal types cannot be directly exposed to virtual methods that are
-  intended to be called or overridden by the embedder (e.g. TracingBackend's
-  methods). For those the solution is to create a matching non-internal base
-  class with a static factory method.
-- We don't guarantee binary compatibility between versions (i.e. this client
-  library can only be statically linked) but we guarantee source-level
-  compatibility and ABI of the UNIX socket and shared memory buffers.
-
-**src/public/internal:**
-This directory contains .cc files that implement classes defined in
-`include/perfetto/public/internal` headers.
-
-
-Usage example
--------------
-1. Call `perfetto::Tracing::Initialize(...)` once, when starting the app.
-  While doing so the app can chose the tracing model:
-  - Fully in-process: the service runs in a thread within the same process.
-  - System: connects to the traced system daemon via a UNIX socket. This allows
-    the app to join system-wide tracing sessions. This is available only on
-    Linux/Android/MacOS for now.
-  - Private dedicated process: similar to the in-process case, but the service
-    runs in a dedicated process rather than a thread. This is for performance,
-    stability and security isolation. Also, this is not implemented yet.
-  - Custom backend: this is for peculiar cases (mainly chromium) where the
-    embedder is multi-process but wants to use a different IPC mechanism. The
-    embedder needs to deal with the larger and clunkier set of perfetto APIs.
-    Reach out to the team before using this mode. It's very unlikely you need
-    this unless you are a project rolled into chromium.
-
-2. Define and register one or more data sources, like this:
-```cpp
-  #include "perfetto/public/tracing.h"
-
-  class MyDataSource : public perfetto::DataSource<MyDataSource> {
-    void OnSetup(SetupArgs) override {}
-    void OnStart(StartArgs) override {}
-    void OnStop(StopArgs) override {}
-  };
-  ...
-  PERFETTO_DEFINE_DATA_SOURCE_STATIC_MEMBERS(MyDataSource);
-  ...
-  perfetto::DataSourceDescriptor dsd;
-  dsd.set_name("my_data_source");
-  MyDataSource::Register(dsd);
-```
-
-3. Optionally define a new proto schema in `trace_packet.proto`
-
-4. Emit trace events
-```cpp
-  MyDataSource::Trace([](TraceContext ctx) {
-      auto trace_packet = ctx.NewTracePacket();
-      ctx.set_timestamp(...);
-      ctx.set_my_custom_proto(...);
-  });
-```
-
-The passed labmda will be called only if tracing is enabled and the data source
-was enabled in the trace config. It might be called multiple times, one for each
-active tracing session, in case of concurrent tracing sessions (or even within a
-single tracing session, if the data source is listed twice in the trace config).
-
+This folder contains the deprecated consumer API. The only client of this
+is iorap in the Android tree. For any new use-case use the new Perfetto Client
+API under include/perfetto/tracing. 
\ No newline at end of file
diff --git a/include/perfetto/public/compiler.h b/include/perfetto/public/compiler.h
deleted file mode 100644
index d659df3..0000000
--- a/include/perfetto/public/compiler.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * 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.
- */
-
-// TODO(primiano): move bunch of include/base/ classes into public once we reach
-// a quieter period with release branches.
-
-#ifndef INCLUDE_PERFETTO_PUBLIC_COMPILER_H_
-#define INCLUDE_PERFETTO_PUBLIC_COMPILER_H_
-
-#ifndef PERFETTO_LIKELY
-#define PERFETTO_LIKELY(_x) __builtin_expect(!!(_x), 1)
-#endif
-
-#ifndef PERFETTO_UNLIKELY
-#define PERFETTO_UNLIKELY(_x) __builtin_expect(!!(_x), 0)
-#endif
-
-#endif  // INCLUDE_PERFETTO_PUBLIC_COMPILER_H_
diff --git a/include/perfetto/trace_processor/BUILD.gn b/include/perfetto/trace_processor/BUILD.gn
index e887327..90200fa 100644
--- a/include/perfetto/trace_processor/BUILD.gn
+++ b/include/perfetto/trace_processor/BUILD.gn
@@ -15,6 +15,7 @@
 source_set("trace_processor") {
   sources = [
     "basic_types.h",
+    "status.h",
     "trace_processor.h",
   ]
 }
diff --git a/include/perfetto/trace_processor/basic_types.h b/include/perfetto/trace_processor/basic_types.h
index 82cd65b..76d14d6 100644
--- a/include/perfetto/trace_processor/basic_types.h
+++ b/include/perfetto/trace_processor/basic_types.h
@@ -17,13 +17,11 @@
 #ifndef INCLUDE_PERFETTO_TRACE_PROCESSOR_BASIC_TYPES_H_
 #define INCLUDE_PERFETTO_TRACE_PROCESSOR_BASIC_TYPES_H_
 
+#include <assert.h>
 #include <stdarg.h>
 #include <stdint.h>
 #include <string>
 
-#include "perfetto/base/logging.h"
-#include "perfetto/base/optional.h"
-
 namespace perfetto {
 namespace trace_processor {
 
@@ -42,7 +40,7 @@
   };
 
   double AsDouble() {
-    PERFETTO_CHECK(type == kDouble);
+    assert(type == kDouble);
     return double_value;
   }
 
@@ -60,61 +58,6 @@
   Type type = kNull;
 };
 
-// Status and related methods are inside util for consistency with embedders of
-// trace processor.
-namespace util {
-
-// Represents either the success or the failure message of a function.
-// This can used as the return type of functions which would usually return an
-// bool for success or int for errno but also wants to add some string context
-// (ususally for logging).
-class Status {
- public:
-  Status() = default;
-  explicit Status(std::string error) : message_(std::move(error)) {}
-
-  // Copy operations.
-  Status(const Status&) = default;
-  Status& operator=(const Status&) = default;
-
-  // Move operations. The moved-from state is valid but unspecified.
-  Status(Status&&) noexcept = default;
-  Status& operator=(Status&&) = default;
-
-  bool ok() const { return !message_.has_value(); }
-
-  // Only valid to call when this message has an Err status (i.e. ok() returned
-  // false or operator bool() returned true).
-  const std::string& message() const { return message_.value(); }
-
-  // Only valid to call when this message has an Err status (i.e. ok() returned
-  // false or operator bool() returned true).
-  const char* c_message() const { return message_.value().c_str(); }
-
- private:
-  base::Optional<std::string> message_;
-};
-
-// Returns a status object which represents the Ok status.
-inline Status OkStatus() {
-  return Status();
-}
-
-// Returns a status object which represents an error with the given message
-// formatted using printf.
-__attribute__((__format__(__printf__, 1, 2))) inline Status ErrStatus(
-    const char* format,
-    ...) {
-  va_list ap;
-  va_start(ap, format);
-
-  char buffer[1024];
-  vsnprintf(buffer, sizeof(buffer), format, ap);
-  return Status(std::string(buffer));
-}
-
-}  // namespace util
-
 }  // namespace trace_processor
 }  // namespace perfetto
 
diff --git a/include/perfetto/trace_processor/status.h b/include/perfetto/trace_processor/status.h
new file mode 100644
index 0000000..934c01b
--- /dev/null
+++ b/include/perfetto/trace_processor/status.h
@@ -0,0 +1,84 @@
+/*
+ * 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_TRACE_PROCESSOR_STATUS_H_
+#define INCLUDE_PERFETTO_TRACE_PROCESSOR_STATUS_H_
+
+#include <stdarg.h>
+#include <string>
+
+namespace perfetto {
+namespace trace_processor {
+
+// Status and related methods are inside util for consistency with embedders of
+// trace processor.
+namespace util {
+
+// Represents either the success or the failure message of a function.
+// This can used as the return type of functions which would usually return an
+// bool for success or int for errno but also wants to add some string context
+// (ususally for logging).
+class Status {
+ public:
+  Status() : ok_(true) {}
+  explicit Status(std::string error) : ok_(false), message_(std::move(error)) {}
+
+  // Copy operations.
+  Status(const Status&) = default;
+  Status& operator=(const Status&) = default;
+
+  // Move operations. The moved-from state is valid but unspecified.
+  Status(Status&&) noexcept = default;
+  Status& operator=(Status&&) = default;
+
+  bool ok() const { return ok_; }
+
+  // Only valid to call when this message has an Err status (i.e. ok() returned
+  // false or operator bool() returned true).
+  const std::string& message() const { return message_; }
+
+  // Only valid to call when this message has an Err status (i.e. ok() returned
+  // false or operator bool() returned true).
+  const char* c_message() const { return message_.c_str(); }
+
+ private:
+  bool ok_ = false;
+  std::string message_;
+};
+
+// Returns a status object which represents the Ok status.
+inline Status OkStatus() {
+  return Status();
+}
+
+// Returns a status object which represents an error with the given message
+// formatted using printf.
+__attribute__((__format__(__printf__, 1, 2))) inline Status ErrStatus(
+    const char* format,
+    ...) {
+  va_list ap;
+  va_start(ap, format);
+
+  char buffer[1024];
+  vsnprintf(buffer, sizeof(buffer), format, ap);
+  return Status(std::string(buffer));
+}
+
+}  // namespace util
+}  // namespace trace_processor
+}  // namespace perfetto
+
+#endif  // INCLUDE_PERFETTO_TRACE_PROCESSOR_STATUS_H_
diff --git a/include/perfetto/trace_processor/trace_processor.h b/include/perfetto/trace_processor/trace_processor.h
index 2c8e4a3..2ab067f 100644
--- a/include/perfetto/trace_processor/trace_processor.h
+++ b/include/perfetto/trace_processor/trace_processor.h
@@ -17,13 +17,11 @@
 #ifndef INCLUDE_PERFETTO_TRACE_PROCESSOR_TRACE_PROCESSOR_H_
 #define INCLUDE_PERFETTO_TRACE_PROCESSOR_TRACE_PROCESSOR_H_
 
-#include <functional>
 #include <memory>
-#include <unordered_map>
 #include <vector>
 
-#include "perfetto/base/optional.h"
 #include "perfetto/trace_processor/basic_types.h"
+#include "perfetto/trace_processor/status.h"
 
 namespace perfetto {
 
diff --git a/include/perfetto/tracing.h b/include/perfetto/tracing.h
new file mode 100644
index 0000000..6e0abef
--- /dev/null
+++ b/include/perfetto/tracing.h
@@ -0,0 +1,31 @@
+/*
+ * 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_H_
+#define INCLUDE_PERFETTO_TRACING_H_
+
+// This headers wraps all the headers necessary to use the public Perfetto
+// Tracing API. Embedders should preferrably use this one header to avoid having
+// to figure out the various set of header required for each class.
+// The only exception to this should be large projects where build time is a
+// concern (e.g. chromium), which migh prefer sticking to strict IWYU.
+
+#include "perfetto/tracing/data_source.h"
+#include "perfetto/tracing/platform.h"
+#include "perfetto/tracing/tracing.h"
+#include "perfetto/tracing/tracing_backend.h"
+
+#endif  // INCLUDE_PERFETTO_TRACING_H_
diff --git a/include/perfetto/traced/BUILD.gn b/include/perfetto/tracing/BUILD.gn
similarity index 62%
copy from include/perfetto/traced/BUILD.gn
copy to include/perfetto/tracing/BUILD.gn
index c0c9316..5f8ff06 100644
--- a/include/perfetto/traced/BUILD.gn
+++ b/include/perfetto/tracing/BUILD.gn
@@ -1,4 +1,4 @@
-# Copyright (C) 2017 The Android Open Source Project
+# 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.
@@ -12,20 +12,17 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-source_set("traced") {
+source_set("tracing") {
   sources = [
-    "data_source_types.h",
-    "traced.h",
-  ]
-}
-
-source_set("sys_stats_counters") {
-  deps = [
-    "../../../gn:default_deps",
-    "../../../protos/perfetto/common:zero",
-    "../base",
-  ]
-  sources = [
-    "sys_stats_counters.h",
+    "data_source.h",
+    "internal/basic_types.h",
+    "internal/data_source_internal.h",
+    "internal/tracing_muxer.h",
+    "internal/tracing_tls.h",
+    "locked_handle.h",
+    "platform.h",
+    "trace_writer_base.h",
+    "tracing.h",
+    "tracing_backend.h",
   ]
 }
diff --git a/include/perfetto/public/data_source.h b/include/perfetto/tracing/data_source.h
similarity index 96%
rename from include/perfetto/public/data_source.h
rename to include/perfetto/tracing/data_source.h
index 563bd49..6412820 100644
--- a/include/perfetto/public/data_source.h
+++ b/include/perfetto/tracing/data_source.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_PUBLIC_DATA_SOURCE_H_
-#define INCLUDE_PERFETTO_PUBLIC_DATA_SOURCE_H_
+#ifndef INCLUDE_PERFETTO_TRACING_DATA_SOURCE_H_
+#define INCLUDE_PERFETTO_TRACING_DATA_SOURCE_H_
 
 // This header contains the key class (DataSource) that a producer app should
 // override in order to create a custom data source that gets tracing Start/Stop
@@ -31,15 +31,15 @@
 #include <memory>
 #include <mutex>
 
+#include "perfetto/base/compiler.h"
 #include "perfetto/protozero/message.h"
 #include "perfetto/protozero/message_handle.h"
-#include "perfetto/public/compiler.h"
-#include "perfetto/public/internal/basic_types.h"
-#include "perfetto/public/internal/data_source_internal.h"
-#include "perfetto/public/internal/tracing_muxer.h"
-#include "perfetto/public/locked_handle.h"
-#include "perfetto/public/trace_writer_base.h"
 #include "perfetto/trace/trace_packet.pbzero.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"
 
 namespace perfetto {
 
@@ -280,4 +280,4 @@
   thread_local perfetto::internal::DataSourceThreadLocalState* \
       perfetto::DataSource<X>::tls_state_ = nullptr
 
-#endif  // INCLUDE_PERFETTO_PUBLIC_DATA_SOURCE_H_
+#endif  // INCLUDE_PERFETTO_TRACING_DATA_SOURCE_H_
diff --git a/include/perfetto/public/internal/basic_types.h b/include/perfetto/tracing/internal/basic_types.h
similarity index 89%
rename from include/perfetto/public/internal/basic_types.h
rename to include/perfetto/tracing/internal/basic_types.h
index 14d3a74..81f5353 100644
--- a/include/perfetto/public/internal/basic_types.h
+++ b/include/perfetto/tracing/internal/basic_types.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_PUBLIC_INTERNAL_BASIC_TYPES_H_
-#define INCLUDE_PERFETTO_PUBLIC_INTERNAL_BASIC_TYPES_H_
+#ifndef INCLUDE_PERFETTO_TRACING_INTERNAL_BASIC_TYPES_H_
+#define INCLUDE_PERFETTO_TRACING_INTERNAL_BASIC_TYPES_H_
 
 #include <stddef.h>
 #include <stdint.h>
@@ -43,4 +43,4 @@
 }  // namespace internal
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_PUBLIC_INTERNAL_BASIC_TYPES_H_
+#endif  // INCLUDE_PERFETTO_TRACING_INTERNAL_BASIC_TYPES_H_
diff --git a/include/perfetto/public/internal/data_source_internal.h b/include/perfetto/tracing/internal/data_source_internal.h
similarity index 91%
rename from include/perfetto/public/internal/data_source_internal.h
rename to include/perfetto/tracing/internal/data_source_internal.h
index 4db439c..9ce027a 100644
--- a/include/perfetto/public/internal/data_source_internal.h
+++ b/include/perfetto/tracing/internal/data_source_internal.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_PUBLIC_INTERNAL_DATA_SOURCE_INTERNAL_H_
-#define INCLUDE_PERFETTO_PUBLIC_INTERNAL_DATA_SOURCE_INTERNAL_H_
+#ifndef INCLUDE_PERFETTO_TRACING_INTERNAL_DATA_SOURCE_INTERNAL_H_
+#define INCLUDE_PERFETTO_TRACING_INTERNAL_DATA_SOURCE_INTERNAL_H_
 
 #include <stddef.h>
 #include <stdint.h>
@@ -26,9 +26,9 @@
 #include <memory>
 #include <mutex>
 
-// No perfetto headers (other than /public/ and protozero) should be here.
-#include "perfetto/public/internal/basic_types.h"
-#include "perfetto/public/trace_writer_base.h"
+// No perfetto headers (other than tracing/api and protozero) should be here.
+#include "perfetto/tracing/internal/basic_types.h"
+#include "perfetto/tracing/trace_writer_base.h"
 
 namespace perfetto {
 
@@ -135,4 +135,4 @@
 }  // namespace internal
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_PUBLIC_INTERNAL_DATA_SOURCE_INTERNAL_H_
+#endif  // INCLUDE_PERFETTO_TRACING_INTERNAL_DATA_SOURCE_INTERNAL_H_
diff --git a/include/perfetto/public/internal/tracing_muxer.h b/include/perfetto/tracing/internal/tracing_muxer.h
similarity index 90%
rename from include/perfetto/public/internal/tracing_muxer.h
rename to include/perfetto/tracing/internal/tracing_muxer.h
index e92c7e1..f13dfb2 100644
--- a/include/perfetto/public/internal/tracing_muxer.h
+++ b/include/perfetto/tracing/internal/tracing_muxer.h
@@ -14,15 +14,15 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_PUBLIC_INTERNAL_TRACING_MUXER_H_
-#define INCLUDE_PERFETTO_PUBLIC_INTERNAL_TRACING_MUXER_H_
+#ifndef INCLUDE_PERFETTO_TRACING_INTERNAL_TRACING_MUXER_H_
+#define INCLUDE_PERFETTO_TRACING_INTERNAL_TRACING_MUXER_H_
 
 #include <atomic>
 #include <memory>
 
-#include "perfetto/public/internal/basic_types.h"
-#include "perfetto/public/internal/tracing_tls.h"
-#include "perfetto/public/platform.h"
+#include "perfetto/tracing/internal/basic_types.h"
+#include "perfetto/tracing/internal/tracing_tls.h"
+#include "perfetto/tracing/platform.h"
 
 namespace perfetto {
 
@@ -44,7 +44,7 @@
 // See tracing_muxer_impl.h for the full picture. This class contains only the
 // fewer fields and methods that need to be exposed to public/ headers. Fields
 // and methods that are required to implement them should go into
-// src/public/internal/tracing_muxer_impl.h instead: that one can pull in
+// src/tracing/internal/tracing_muxer_impl.h instead: that one can pull in
 // perfetto headers outside of public, this one cannot.
 class TracingMuxer {
  public:
@@ -104,4 +104,4 @@
 }  // namespace internal
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_PUBLIC_INTERNAL_TRACING_MUXER_H_
+#endif  // INCLUDE_PERFETTO_TRACING_INTERNAL_TRACING_MUXER_H_
diff --git a/include/perfetto/public/internal/tracing_tls.h b/include/perfetto/tracing/internal/tracing_tls.h
similarity index 90%
rename from include/perfetto/public/internal/tracing_tls.h
rename to include/perfetto/tracing/internal/tracing_tls.h
index 6b2f9fc..8c39dfa 100644
--- a/include/perfetto/public/internal/tracing_tls.h
+++ b/include/perfetto/tracing/internal/tracing_tls.h
@@ -14,15 +14,15 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_PUBLIC_INTERNAL_TRACING_TLS_H_
-#define INCLUDE_PERFETTO_PUBLIC_INTERNAL_TRACING_TLS_H_
+#ifndef INCLUDE_PERFETTO_TRACING_INTERNAL_TRACING_TLS_H_
+#define INCLUDE_PERFETTO_TRACING_INTERNAL_TRACING_TLS_H_
 
 #include <array>
 #include <memory>
 
-#include "perfetto/public/internal/basic_types.h"
-#include "perfetto/public/internal/data_source_internal.h"
-#include "perfetto/public/platform.h"
+#include "perfetto/tracing/internal/basic_types.h"
+#include "perfetto/tracing/internal/data_source_internal.h"
+#include "perfetto/tracing/platform.h"
 
 namespace perfetto {
 
@@ -80,4 +80,4 @@
 }  // namespace internal
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_PUBLIC_INTERNAL_TRACING_TLS_H_
+#endif  // INCLUDE_PERFETTO_TRACING_INTERNAL_TRACING_TLS_H_
diff --git a/include/perfetto/public/locked_handle.h b/include/perfetto/tracing/locked_handle.h
similarity index 89%
rename from include/perfetto/public/locked_handle.h
rename to include/perfetto/tracing/locked_handle.h
index b3242d5..f9ae8e5 100644
--- a/include/perfetto/public/locked_handle.h
+++ b/include/perfetto/tracing/locked_handle.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_PUBLIC_LOCKED_HANDLE_H_
-#define INCLUDE_PERFETTO_PUBLIC_LOCKED_HANDLE_H_
+#ifndef INCLUDE_PERFETTO_TRACING_LOCKED_HANDLE_H_
+#define INCLUDE_PERFETTO_TRACING_LOCKED_HANDLE_H_
 
 #include <mutex>
 
@@ -49,4 +49,4 @@
 
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_PUBLIC_LOCKED_HANDLE_H_
+#endif  // INCLUDE_PERFETTO_TRACING_LOCKED_HANDLE_H_
diff --git a/include/perfetto/public/platform.h b/include/perfetto/tracing/platform.h
similarity index 95%
rename from include/perfetto/public/platform.h
rename to include/perfetto/tracing/platform.h
index 54f07b1..6e5c95d 100644
--- a/include/perfetto/public/platform.h
+++ b/include/perfetto/tracing/platform.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_PUBLIC_PLATFORM_H_
-#define INCLUDE_PERFETTO_PUBLIC_PLATFORM_H_
+#ifndef INCLUDE_PERFETTO_TRACING_PLATFORM_H_
+#define INCLUDE_PERFETTO_TRACING_PLATFORM_H_
 
 #include <stddef.h>
 #include <stdint.h>
@@ -83,4 +83,4 @@
 
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_PUBLIC_PLATFORM_H_
+#endif  // INCLUDE_PERFETTO_TRACING_PLATFORM_H_
diff --git a/include/perfetto/public/trace_writer_base.h b/include/perfetto/tracing/trace_writer_base.h
similarity index 86%
rename from include/perfetto/public/trace_writer_base.h
rename to include/perfetto/tracing/trace_writer_base.h
index 52cdde6..96e308c 100644
--- a/include/perfetto/public/trace_writer_base.h
+++ b/include/perfetto/tracing/trace_writer_base.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_PUBLIC_TRACE_WRITER_BASE_H_
-#define INCLUDE_PERFETTO_PUBLIC_TRACE_WRITER_BASE_H_
+#ifndef INCLUDE_PERFETTO_TRACING_TRACE_WRITER_BASE_H_
+#define INCLUDE_PERFETTO_TRACING_TRACE_WRITER_BASE_H_
 
 #include "perfetto/protozero/message_handle.h"
 
@@ -38,4 +38,4 @@
 
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_PUBLIC_TRACE_WRITER_BASE_H_
+#endif  // INCLUDE_PERFETTO_TRACING_TRACE_WRITER_BASE_H_
diff --git a/include/perfetto/public/tracing.h b/include/perfetto/tracing/tracing.h
similarity index 93%
rename from include/perfetto/public/tracing.h
rename to include/perfetto/tracing/tracing.h
index e65bfce..db6021a 100644
--- a/include/perfetto/public/tracing.h
+++ b/include/perfetto/tracing/tracing.h
@@ -14,10 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_PUBLIC_TRACING_H_
-#define INCLUDE_PERFETTO_PUBLIC_TRACING_H_
-
-// The only header that embedders should include to get everything.
+#ifndef INCLUDE_PERFETTO_TRACING_TRACING_H_
+#define INCLUDE_PERFETTO_TRACING_TRACING_H_
 
 #include <stddef.h>
 #include <stdint.h>
@@ -25,10 +23,7 @@
 #include <functional>
 #include <memory>
 #include <string>
-
-#include "perfetto/public/data_source.h"
-#include "perfetto/public/platform.h"
-#include "perfetto/public/tracing_backend.h"
+#include <vector>
 
 namespace perfetto {
 
@@ -134,4 +129,4 @@
 
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_PUBLIC_TRACING_H_
+#endif  // INCLUDE_PERFETTO_TRACING_TRACING_H_
diff --git a/include/perfetto/public/tracing_backend.h b/include/perfetto/tracing/tracing_backend.h
similarity index 94%
rename from include/perfetto/public/tracing_backend.h
rename to include/perfetto/tracing/tracing_backend.h
index 461a776..f35a4ae 100644
--- a/include/perfetto/public/tracing_backend.h
+++ b/include/perfetto/tracing/tracing_backend.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef INCLUDE_PERFETTO_PUBLIC_TRACING_BACKEND_H_
-#define INCLUDE_PERFETTO_PUBLIC_TRACING_BACKEND_H_
+#ifndef INCLUDE_PERFETTO_TRACING_TRACING_BACKEND_H_
+#define INCLUDE_PERFETTO_TRACING_TRACING_BACKEND_H_
 
 #include <memory>
 #include <string>
@@ -80,4 +80,4 @@
 
 }  // namespace perfetto
 
-#endif  // INCLUDE_PERFETTO_PUBLIC_TRACING_BACKEND_H_
+#endif  // INCLUDE_PERFETTO_TRACING_TRACING_BACKEND_H_
diff --git a/infra/perfetto-site.appspot.com/Makefile b/infra/perfetto-site.appspot.com/Makefile
index a1586e4..0811e7f 100644
--- a/infra/perfetto-site.appspot.com/Makefile
+++ b/infra/perfetto-site.appspot.com/Makefile
@@ -23,6 +23,8 @@
 	cp node_modules/docsify-themeable/dist/css/theme-simple.css static/
 	cp node_modules/docsify-copy-code/dist/docsify-copy-code.min.js static/
 	cp node_modules/prismjs/components/prism-bash.min.js static/
+	cp node_modules/prismjs/components/prism-protobuf.min.js static/
+	cp node_modules/prismjs/components/prism-sql.min.js static/
 
 deploy: static
 	gcloud app deploy app.yaml --project perfetto-site
diff --git a/protos/BUILD b/protos/BUILD
index b75db01..4c280e9 100644
--- a/protos/BUILD
+++ b/protos/BUILD
@@ -54,6 +54,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/common:lite_gen
+java_proto_library(
+    name = "common_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:common",
+    ],
+)
+
 # GN target: //protos/perfetto/common:zero_gen
 proto_library(
     name = "common_zero",
@@ -73,7 +84,6 @@
     src_proto_library = "//third_party/perfetto/protos:common_zero",
     deps = [
         "//third_party/perfetto:libprotozero",
-        "//third_party/perfetto/google:gtest_prod",
     ],
 )
 
@@ -116,6 +126,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/config:lite_gen
+java_proto_library(
+    name = "config_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:config",
+    ],
+)
+
 # GN target: //protos/perfetto/config:merged_config_gen
 proto_library(
     name = "config_merged_config_gen",
@@ -141,6 +162,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/config:merged_config_gen
+java_proto_library(
+    name = "config_merged_config_gen_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:config_merged_config_gen",
+    ],
+)
+
 # GN target: //protos/perfetto/config:zero_gen
 proto_library(
     name = "config_zero",
@@ -169,7 +201,6 @@
     src_proto_library = "//third_party/perfetto/protos:config_zero",
     deps = [
         "//third_party/perfetto:libprotozero",
-        "//third_party/perfetto/google:gtest_prod",
     ],
 )
 
@@ -217,6 +248,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/metrics/android:lite_gen
+java_proto_library(
+    name = "metrics_android_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:metrics_android",
+    ],
+)
+
 # GN target: //protos/perfetto/metrics/android:zero_gen
 proto_library(
     name = "metrics_android_zero",
@@ -233,7 +275,6 @@
     src_proto_library = "//third_party/perfetto/protos:metrics_android_zero",
     deps = [
         "//third_party/perfetto:libprotozero",
-        "//third_party/perfetto/google:gtest_prod",
     ],
 )
 
@@ -248,6 +289,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/metrics:lite_gen
+java_proto_library(
+    name = "metrics_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:metrics",
+    ],
+)
+
 # GN target: //protos/perfetto/metrics:zero_gen
 proto_library(
     name = "metrics_zero",
@@ -265,7 +317,6 @@
     src_proto_library = "//third_party/perfetto/protos:metrics_zero",
     deps = [
         "//third_party/perfetto:libprotozero",
-        "//third_party/perfetto/google:gtest_prod",
     ],
 )
 
@@ -294,6 +345,17 @@
     ],
 )
 
+# GN target: //protos/third_party/pprof:lite_gen
+java_proto_library(
+    name = "protos_third_party_pprof_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:protos_third_party_pprof",
+    ],
+)
+
 # GN target: //protos/perfetto/trace:lite_gen
 proto_library(
     name = "trace",
@@ -354,6 +416,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/trace/android:lite_gen
+java_proto_library(
+    name = "trace_android_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:trace_android",
+    ],
+)
+
 # GN target: //protos/perfetto/trace/android:zero_gen
 proto_library(
     name = "trace_android_zero",
@@ -372,7 +445,6 @@
     src_proto_library = "//third_party/perfetto/protos:trace_android_zero",
     deps = [
         "//third_party/perfetto:libprotozero",
-        "//third_party/perfetto/google:gtest_prod",
     ],
 )
 
@@ -413,6 +485,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/trace/chrome:lite_gen
+java_proto_library(
+    name = "trace_chrome_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:trace_chrome",
+    ],
+)
+
 # GN target: //protos/perfetto/trace/chrome:zero_gen
 proto_library(
     name = "trace_chrome_zero",
@@ -432,7 +515,6 @@
     src_proto_library = "//third_party/perfetto/protos:trace_chrome_zero",
     deps = [
         "//third_party/perfetto:libprotozero",
-        "//third_party/perfetto/google:gtest_prod",
     ],
 )
 
@@ -461,6 +543,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/trace/filesystem:lite_gen
+java_proto_library(
+    name = "trace_filesystem_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:trace_filesystem",
+    ],
+)
+
 # GN target: //protos/perfetto/trace/filesystem:zero_gen
 proto_library(
     name = "trace_filesystem_zero",
@@ -475,7 +568,6 @@
     src_proto_library = "//third_party/perfetto/protos:trace_filesystem_zero",
     deps = [
         "//third_party/perfetto:libprotozero",
-        "//third_party/perfetto/google:gtest_prod",
     ],
 )
 
@@ -535,6 +627,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/trace/ftrace:lite_gen
+java_proto_library(
+    name = "trace_ftrace_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:trace_ftrace",
+    ],
+)
+
 # GN target: //protos/perfetto/trace/ftrace:zero_gen
 proto_library(
     name = "trace_ftrace_zero",
@@ -580,7 +683,6 @@
     src_proto_library = "//third_party/perfetto/protos:trace_ftrace_zero",
     deps = [
         "//third_party/perfetto:libprotozero",
-        "//third_party/perfetto/google:gtest_prod",
     ],
 )
 
@@ -612,6 +714,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/trace/interned_data:lite_gen
+java_proto_library(
+    name = "trace_interned_data_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:trace_interned_data",
+    ],
+)
+
 # GN target: //protos/perfetto/trace/interned_data:zero_gen
 proto_library(
     name = "trace_interned_data_zero",
@@ -629,7 +742,17 @@
     src_proto_library = "//third_party/perfetto/protos:trace_interned_data_zero",
     deps = [
         "//third_party/perfetto:libprotozero",
-        "//third_party/perfetto/google:gtest_prod",
+    ],
+)
+
+# GN target: //protos/perfetto/trace:lite_gen
+java_proto_library(
+    name = "trace_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:trace",
     ],
 )
 
@@ -658,6 +781,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/trace:merged_trace_gen
+java_proto_library(
+    name = "trace_merged_trace_gen_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:trace_merged_trace_gen",
+    ],
+)
+
 # GN target: //protos/perfetto/trace:minimal_lite_gen
 proto_library(
     name = "trace_minimal",
@@ -689,6 +823,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/trace:minimal_lite_gen
+java_proto_library(
+    name = "trace_minimal_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:trace_minimal",
+    ],
+)
+
 # GN target: //protos/perfetto/trace/power:lite_gen
 proto_library(
     name = "trace_power",
@@ -715,6 +860,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/trace/power:lite_gen
+java_proto_library(
+    name = "trace_power_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:trace_power",
+    ],
+)
+
 # GN target: //protos/perfetto/trace/power:zero_gen
 proto_library(
     name = "trace_power_zero",
@@ -730,7 +886,6 @@
     src_proto_library = "//third_party/perfetto/protos:trace_power_zero",
     deps = [
         "//third_party/perfetto:libprotozero",
-        "//third_party/perfetto/google:gtest_prod",
     ],
 )
 
@@ -761,6 +916,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/trace_processor:lite_gen
+java_proto_library(
+    name = "trace_processor_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:trace_processor",
+    ],
+)
+
 # GN target: //protos/perfetto/trace_processor:metrics_impl_zero_gen
 proto_library(
     name = "trace_processor_metrics_impl_zero",
@@ -775,7 +941,6 @@
     src_proto_library = "//third_party/perfetto/protos:trace_processor_metrics_impl_zero",
     deps = [
         "//third_party/perfetto:libprotozero",
-        "//third_party/perfetto/google:gtest_prod",
     ],
 )
 
@@ -804,6 +969,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/trace/profiling:lite_gen
+java_proto_library(
+    name = "trace_profiling_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:trace_profiling",
+    ],
+)
+
 # GN target: //protos/perfetto/trace/profiling:zero_gen
 proto_library(
     name = "trace_profiling_zero",
@@ -818,7 +994,6 @@
     src_proto_library = "//third_party/perfetto/protos:trace_profiling_zero",
     deps = [
         "//third_party/perfetto:libprotozero",
-        "//third_party/perfetto/google:gtest_prod",
     ],
 )
 
@@ -848,6 +1023,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/trace/ps:lite_gen
+java_proto_library(
+    name = "trace_ps_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:trace_ps",
+    ],
+)
+
 # GN target: //protos/perfetto/trace/ps:zero_gen
 proto_library(
     name = "trace_ps_zero",
@@ -863,7 +1049,6 @@
     src_proto_library = "//third_party/perfetto/protos:trace_ps_zero",
     deps = [
         "//third_party/perfetto:libprotozero",
-        "//third_party/perfetto/google:gtest_prod",
     ],
 )
 
@@ -895,6 +1080,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/trace/sys_stats:lite_gen
+java_proto_library(
+    name = "trace_sys_stats_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:trace_sys_stats",
+    ],
+)
+
 # GN target: //protos/perfetto/trace/sys_stats:zero_gen
 proto_library(
     name = "trace_sys_stats_zero",
@@ -912,7 +1108,6 @@
     src_proto_library = "//third_party/perfetto/protos:trace_sys_stats_zero",
     deps = [
         "//third_party/perfetto:libprotozero",
-        "//third_party/perfetto/google:gtest_prod",
     ],
 )
 
@@ -945,6 +1140,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/trace/track_event:lite_gen
+java_proto_library(
+    name = "trace_track_event_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:trace_track_event",
+    ],
+)
+
 # GN target: //protos/perfetto/trace/track_event:zero_gen
 proto_library(
     name = "trace_track_event_zero",
@@ -963,7 +1169,6 @@
     src_proto_library = "//third_party/perfetto/protos:trace_track_event_zero",
     deps = [
         "//third_party/perfetto:libprotozero",
-        "//third_party/perfetto/google:gtest_prod",
     ],
 )
 
@@ -1000,6 +1205,5 @@
     src_proto_library = "//third_party/perfetto/protos:trace_zero",
     deps = [
         "//third_party/perfetto:libprotozero",
-        "//third_party/perfetto/google:gtest_prod",
     ],
 )
diff --git a/protos/perfetto/metrics/android/OWNERS b/protos/perfetto/metrics/android/OWNERS
new file mode 100644
index 0000000..0bcdb4d
--- /dev/null
+++ b/protos/perfetto/metrics/android/OWNERS
@@ -0,0 +1 @@
+ilkos@google.com
diff --git a/protos/perfetto/metrics/android/startup_metric.proto b/protos/perfetto/metrics/android/startup_metric.proto
index 9414502..0d2e14c 100644
--- a/protos/perfetto/metrics/android/startup_metric.proto
+++ b/protos/perfetto/metrics/android/startup_metric.proto
@@ -30,6 +30,8 @@
 
 // Android app startup metrics.
 message AndroidStartupMetric {
+  message Slice { optional int64 dur_ns = 1; }
+
   // Timing information spanning the intent received by the
   // activity manager to the first frame drawn.
   // All times and durations in nanoseconds (ns).
@@ -40,6 +42,28 @@
     // In this timespan, how many processes (apart from the main activity) were
     // spawned.
     optional uint32 other_processes_spawned_count = 3;
+
+    // Total time spent in activity manager between the initial intent
+    // and the end of the activity starter.
+    optional Slice time_activity_manager = 4;
+
+    // The following slices follow the typical steps post-fork.
+    optional Slice time_activity_thread_main = 5;
+    optional Slice time_bind_application = 6;
+    optional Slice time_activity_start = 7;
+    optional Slice time_activity_resume = 8;
+    optional Slice time_choreographer = 9;
+
+    // If we are starting a new process, record the duration from the
+    // intent being received to the time we call the zygote.
+    optional Slice time_before_start_process = 10;
+
+    // The actual duration of the process start (based on the zygote slice).
+    optional Slice time_during_start_process = 11;
+
+    // The ratio between the cpu time of the activity process
+    // to all other processes in the system.
+    optional double other_process_to_activity_cpu_ratio = 12;
   }
 
   // Next id: 7
@@ -58,7 +82,8 @@
 
     // Number of processes hosting the activity involved in the launch.
     // This will usually be 1. If it is 0, it is indicative of a data / process
-    // error. If > 1, the process died during startup and the system respawned.
+    // error. If > 1, the process died during startup and the system respawned
+    // it.
     optional uint32 activity_hosting_process_count = 6;
 
     optional ToFirstFrame to_first_frame = 5;
diff --git a/protos/perfetto/trace/perfetto_trace.proto b/protos/perfetto/trace/perfetto_trace.proto
index 319953a..fb15d07 100644
--- a/protos/perfetto/trace/perfetto_trace.proto
+++ b/protos/perfetto/trace/perfetto_trace.proto
@@ -2749,6 +2749,15 @@
     optional int64 oom_score_adj = 10;
   }
   repeated Process processes = 1;
+
+  // The time at which we finish collecting this batch of samples;
+  // the top-level packet timestamp is the time at which
+  // we begin collection.
+  // TODO(dancol): analysis might be improved by
+  // time-bracketing each sample as well as the whole
+  // ProcessStats, but doing that is probably gated on
+  // a vdso for CLOCK_BOOTTIME.
+  optional uint64 collection_end_timestamp = 2;
 }
 
 // End of protos/perfetto/trace/ps/process_stats.proto
@@ -2795,6 +2804,11 @@
   // #2 { processes: [{pid: 20, ...}], threads: [{pid: 13, tgid: 10}] }
   repeated Process processes = 1;
   repeated Thread threads = 2;
+
+  // The time at which we finish collecting this process tree;
+  // the top-level packet timestamp is the time at which
+  // we begin collection.
+  optional uint64 collection_end_timestamp = 3;
 }
 
 // End of protos/perfetto/trace/ps/process_tree.proto
@@ -2850,6 +2864,11 @@
   // Populated only if SOFTIRQ_COUNTS in config.stat_counters.
   optional uint64 num_softirq_total = 7;    // Total num of softirqs since boot.
   repeated InterruptCount num_softirq = 8;  // Per-softirq count.
+
+  // The time at which we finish collecting this set of samples;
+  // the top-level packet timestamp is the time at which
+  // we begin collection.
+  optional uint64 collection_end_timestamp = 9;
 }
 
 // End of protos/perfetto/trace/sys_stats/sys_stats.proto
@@ -3104,7 +3123,7 @@
 // thread, i.e. all events in the same packet sequence. Valid for all subsequent
 // events in the same sequence.
 //
-// Next id: 8.
+// Next id: 9.
 message ThreadDescriptor {
   optional int32 pid = 1;
   optional int32 tid = 2;
@@ -3113,8 +3132,29 @@
   optional int32 legacy_sort_index = 3;
 
   enum ChromeThreadType {
-    THREAD_UNSPECIFIED = 0;
-    // TODO(eseckler): Add thread types.
+    THREAD_TYPE_UNSPECIFIED = 0;
+
+    THREAD_TYPE_MAIN = 1;
+    THREAD_TYPE_IO = 2;
+
+    // Scheduler:
+    THREAD_TYPE_THREAD_POOL_BG_WORKER = 3;
+    THREAD_TYPE_THREAD_POOL_FG_WORKER = 4;
+    THREAD_TYPE_THREAD_POOL_FB_BLOCKING = 5;
+    THREAD_TYPE_THREAD_POOL_BG_BLOCKING = 6;
+    THREAD_TYPE_THREAD_POOL_SERVICE = 7;
+
+    // Compositor:
+    THREAD_TYPE_COMPOSITOR = 8;
+    THREAD_TYPE_VIZ_COMPOSITOR = 9;
+    THREAD_TYPE_COMPOSITOR_WORKER = 10;
+
+    // Renderer:
+    THREAD_TYPE_SERVICE_WORKER = 11;
+
+    // Tracing related threads:
+    THREAD_TYPE_MEMORY_INFRA = 50;
+    THREAD_TYPE_SAMPLING_PROFILER = 51;
   };
   optional ChromeThreadType chrome_thread_type = 4;
 
@@ -3126,6 +3166,7 @@
   // encoding size.
   optional int64 reference_timestamp_us = 6;
   optional int64 reference_thread_time_us = 7;
+  optional int64 reference_thread_instruction_count = 8;
 }
 
 // End of protos/perfetto/trace/track_event/thread_descriptor.proto
@@ -3149,7 +3190,7 @@
 // association) are emitted as part of ProcessDescriptor and ThreadDescriptor
 // messages in separate TracePackets instead.
 //
-// Next reserved id: 7 (up to 15).
+// Next reserved id: 8 (up to 15).
 // Next id: 21.
 message TrackEvent {
   // Timestamp in microseconds (usually CLOCK_MONOTONIC).
@@ -3177,8 +3218,16 @@
     int64 thread_time_absolute_us = 17;
   }
 
-  // Elapsed retired instruction count during the event.
-  optional int64 thread_instruction_delta = 20;
+  // Value of the instruction counter for the current thread.
+  oneof thread_instruction_count {
+    // Same encoding as |timestamp| fields above.
+    int64 thread_instruction_count_delta = 8;
+    // TODO(eseckler): Consider removing absolute thread instruction count
+    // support. It's currently required to support writing PHASE_COMPLETE events
+    // out-of-order, but shouldn't be required anymore when we split them into
+    // begin/end.
+    int64 thread_instruction_count_absolute = 20;
+  }
 
   // We intend to add a binary symbol version of this in the future.
   repeated uint32 category_iids = 3;  // interned EventCategoryName.
@@ -3199,7 +3248,7 @@
   // features in TrackEvent (e.g. async + flow events), or deprecate them
   // without replacement where transition is unsuitable.
   //
-  // Next reserved id: 15 (up to 16).
+  // Next reserved id: 16 (up to 16).
   // Next id: 20.
   message LegacyEvent {
     optional uint32 name_iid = 1;  // interned LegacyEventName.
@@ -3207,6 +3256,9 @@
     optional int64 duration_us = 3;
     optional int64 thread_duration_us = 4;
 
+    // Elapsed retired instruction count during the event.
+    optional int64 thread_instruction_delta = 15;
+
     reserved 5;  // used to be |flags|.
 
     oneof id {
diff --git a/protos/perfetto/trace/ps/process_stats.proto b/protos/perfetto/trace/ps/process_stats.proto
index 49e8237..5db028f 100644
--- a/protos/perfetto/trace/ps/process_stats.proto
+++ b/protos/perfetto/trace/ps/process_stats.proto
@@ -43,4 +43,13 @@
     optional int64 oom_score_adj = 10;
   }
   repeated Process processes = 1;
+
+  // The time at which we finish collecting this batch of samples;
+  // the top-level packet timestamp is the time at which
+  // we begin collection.
+  // TODO(dancol): analysis might be improved by
+  // time-bracketing each sample as well as the whole
+  // ProcessStats, but doing that is probably gated on
+  // a vdso for CLOCK_BOOTTIME.
+  optional uint64 collection_end_timestamp = 2;
 }
diff --git a/protos/perfetto/trace/ps/process_tree.proto b/protos/perfetto/trace/ps/process_tree.proto
index 50579e5..cf83d12 100644
--- a/protos/perfetto/trace/ps/process_tree.proto
+++ b/protos/perfetto/trace/ps/process_tree.proto
@@ -58,4 +58,9 @@
   // #2 { processes: [{pid: 20, ...}], threads: [{pid: 13, tgid: 10}] }
   repeated Process processes = 1;
   repeated Thread threads = 2;
+
+  // The time at which we finish collecting this process tree;
+  // the top-level packet timestamp is the time at which
+  // we begin collection.
+  optional uint64 collection_end_timestamp = 3;
 }
diff --git a/protos/perfetto/trace/sys_stats/sys_stats.proto b/protos/perfetto/trace/sys_stats/sys_stats.proto
index 7b298bf..4b10ecf 100644
--- a/protos/perfetto/trace/sys_stats/sys_stats.proto
+++ b/protos/perfetto/trace/sys_stats/sys_stats.proto
@@ -69,4 +69,9 @@
   // Populated only if SOFTIRQ_COUNTS in config.stat_counters.
   optional uint64 num_softirq_total = 7;    // Total num of softirqs since boot.
   repeated InterruptCount num_softirq = 8;  // Per-softirq count.
+
+  // The time at which we finish collecting this set of samples;
+  // the top-level packet timestamp is the time at which
+  // we begin collection.
+  optional uint64 collection_end_timestamp = 9;
 }
diff --git a/protos/perfetto/trace/track_event/thread_descriptor.proto b/protos/perfetto/trace/track_event/thread_descriptor.proto
index d8648ff..85a5824 100644
--- a/protos/perfetto/trace/track_event/thread_descriptor.proto
+++ b/protos/perfetto/trace/track_event/thread_descriptor.proto
@@ -23,7 +23,7 @@
 // thread, i.e. all events in the same packet sequence. Valid for all subsequent
 // events in the same sequence.
 //
-// Next id: 8.
+// Next id: 9.
 message ThreadDescriptor {
   optional int32 pid = 1;
   optional int32 tid = 2;
@@ -32,8 +32,29 @@
   optional int32 legacy_sort_index = 3;
 
   enum ChromeThreadType {
-    THREAD_UNSPECIFIED = 0;
-    // TODO(eseckler): Add thread types.
+    THREAD_TYPE_UNSPECIFIED = 0;
+
+    THREAD_TYPE_MAIN = 1;
+    THREAD_TYPE_IO = 2;
+
+    // Scheduler:
+    THREAD_TYPE_THREAD_POOL_BG_WORKER = 3;
+    THREAD_TYPE_THREAD_POOL_FG_WORKER = 4;
+    THREAD_TYPE_THREAD_POOL_FB_BLOCKING = 5;
+    THREAD_TYPE_THREAD_POOL_BG_BLOCKING = 6;
+    THREAD_TYPE_THREAD_POOL_SERVICE = 7;
+
+    // Compositor:
+    THREAD_TYPE_COMPOSITOR = 8;
+    THREAD_TYPE_VIZ_COMPOSITOR = 9;
+    THREAD_TYPE_COMPOSITOR_WORKER = 10;
+
+    // Renderer:
+    THREAD_TYPE_SERVICE_WORKER = 11;
+
+    // Tracing related threads:
+    THREAD_TYPE_MEMORY_INFRA = 50;
+    THREAD_TYPE_SAMPLING_PROFILER = 51;
   };
   optional ChromeThreadType chrome_thread_type = 4;
 
@@ -45,4 +66,5 @@
   // encoding size.
   optional int64 reference_timestamp_us = 6;
   optional int64 reference_thread_time_us = 7;
+  optional int64 reference_thread_instruction_count = 8;
 }
diff --git a/protos/perfetto/trace/track_event/track_event.proto b/protos/perfetto/trace/track_event/track_event.proto
index 92a05fc..3a71df4 100644
--- a/protos/perfetto/trace/track_event/track_event.proto
+++ b/protos/perfetto/trace/track_event/track_event.proto
@@ -39,7 +39,7 @@
 // association) are emitted as part of ProcessDescriptor and ThreadDescriptor
 // messages in separate TracePackets instead.
 //
-// Next reserved id: 7 (up to 15).
+// Next reserved id: 8 (up to 15).
 // Next id: 21.
 message TrackEvent {
   // Timestamp in microseconds (usually CLOCK_MONOTONIC).
@@ -67,8 +67,16 @@
     int64 thread_time_absolute_us = 17;
   }
 
-  // Elapsed retired instruction count during the event.
-  optional int64 thread_instruction_delta = 20;
+  // Value of the instruction counter for the current thread.
+  oneof thread_instruction_count {
+    // Same encoding as |timestamp| fields above.
+    int64 thread_instruction_count_delta = 8;
+    // TODO(eseckler): Consider removing absolute thread instruction count
+    // support. It's currently required to support writing PHASE_COMPLETE events
+    // out-of-order, but shouldn't be required anymore when we split them into
+    // begin/end.
+    int64 thread_instruction_count_absolute = 20;
+  }
 
   // We intend to add a binary symbol version of this in the future.
   repeated uint32 category_iids = 3;  // interned EventCategoryName.
@@ -89,7 +97,7 @@
   // features in TrackEvent (e.g. async + flow events), or deprecate them
   // without replacement where transition is unsuitable.
   //
-  // Next reserved id: 15 (up to 16).
+  // Next reserved id: 16 (up to 16).
   // Next id: 20.
   message LegacyEvent {
     optional uint32 name_iid = 1;  // interned LegacyEventName.
@@ -97,6 +105,9 @@
     optional int64 duration_us = 3;
     optional int64 thread_duration_us = 4;
 
+    // Elapsed retired instruction count during the event.
+    optional int64 thread_instruction_delta = 15;
+
     reserved 5;  // used to be |flags|.
 
     oneof id {
diff --git a/src/base/BUILD.gn b/src/base/BUILD.gn
index 97abdcf..7359374 100644
--- a/src/base/BUILD.gn
+++ b/src/base/BUILD.gn
@@ -22,6 +22,7 @@
   ]
   public_deps = [
     "../../include/perfetto/base",
+    "../../include/perfetto/ext/base",
   ]
   sources = [
     "file_utils.cc",
@@ -82,7 +83,8 @@
     ]
     deps = [
       "../../gn:default_deps",
-      "../../include/perfetto/base",
+      "../../include/perfetto/ext/base",
+      "../../include/perfetto/ext/base",
     ]
     if (is_linux || is_android) {
       deps += [ "../../buildtools:libbacktrace" ]
@@ -96,7 +98,8 @@
   source_set("unix_socket") {
     deps = [
       "../../gn:default_deps",
-      "../../include/perfetto/base",
+      "../../include/perfetto/ext/base",
+      "../../include/perfetto/ext/base",
     ]
     sources = [
       "unix_socket.cc",
@@ -136,7 +139,8 @@
     "../../gn:gtest_deps",
   ]
 
-  if (is_android && (perfetto_build_standalone || perfetto_build_with_android)) {
+  if (is_android &&
+      (perfetto_build_standalone || perfetto_build_with_android)) {
     deps += [ ":android_task_runner" ]
   }
   sources = [
diff --git a/src/base/android_task_runner.cc b/src/base/android_task_runner.cc
index aab61d1..e6979e4 100644
--- a/src/base/android_task_runner.cc
+++ b/src/base/android_task_runner.cc
@@ -14,11 +14,13 @@
  * limitations under the License.
  */
 
-#include "perfetto/base/android_task_runner.h"
+#include "perfetto/ext/base/android_task_runner.h"
 
 #include <errno.h>
 #include <sys/timerfd.h>
 
+#include "perfetto/ext/base/watchdog.h"
+
 namespace perfetto {
 namespace base {
 
@@ -96,7 +98,7 @@
   if (has_next)
     ScheduleImmediateWakeUp();
   errno = 0;
-  RunTask(immediate_task);
+  RunTaskWithWatchdogGuard(immediate_task);
 }
 
 void AndroidTaskRunner::RunDelayedTask() {
@@ -122,7 +124,7 @@
   if (next_wake_up.count())
     ScheduleDelayedWakeUp(next_wake_up);
   errno = 0;
-  RunTask(delayed_task);
+  RunTaskWithWatchdogGuard(delayed_task);
 }
 
 void AndroidTaskRunner::ScheduleImmediateWakeUp() {
@@ -200,7 +202,7 @@
     task = it->second;
   }
   errno = 0;
-  RunTask(task);
+  RunTaskWithWatchdogGuard(task);
   return true;
 }
 
diff --git a/src/base/circular_queue_unittest.cc b/src/base/circular_queue_unittest.cc
index 6fefe0c..ededf2f 100644
--- a/src/base/circular_queue_unittest.cc
+++ b/src/base/circular_queue_unittest.cc
@@ -14,11 +14,11 @@
  * limitations under the License.
  */
 
-#include "perfetto/base/circular_queue.h"
+#include "perfetto/ext/base/circular_queue.h"
 
 #include <random>
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace base {
diff --git a/src/base/debug_crash_stack_trace.cc b/src/base/debug_crash_stack_trace.cc
index 31fe32d..ae857a4 100644
--- a/src/base/debug_crash_stack_trace.cc
+++ b/src/base/debug_crash_stack_trace.cc
@@ -28,7 +28,7 @@
 #include <unwind.h>
 
 #include "perfetto/base/build_config.h"
-#include "perfetto/base/file_utils.h"
+#include "perfetto/ext/base/file_utils.h"
 
 // Some glibc headers hit this when using signals.
 #pragma GCC diagnostic push
diff --git a/src/base/event.cc b/src/base/event.cc
index 4fa6ec0..14d5a4a 100644
--- a/src/base/event.cc
+++ b/src/base/event.cc
@@ -17,9 +17,10 @@
 #include <stdint.h>
 #include <unistd.h>
 
-#include "perfetto/base/event.h"
 #include "perfetto/base/logging.h"
-#include "perfetto/base/pipe.h"
+#include "perfetto/ext/base/event.h"
+#include "perfetto/ext/base/pipe.h"
+#include "perfetto/ext/base/utils.h"
 
 #if PERFETTO_USE_EVENTFD()
 #include <sys/eventfd.h>
diff --git a/src/base/file_utils.cc b/src/base/file_utils.cc
index 7dc003c..8dc0b0b 100644
--- a/src/base/file_utils.cc
+++ b/src/base/file_utils.cc
@@ -17,9 +17,10 @@
 #include <sys/stat.h>
 
 #include "perfetto/base/build_config.h"
-#include "perfetto/base/file_utils.h"
 #include "perfetto/base/logging.h"
-#include "perfetto/base/scoped_file.h"
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/utils.h"
 
 #if !PERFETTO_BUILDFLAG(PERFETTO_OS_WIN)
 #include <unistd.h>
diff --git a/src/base/metatrace.cc b/src/base/metatrace.cc
index 99b787f..66954bf 100644
--- a/src/base/metatrace.cc
+++ b/src/base/metatrace.cc
@@ -14,14 +14,14 @@
  * limitations under the License.
  */
 
-#include "perfetto/base/metatrace.h"
+#include "perfetto/ext/base/metatrace.h"
 
 #include <fcntl.h>
 #include <stdlib.h>
 
 #include "perfetto/base/build_config.h"
-#include "perfetto/base/file_utils.h"
-#include "perfetto/base/time.h"
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/time.h"
 
 #if PERFETTO_BUILDFLAG(PERFETTO_OS_WIN)
 #include <corecrt_io.h>
diff --git a/src/base/no_destructor_unittest.cc b/src/base/no_destructor_unittest.cc
index 1f99db7..9c3460d 100644
--- a/src/base/no_destructor_unittest.cc
+++ b/src/base/no_destructor_unittest.cc
@@ -17,9 +17,9 @@
 
 #include <vector>
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
-#include "perfetto/base/no_destructor.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include "perfetto/ext/base/no_destructor.h"
 
 namespace perfetto {
 namespace base {
diff --git a/src/base/optional_unittest.cc b/src/base/optional_unittest.cc
index f2a26f8..7d7c3cc 100644
--- a/src/base/optional_unittest.cc
+++ b/src/base/optional_unittest.cc
@@ -26,7 +26,8 @@
 #include <string>
 #include <vector>
 
-#include "perfetto/base/optional.h"
+#include "perfetto/ext/base/optional.h"
+#include "perfetto/ext/base/utils.h"
 
 using ::testing::ElementsAre;
 
diff --git a/src/base/paged_memory.cc b/src/base/paged_memory.cc
index 95eebc0..2339309 100644
--- a/src/base/paged_memory.cc
+++ b/src/base/paged_memory.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "perfetto/base/paged_memory.h"
+#include "perfetto/ext/base/paged_memory.h"
 
 #include <algorithm>
 #include <cmath>
@@ -26,7 +26,8 @@
 #endif  // PERFETTO_BUILDFLAG(PERFETTO_OS_WIN)
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/container_annotations.h"
+#include "perfetto/ext/base/utils.h"
 
 namespace perfetto {
 namespace base {
@@ -37,7 +38,7 @@
 
 #if TRACK_COMMITTED_SIZE()
 constexpr size_t kCommitChunkSize = kPageSize * 1024;  // 4mB
-#endif  // TRACK_COMMITTED_SIZE()
+#endif                                                 // TRACK_COMMITTED_SIZE()
 
 }  // namespace
 
@@ -75,11 +76,11 @@
 
 PagedMemory::PagedMemory() {}
 
-PagedMemory::PagedMemory(char* p, size_t size) : p_(p), size_(size) {
-  ANNOTATE_NEW_BUFFER(p_, size_, committed_size_);
-}
+PagedMemory::PagedMemory(char* p, size_t size)
+    : p_(p),
+      size_(size){ANNOTATE_NEW_BUFFER(p_, size_, committed_size_)}
 
-PagedMemory::PagedMemory(PagedMemory&& other) noexcept {
+      PagedMemory::PagedMemory(PagedMemory && other) noexcept {
   *this = other;
   other.p_ = nullptr;
 }
@@ -103,7 +104,7 @@
   int res = munmap(start, outer_size);
   PERFETTO_CHECK(res == 0);
 #endif  // PERFETTO_BUILDFLAG(PERFETTO_OS_WIN)
-  ANNOTATE_DELETE_BUFFER(p_, size_, committed_size_);
+  ANNOTATE_DELETE_BUFFER(p_, size_, committed_size_)
 }
 
 bool PagedMemory::AdviseDontNeed(void* p, size_t size) {
@@ -141,12 +142,12 @@
                            PAGE_READWRITE);
   PERFETTO_CHECK(res);
   ANNOTATE_CHANGE_SIZE(p_, size_, committed_size_,
-                       committed_size_ + commit_size);
+                       committed_size_ + commit_size)
   committed_size_ += commit_size;
 #else   // PERFETTO_BUILDFLAG(PERFETTO_OS_WIN)
   // mmap commits automatically as needed, so we only track here for ASAN.
   committed_size = std::max(committed_size_, committed_size);
-  ANNOTATE_CHANGE_SIZE(p_, size_, committed_size_, committed_size);
+  ANNOTATE_CHANGE_SIZE(p_, size_, committed_size_, committed_size)
   committed_size_ = committed_size;
 #endif  // PERFETTO_BUILDFLAG(PERFETTO_OS_WIN)
 }
diff --git a/src/base/paged_memory_unittest.cc b/src/base/paged_memory_unittest.cc
index 103cf1e..1ccea60 100644
--- a/src/base/paged_memory_unittest.cc
+++ b/src/base/paged_memory_unittest.cc
@@ -14,11 +14,11 @@
  * limitations under the License.
  */
 
-#include "perfetto/base/paged_memory.h"
+#include "perfetto/ext/base/paged_memory.h"
 
 #include <stdint.h>
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 #include "perfetto/base/build_config.h"
 #include "src/base/test/vm_test_utils.h"
 
diff --git a/src/base/pipe.cc b/src/base/pipe.cc
index db7fd3a..5c9c3d7 100644
--- a/src/base/pipe.cc
+++ b/src/base/pipe.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "perfetto/base/pipe.h"
+#include "perfetto/ext/base/pipe.h"
 
 #include <sys/types.h>
 #include <unistd.h>
diff --git a/src/base/scoped_file_unittest.cc b/src/base/scoped_file_unittest.cc
index 257b5ca..7c77641 100644
--- a/src/base/scoped_file_unittest.cc
+++ b/src/base/scoped_file_unittest.cc
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-#include "perfetto/base/scoped_file.h"
+#include "perfetto/ext/base/scoped_file.h"
 #include "perfetto/base/build_config.h"
 
 #if PERFETTO_BUILDFLAG(PERFETTO_OS_WIN)
@@ -29,7 +29,7 @@
 #define TEST_INVALID_CLOSE
 #endif
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace base {
diff --git a/src/base/string_splitter.cc b/src/base/string_splitter.cc
index aab47b1..adf9fc8 100644
--- a/src/base/string_splitter.cc
+++ b/src/base/string_splitter.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "perfetto/base/string_splitter.h"
+#include "perfetto/ext/base/string_splitter.h"
 
 #include <utility>
 
diff --git a/src/base/string_splitter_unittest.cc b/src/base/string_splitter_unittest.cc
index c3a3796..fa98434 100644
--- a/src/base/string_splitter_unittest.cc
+++ b/src/base/string_splitter_unittest.cc
@@ -14,12 +14,12 @@
  * limitations under the License.
  */
 
-#include "perfetto/base/string_splitter.h"
+#include "perfetto/ext/base/string_splitter.h"
 
 #include <vector>
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace base {
diff --git a/src/base/string_utils.cc b/src/base/string_utils.cc
index 41df6b6..e5b7c4e 100644
--- a/src/base/string_utils.cc
+++ b/src/base/string_utils.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "perfetto/base/string_utils.h"
+#include "perfetto/ext/base/string_utils.h"
 
 #include <algorithm>
 
@@ -37,6 +37,12 @@
   return haystack.find(needle) != std::string::npos;
 }
 
+bool CaseInsensitiveEqual(const std::string& first, const std::string& second) {
+  return first.size() == second.size() &&
+         std::equal(first.begin(), first.end(), second.begin(),
+                    [](char a, char b) { return tolower(a) == tolower(b); });
+}
+
 std::string Join(const std::vector<std::string>& parts,
                  const std::string& delim) {
   std::string acc;
diff --git a/src/base/string_utils_unittest.cc b/src/base/string_utils_unittest.cc
index bed511f..72471e7 100644
--- a/src/base/string_utils_unittest.cc
+++ b/src/base/string_utils_unittest.cc
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-#include "perfetto/base/string_utils.h"
+#include "perfetto/ext/base/string_utils.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace base {
@@ -47,6 +47,15 @@
   EXPECT_FALSE(EndsWith("", "c"));
 }
 
+TEST(StringUtilsTest, CaseInsensitiveEqual) {
+  EXPECT_TRUE(CaseInsensitiveEqual("", ""));
+  EXPECT_TRUE(CaseInsensitiveEqual("abc", "abc"));
+  EXPECT_TRUE(CaseInsensitiveEqual("ABC", "abc"));
+  EXPECT_TRUE(CaseInsensitiveEqual("abc", "ABC"));
+  EXPECT_FALSE(CaseInsensitiveEqual("abc", "AB"));
+  EXPECT_FALSE(CaseInsensitiveEqual("ab", "ABC"));
+}
+
 TEST(StringUtilsTest, SplitString) {
   EXPECT_THAT(SplitString("", ":"), ElementsAre(""));
   EXPECT_THAT(SplitString("a:b:c", ":"), ElementsAre("a", "b", "c"));
diff --git a/src/base/string_view.cc b/src/base/string_view.cc
index b10239d..7292546 100644
--- a/src/base/string_view.cc
+++ b/src/base/string_view.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "perfetto/base/string_view.h"
+#include "perfetto/ext/base/string_view.h"
 
 namespace perfetto {
 namespace base {
diff --git a/src/base/string_view_unittest.cc b/src/base/string_view_unittest.cc
index 61dd2a6..4e1ef06 100644
--- a/src/base/string_view_unittest.cc
+++ b/src/base/string_view_unittest.cc
@@ -14,14 +14,14 @@
  * limitations under the License.
  */
 
-#include "perfetto/base/string_view.h"
+#include "perfetto/ext/base/string_view.h"
 
 #include <forward_list>
 #include <unordered_map>
 #include <unordered_set>
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace base {
diff --git a/src/base/string_writer_unittest.cc b/src/base/string_writer_unittest.cc
index f251ba6..8d83dcc 100644
--- a/src/base/string_writer_unittest.cc
+++ b/src/base/string_writer_unittest.cc
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-#include "perfetto/base/string_writer.h"
+#include "perfetto/ext/base/string_writer.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace base {
diff --git a/src/base/task_runner_unittest.cc b/src/base/task_runner_unittest.cc
index 46620de..611cff3 100644
--- a/src/base/task_runner_unittest.cc
+++ b/src/base/task_runner_unittest.cc
@@ -14,21 +14,22 @@
  * limitations under the License.
  */
 
-#include "perfetto/base/unix_task_runner.h"
+#include "perfetto/ext/base/unix_task_runner.h"
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 #include "perfetto/base/build_config.h"
-#include "perfetto/base/scoped_file.h"
+#include "perfetto/ext/base/scoped_file.h"
 
 #if PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) && \
     !PERFETTO_BUILDFLAG(PERFETTO_EMBEDDER_BUILD)
-#include "perfetto/base/android_task_runner.h"
+#include "perfetto/ext/base/android_task_runner.h"
 #endif
 
 #include <thread>
 
-#include "perfetto/base/file_utils.h"
-#include "perfetto/base/pipe.h"
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/pipe.h"
+#include "perfetto/ext/base/utils.h"
 #include "src/base/test/gtest_test_suite.h"
 
 namespace perfetto {
diff --git a/src/base/temp_file.cc b/src/base/temp_file.cc
index e648108..d57d383 100644
--- a/src/base/temp_file.cc
+++ b/src/base/temp_file.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "perfetto/base/temp_file.h"
+#include "perfetto/ext/base/temp_file.h"
 
 #include <stdlib.h>
 #include <unistd.h>
diff --git a/src/base/temp_file_unittest.cc b/src/base/temp_file_unittest.cc
index d167b66..8f5dc22 100644
--- a/src/base/temp_file_unittest.cc
+++ b/src/base/temp_file_unittest.cc
@@ -14,12 +14,12 @@
  * limitations under the License.
  */
 
-#include "perfetto/base/temp_file.h"
+#include "perfetto/ext/base/temp_file.h"
 
 #include <sys/stat.h>
 #include <unistd.h>
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace base {
diff --git a/src/base/test/benchmark_main.cc b/src/base/test/benchmark_main.cc
index f904cfc..e410e52 100644
--- a/src/base/test/benchmark_main.cc
+++ b/src/base/test/benchmark_main.cc
@@ -12,6 +12,6 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "benchmark/benchmark.h"
+#include <benchmark/benchmark.h>
 
 BENCHMARK_MAIN();
diff --git a/src/base/test/gtest_test_suite.h b/src/base/test/gtest_test_suite.h
index 6bf7758..b8b7561 100644
--- a/src/base/test/gtest_test_suite.h
+++ b/src/base/test/gtest_test_suite.h
@@ -17,7 +17,7 @@
 #ifndef SRC_BASE_TEST_GTEST_TEST_SUITE_H_
 #define SRC_BASE_TEST_GTEST_TEST_SUITE_H_
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 
 // Define newer TEST_SUITE googletest APIs as aliases of the older APIs where
 // necessary. This makes it possible to migrate Perfetto to the newer APIs and
diff --git a/src/base/test/test_task_runner.h b/src/base/test/test_task_runner.h
index 28cb92a..a1a9a35 100644
--- a/src/base/test/test_task_runner.h
+++ b/src/base/test/test_task_runner.h
@@ -25,12 +25,12 @@
 #include <string>
 
 #include "perfetto/base/build_config.h"
-#include "perfetto/base/thread_checker.h"
-#include "perfetto/base/unix_task_runner.h"
+#include "perfetto/ext/base/thread_checker.h"
+#include "perfetto/ext/base/unix_task_runner.h"
 
 #if PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) && \
     !PERFETTO_BUILDFLAG(PERFETTO_EMBEDDER_BUILD)
-#include "perfetto/base/android_task_runner.h"
+#include "perfetto/ext/base/android_task_runner.h"
 #endif
 
 namespace perfetto {
diff --git a/src/base/test/utils.h b/src/base/test/utils.h
index b3677b9..2884b57 100644
--- a/src/base/test/utils.h
+++ b/src/base/test/utils.h
@@ -19,7 +19,7 @@
 
 #include <string>
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 #include "perfetto/base/logging.h"
 
 #if defined(GTEST_HAS_DEATH_TEST)
diff --git a/src/base/test/vm_test_utils.cc b/src/base/test/vm_test_utils.cc
index 619fcbf..58a81a6 100644
--- a/src/base/test/vm_test_utils.cc
+++ b/src/base/test/vm_test_utils.cc
@@ -17,7 +17,7 @@
 #include "src/base/test/vm_test_utils.h"
 
 #include "perfetto/base/build_config.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/utils.h"
 
 #include <memory>
 
@@ -32,7 +32,7 @@
 #include <sys/stat.h>
 #endif
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 #include "perfetto/base/build_config.h"
 
 namespace perfetto {
diff --git a/src/base/thread_checker.cc b/src/base/thread_checker.cc
index c723dbe..501abbb 100644
--- a/src/base/thread_checker.cc
+++ b/src/base/thread_checker.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "perfetto/base/thread_checker.h"
+#include "perfetto/ext/base/thread_checker.h"
 
 #if PERFETTO_BUILDFLAG(PERFETTO_OS_WIN)
 #include <Windows.h>
diff --git a/src/base/thread_checker_unittest.cc b/src/base/thread_checker_unittest.cc
index b1bdc3d..46ffcd3 100644
--- a/src/base/thread_checker_unittest.cc
+++ b/src/base/thread_checker_unittest.cc
@@ -14,14 +14,14 @@
  * limitations under the License.
  */
 
-#include "perfetto/base/thread_checker.h"
+#include "perfetto/ext/base/thread_checker.h"
 
 #include <pthread.h>
 
 #include <functional>
 #include <memory>
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace base {
diff --git a/src/base/thread_task_runner.cc b/src/base/thread_task_runner.cc
index a545e6b..d0a1036 100644
--- a/src/base/thread_task_runner.cc
+++ b/src/base/thread_task_runner.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "perfetto/base/thread_task_runner.h"
+#include "perfetto/ext/base/thread_task_runner.h"
 
 #include <condition_variable>
 #include <functional>
@@ -22,7 +22,7 @@
 #include <thread>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/unix_task_runner.h"
+#include "perfetto/ext/base/unix_task_runner.h"
 
 namespace perfetto {
 namespace base {
diff --git a/src/base/thread_task_runner_unittest.cc b/src/base/thread_task_runner_unittest.cc
index 823967b..c4356fe 100644
--- a/src/base/thread_task_runner_unittest.cc
+++ b/src/base/thread_task_runner_unittest.cc
@@ -14,12 +14,12 @@
  * limitations under the License.
  */
 
-#include "perfetto/base/thread_task_runner.h"
+#include "perfetto/ext/base/thread_task_runner.h"
 
 #include <thread>
 
-#include "gtest/gtest.h"
-#include "perfetto/base/thread_checker.h"
+#include <gtest/gtest.h>
+#include "perfetto/ext/base/thread_checker.h"
 
 namespace perfetto {
 namespace base {
diff --git a/src/base/time.cc b/src/base/time.cc
index 8e22d59..f3f809a 100644
--- a/src/base/time.cc
+++ b/src/base/time.cc
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
+#include "perfetto/ext/base/time.h"
 #include "perfetto/base/build_config.h"
-#include "perfetto/base/time.h"
 
 #if PERFETTO_BUILDFLAG(PERFETTO_OS_WIN)
 #include <Windows.h>
diff --git a/src/base/time_unittest.cc b/src/base/time_unittest.cc
index ee1aa9d..cac79bd 100644
--- a/src/base/time_unittest.cc
+++ b/src/base/time_unittest.cc
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-#include "perfetto/base/time.h"
+#include "perfetto/ext/base/time.h"
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace base {
diff --git a/src/base/unix_socket.cc b/src/base/unix_socket.cc
index 1a8364f..cbf3301 100644
--- a/src/base/unix_socket.cc
+++ b/src/base/unix_socket.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "perfetto/base/unix_socket.h"
+#include "perfetto/ext/base/unix_socket.h"
 
 #include <errno.h>
 #include <fcntl.h>
@@ -32,7 +32,7 @@
 #include "perfetto/base/build_config.h"
 #include "perfetto/base/logging.h"
 #include "perfetto/base/task_runner.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/utils.h"
 
 #if PERFETTO_BUILDFLAG(PERFETTO_OS_MACOSX)
 #include <sys/ucred.h>
diff --git a/src/base/unix_socket_unittest.cc b/src/base/unix_socket_unittest.cc
index 5ea646e..e7b3d1a 100644
--- a/src/base/unix_socket_unittest.cc
+++ b/src/base/unix_socket_unittest.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "perfetto/base/unix_socket.h"
+#include "perfetto/ext/base/unix_socket.h"
 
 #include <signal.h>
 #include <sys/mman.h>
@@ -24,14 +24,14 @@
 #include <list>
 #include <thread>
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 #include "perfetto/base/build_config.h"
-#include "perfetto/base/file_utils.h"
 #include "perfetto/base/logging.h"
-#include "perfetto/base/pipe.h"
-#include "perfetto/base/temp_file.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/pipe.h"
+#include "perfetto/ext/base/temp_file.h"
+#include "perfetto/ext/base/utils.h"
 #include "src/base/test/test_task_runner.h"
 #include "src/ipc/test/test_socket.h"
 
diff --git a/src/base/unix_task_runner.cc b/src/base/unix_task_runner.cc
index 0b651ae..6ef71aa 100644
--- a/src/base/unix_task_runner.cc
+++ b/src/base/unix_task_runner.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "perfetto/base/unix_task_runner.h"
+#include "perfetto/ext/base/unix_task_runner.h"
 
 #include "perfetto/base/build_config.h"
 
@@ -24,6 +24,8 @@
 
 #include <limits>
 
+#include "perfetto/ext/base/watchdog.h"
+
 namespace perfetto {
 namespace base {
 
@@ -114,10 +116,10 @@
 
   errno = 0;
   if (immediate_task)
-    RunTask(immediate_task);
+    RunTaskWithWatchdogGuard(immediate_task);
   errno = 0;
   if (delayed_task)
-    RunTask(delayed_task);
+    RunTaskWithWatchdogGuard(delayed_task);
 }
 
 void UnixTaskRunner::PostFileDescriptorWatches() {
@@ -163,7 +165,7 @@
     task = it->second.callback;
   }
   errno = 0;
-  RunTask(task);
+  RunTaskWithWatchdogGuard(task);
 }
 
 int UnixTaskRunner::GetDelayMsToNextTaskLocked() const {
diff --git a/src/base/utils_unittest.cc b/src/base/utils_unittest.cc
index 1d0f834..a1c04af 100644
--- a/src/base/utils_unittest.cc
+++ b/src/base/utils_unittest.cc
@@ -14,17 +14,17 @@
  * limitations under the License.
  */
 
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/utils.h"
 
 #include <fcntl.h>
 #include <signal.h>
 #include <stdint.h>
 #include <unistd.h>
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 
-#include "perfetto/base/file_utils.h"
-#include "perfetto/base/pipe.h"
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/pipe.h"
 
 namespace perfetto {
 namespace base {
diff --git a/src/base/watchdog_posix.cc b/src/base/watchdog_posix.cc
index dd68455..9a8965e 100644
--- a/src/base/watchdog_posix.cc
+++ b/src/base/watchdog_posix.cc
@@ -23,7 +23,7 @@
 // one-off case.
 #if !PERFETTO_BUILDFLAG(PERFETTO_OS_MACOSX)
 
-#include "perfetto/base/watchdog_posix.h"
+#include "perfetto/ext/base/watchdog_posix.h"
 
 #include <fcntl.h>
 #include <inttypes.h>
@@ -35,8 +35,8 @@
 
 #include "perfetto/base/build_config.h"
 #include "perfetto/base/logging.h"
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/base/thread_utils.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/thread_utils.h"
 
 #if PERFETTO_BUILDFLAG(PERFETTO_EMBEDDER_BUILD)
 #error perfetto::base::Watchdog should not be used in Chromium or embedders
diff --git a/src/base/watchdog_unittest.cc b/src/base/watchdog_unittest.cc
index ec55101..e8acaf7 100644
--- a/src/base/watchdog_unittest.cc
+++ b/src/base/watchdog_unittest.cc
@@ -14,13 +14,13 @@
  * limitations under the License.
  */
 
-#include "perfetto/base/watchdog.h"
+#include "perfetto/ext/base/watchdog.h"
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 #include "perfetto/base/logging.h"
-#include "perfetto/base/paged_memory.h"
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/base/thread_utils.h"
+#include "perfetto/ext/base/paged_memory.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/thread_utils.h"
 
 #include <signal.h>
 #include <time.h>
diff --git a/src/base/weak_ptr_unittest.cc b/src/base/weak_ptr_unittest.cc
index eebd36d..4b63d4e 100644
--- a/src/base/weak_ptr_unittest.cc
+++ b/src/base/weak_ptr_unittest.cc
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-#include "perfetto/base/weak_ptr.h"
+#include "perfetto/ext/base/weak_ptr.h"
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace base {
diff --git a/src/ipc/BUILD.gn b/src/ipc/BUILD.gn
index 290da3c..e14d147 100644
--- a/src/ipc/BUILD.gn
+++ b/src/ipc/BUILD.gn
@@ -12,9 +12,9 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import("../../gn/perfetto.gni")
 import("../../gn/fuzzer.gni")
 import("../../gn/ipc_library.gni")
+import("../../gn/perfetto.gni")
 import("../../gn/proto_library.gni")
 
 # For use_libfuzzer.
@@ -31,7 +31,7 @@
 source_set("ipc") {
   public_configs = [ "../../gn:default_config" ]
   public_deps = [
-    "../../include/perfetto/ipc",
+    "../../include/perfetto/ext/ipc",
     "../base:unix_socket",
   ]
   deps = [
diff --git a/src/ipc/buffered_frame_deserializer.cc b/src/ipc/buffered_frame_deserializer.cc
index 620fbae..f065443 100644
--- a/src/ipc/buffered_frame_deserializer.cc
+++ b/src/ipc/buffered_frame_deserializer.cc
@@ -24,7 +24,7 @@
 
 #include <google/protobuf/io/zero_copy_stream_impl_lite.h>
 #include "perfetto/base/logging.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/utils.h"
 
 #include "src/ipc/wire_protocol.pb.h"
 
diff --git a/src/ipc/buffered_frame_deserializer.h b/src/ipc/buffered_frame_deserializer.h
index a8c3f74..3aeee1f 100644
--- a/src/ipc/buffered_frame_deserializer.h
+++ b/src/ipc/buffered_frame_deserializer.h
@@ -24,9 +24,9 @@
 
 #include <sys/mman.h>
 
-#include "perfetto/base/paged_memory.h"
-#include "perfetto/base/utils.h"
-#include "perfetto/ipc/basic_types.h"
+#include "perfetto/ext/base/paged_memory.h"
+#include "perfetto/ext/base/utils.h"
+#include "perfetto/ext/ipc/basic_types.h"
 
 namespace perfetto {
 namespace ipc {
diff --git a/src/ipc/buffered_frame_deserializer_fuzzer.cc b/src/ipc/buffered_frame_deserializer_fuzzer.cc
index ae6525b..c3b22bb 100644
--- a/src/ipc/buffered_frame_deserializer_fuzzer.cc
+++ b/src/ipc/buffered_frame_deserializer_fuzzer.cc
@@ -17,7 +17,7 @@
 #include <stddef.h>
 #include <stdint.h>
 
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/utils.h"
 #include "src/ipc/buffered_frame_deserializer.h"
 #include "src/ipc/wire_protocol.pb.h"
 
diff --git a/src/ipc/buffered_frame_deserializer_unittest.cc b/src/ipc/buffered_frame_deserializer_unittest.cc
index e38aa7d..c9a74e2 100644
--- a/src/ipc/buffered_frame_deserializer_unittest.cc
+++ b/src/ipc/buffered_frame_deserializer_unittest.cc
@@ -19,9 +19,9 @@
 #include <algorithm>
 #include <string>
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 #include "perfetto/base/logging.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/utils.h"
 
 #include "src/ipc/wire_protocol.pb.h"
 
diff --git a/src/ipc/client_impl.cc b/src/ipc/client_impl.cc
index d648df5..ff0dca2 100644
--- a/src/ipc/client_impl.cc
+++ b/src/ipc/client_impl.cc
@@ -23,9 +23,9 @@
 #include <utility>
 
 #include "perfetto/base/task_runner.h"
-#include "perfetto/base/utils.h"
-#include "perfetto/ipc/service_descriptor.h"
-#include "perfetto/ipc/service_proxy.h"
+#include "perfetto/ext/base/utils.h"
+#include "perfetto/ext/ipc/service_descriptor.h"
+#include "perfetto/ext/ipc/service_proxy.h"
 
 // TODO(primiano): Add ThreadChecker everywhere.
 
diff --git a/src/ipc/client_impl.h b/src/ipc/client_impl.h
index d071053..db65f02 100644
--- a/src/ipc/client_impl.h
+++ b/src/ipc/client_impl.h
@@ -17,10 +17,10 @@
 #ifndef SRC_IPC_CLIENT_IMPL_H_
 #define SRC_IPC_CLIENT_IMPL_H_
 
-#include "perfetto/base/scoped_file.h"
 #include "perfetto/base/task_runner.h"
-#include "perfetto/base/unix_socket.h"
-#include "perfetto/ipc/client.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/unix_socket.h"
+#include "perfetto/ext/ipc/client.h"
 #include "src/ipc/buffered_frame_deserializer.h"
 
 #include "src/ipc/wire_protocol.pb.h"
diff --git a/src/ipc/client_impl_unittest.cc b/src/ipc/client_impl_unittest.cc
index 139702e..7fee3f0 100644
--- a/src/ipc/client_impl_unittest.cc
+++ b/src/ipc/client_impl_unittest.cc
@@ -21,14 +21,14 @@
 
 #include <string>
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
-#include "perfetto/base/file_utils.h"
-#include "perfetto/base/temp_file.h"
-#include "perfetto/base/unix_socket.h"
-#include "perfetto/base/utils.h"
-#include "perfetto/ipc/service_descriptor.h"
-#include "perfetto/ipc/service_proxy.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/temp_file.h"
+#include "perfetto/ext/base/unix_socket.h"
+#include "perfetto/ext/base/utils.h"
+#include "perfetto/ext/ipc/service_descriptor.h"
+#include "perfetto/ext/ipc/service_proxy.h"
 #include "src/base/test/test_task_runner.h"
 #include "src/ipc/buffered_frame_deserializer.h"
 #include "src/ipc/test/test_socket.h"
diff --git a/src/ipc/deferred.cc b/src/ipc/deferred.cc
index d923ffc..2bc12ec 100644
--- a/src/ipc/deferred.cc
+++ b/src/ipc/deferred.cc
@@ -14,10 +14,12 @@
  * limitations under the License.
  */
 
-#include "perfetto/ipc/deferred.h"
+#include "perfetto/ext/ipc/deferred.h"
 
 #include <google/protobuf/message_lite.h>
+
 #include "perfetto/base/logging.h"
+#include "perfetto/ext/base/utils.h"
 
 namespace perfetto {
 namespace ipc {
diff --git a/src/ipc/deferred_unittest.cc b/src/ipc/deferred_unittest.cc
index 4362c07..b927e14 100644
--- a/src/ipc/deferred_unittest.cc
+++ b/src/ipc/deferred_unittest.cc
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-#include "perfetto/ipc/deferred.h"
+#include "perfetto/ext/ipc/deferred.h"
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 #include "perfetto/base/logging.h"
 
 #include "src/ipc/test/deferred_unittest_messages.pb.h"
@@ -26,7 +26,7 @@
 namespace {
 
 #if PERFETTO_DCHECK_IS_ON()
-#define EXPECT_DCHECK(x) EXPECT_DEATH_IF_SUPPORTED((x), ".*");
+#define EXPECT_DCHECK(x) EXPECT_DEATH_IF_SUPPORTED((x), ".*")
 #else
 #define EXPECT_DCHECK(x) x
 #endif
diff --git a/src/ipc/host_impl.cc b/src/ipc/host_impl.cc
index 0ccdde3..6895424 100644
--- a/src/ipc/host_impl.cc
+++ b/src/ipc/host_impl.cc
@@ -22,9 +22,9 @@
 #include <utility>
 
 #include "perfetto/base/task_runner.h"
-#include "perfetto/base/utils.h"
-#include "perfetto/ipc/service.h"
-#include "perfetto/ipc/service_descriptor.h"
+#include "perfetto/ext/base/utils.h"
+#include "perfetto/ext/ipc/service.h"
+#include "perfetto/ext/ipc/service_descriptor.h"
 
 #include "src/ipc/wire_protocol.pb.h"
 
diff --git a/src/ipc/host_impl.h b/src/ipc/host_impl.h
index 262da9a..97b5a8b 100644
--- a/src/ipc/host_impl.h
+++ b/src/ipc/host_impl.h
@@ -23,10 +23,10 @@
 #include <vector>
 
 #include "perfetto/base/task_runner.h"
-#include "perfetto/base/thread_checker.h"
-#include "perfetto/base/unix_socket.h"
-#include "perfetto/ipc/deferred.h"
-#include "perfetto/ipc/host.h"
+#include "perfetto/ext/base/thread_checker.h"
+#include "perfetto/ext/base/unix_socket.h"
+#include "perfetto/ext/ipc/deferred.h"
+#include "perfetto/ext/ipc/host.h"
 #include "src/ipc/buffered_frame_deserializer.h"
 
 namespace perfetto {
diff --git a/src/ipc/host_impl_unittest.cc b/src/ipc/host_impl_unittest.cc
index 121f57b..57fe441 100644
--- a/src/ipc/host_impl_unittest.cc
+++ b/src/ipc/host_impl_unittest.cc
@@ -18,15 +18,15 @@
 
 #include <memory>
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
-#include "perfetto/base/file_utils.h"
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/base/temp_file.h"
-#include "perfetto/base/unix_socket.h"
-#include "perfetto/base/utils.h"
-#include "perfetto/ipc/service.h"
-#include "perfetto/ipc/service_descriptor.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/temp_file.h"
+#include "perfetto/ext/base/unix_socket.h"
+#include "perfetto/ext/base/utils.h"
+#include "perfetto/ext/ipc/service.h"
+#include "perfetto/ext/ipc/service_descriptor.h"
 #include "src/base/test/test_task_runner.h"
 #include "src/ipc/buffered_frame_deserializer.h"
 #include "src/ipc/test/test_socket.h"
diff --git a/src/ipc/protoc_plugin/ipc_generator.cc b/src/ipc/protoc_plugin/ipc_generator.cc
index 3c3befb..c955cb1 100644
--- a/src/ipc/protoc_plugin/ipc_generator.cc
+++ b/src/ipc/protoc_plugin/ipc_generator.cc
@@ -250,14 +250,14 @@
   h_printer.Print(kBanner);
   h_printer.Print("#ifndef $guard$\n#define $guard$\n\n", "guard", guard);
   h_printer.Print("#include \"$h$\"\n", "h", StripName(*file) + ".pb.h");
-  h_printer.Print("#include \"perfetto/ipc/deferred.h\"\n");
-  h_printer.Print("#include \"perfetto/ipc/service.h\"\n");
-  h_printer.Print("#include \"perfetto/ipc/service_descriptor.h\"\n");
-  h_printer.Print("#include \"perfetto/ipc/service_proxy.h\"\n\n");
+  h_printer.Print("#include \"perfetto/ext/ipc/deferred.h\"\n");
+  h_printer.Print("#include \"perfetto/ext/ipc/service.h\"\n");
+  h_printer.Print("#include \"perfetto/ext/ipc/service_descriptor.h\"\n");
+  h_printer.Print("#include \"perfetto/ext/ipc/service_proxy.h\"\n\n");
 
   cc_printer.Print(kBanner);
   cc_printer.Print("#include \"$h$\"\n", "h", GetStubName(*file) + ".h");
-  cc_printer.Print("#include \"perfetto/ipc/codegen_helpers.h\"\n\n");
+  cc_printer.Print("#include \"perfetto/ext/ipc/codegen_helpers.h\"\n\n");
   cc_printer.Print("#include <memory>\n");
 
   for (int i = 0; i < file->service_count(); i++) {
diff --git a/src/ipc/service_proxy.cc b/src/ipc/service_proxy.cc
index dabde38..5edb857 100644
--- a/src/ipc/service_proxy.cc
+++ b/src/ipc/service_proxy.cc
@@ -14,14 +14,14 @@
  * limitations under the License.
  */
 
-#include "perfetto/ipc/service_proxy.h"
+#include "perfetto/ext/ipc/service_proxy.h"
 
 #include <utility>
 
 #include <google/protobuf/message_lite.h>
 #include "perfetto/base/logging.h"
-#include "perfetto/base/weak_ptr.h"
-#include "perfetto/ipc/service_descriptor.h"
+#include "perfetto/ext/base/weak_ptr.h"
+#include "perfetto/ext/ipc/service_descriptor.h"
 #include "src/ipc/client_impl.h"
 
 namespace perfetto {
diff --git a/src/ipc/test/ipc_integrationtest.cc b/src/ipc/test/ipc_integrationtest.cc
index 9e21128..cfe5202 100644
--- a/src/ipc/test/ipc_integrationtest.cc
+++ b/src/ipc/test/ipc_integrationtest.cc
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
-#include "perfetto/ipc/client.h"
-#include "perfetto/ipc/host.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include "perfetto/ext/ipc/client.h"
+#include "perfetto/ext/ipc/host.h"
 #include "src/base/test/test_task_runner.h"
 #include "src/ipc/test/test_socket.h"
 
diff --git a/src/ipc/virtual_destructors.cc b/src/ipc/virtual_destructors.cc
index 4a4cb04..d16a770 100644
--- a/src/ipc/virtual_destructors.cc
+++ b/src/ipc/virtual_destructors.cc
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-#include "perfetto/ipc/client.h"
-#include "perfetto/ipc/host.h"
-#include "perfetto/ipc/service.h"
-#include "perfetto/ipc/service_proxy.h"
+#include "perfetto/ext/ipc/client.h"
+#include "perfetto/ext/ipc/host.h"
+#include "perfetto/ext/ipc/service.h"
+#include "perfetto/ext/ipc/service_proxy.h"
 
 // This translation unit contains the definitions for the destructor of pure
 // virtual interfaces for the current build target. The alternative would be
diff --git a/src/perfetto_cmd/BUILD.gn b/src/perfetto_cmd/BUILD.gn
index 2a741a3..0050bea 100644
--- a/src/perfetto_cmd/BUILD.gn
+++ b/src/perfetto_cmd/BUILD.gn
@@ -18,7 +18,7 @@
 source_set("perfetto_cmd") {
   public_deps = [
     ":protos",
-    "../../include/perfetto/traced",
+    "../../include/perfetto/ext/traced",
   ]
   deps = [
     ":trigger_producer",
@@ -54,7 +54,7 @@
 source_set("trigger_perfetto_cmd") {
   public_deps = [
     ":protos",
-    "../../include/perfetto/traced",
+    "../../include/perfetto/ext/traced",
   ]
   deps = [
     ":trigger_producer",
@@ -99,7 +99,7 @@
     ":perfetto_cmd",
     "../../gn:default_deps",
     "../../gn:gtest_deps",
-    "../../include/perfetto/base",
+    "../../include/perfetto/ext/base",
     "../../protos/perfetto/config:lite",
   ]
   sources = [
diff --git a/src/perfetto_cmd/config_unittest.cc b/src/perfetto_cmd/config_unittest.cc
index 024c42f..41ccbb8 100644
--- a/src/perfetto_cmd/config_unittest.cc
+++ b/src/perfetto_cmd/config_unittest.cc
@@ -16,8 +16,8 @@
 
 #include "src/perfetto_cmd/config.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 #include "perfetto/config/trace_config.pb.h"
 
diff --git a/src/perfetto_cmd/main.cc b/src/perfetto_cmd/main.cc
index dc71930..0fbdfc4 100644
--- a/src/perfetto_cmd/main.cc
+++ b/src/perfetto_cmd/main.cc
@@ -15,7 +15,7 @@
  */
 
 #include <stdio.h>
-#include "perfetto/traced/traced.h"
+#include "perfetto/ext/traced/traced.h"
 
 int main(int argc, char** argv) {
   return perfetto::PerfettoCmdMain(argc, argv);
diff --git a/src/perfetto_cmd/pbtxt_to_pb.cc b/src/perfetto_cmd/pbtxt_to_pb.cc
index fe50fc0..35cda58 100644
--- a/src/perfetto_cmd/pbtxt_to_pb.cc
+++ b/src/perfetto_cmd/pbtxt_to_pb.cc
@@ -23,11 +23,11 @@
 
 #include <google/protobuf/io/zero_copy_stream_impl_lite.h>
 
-#include "perfetto/base/file_utils.h"
 #include "perfetto/base/logging.h"
-#include "perfetto/base/string_view.h"
-#include "perfetto/base/utils.h"
 #include "perfetto/common/descriptor.pb.h"
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/string_view.h"
+#include "perfetto/ext/base/utils.h"
 #include "perfetto/protozero/message.h"
 #include "perfetto/protozero/message_handle.h"
 #include "perfetto/protozero/scattered_heap_buffer.h"
diff --git a/src/perfetto_cmd/pbtxt_to_pb_unittest.cc b/src/perfetto_cmd/pbtxt_to_pb_unittest.cc
index f7a7320..3fbeb87 100644
--- a/src/perfetto_cmd/pbtxt_to_pb_unittest.cc
+++ b/src/perfetto_cmd/pbtxt_to_pb_unittest.cc
@@ -19,8 +19,8 @@
 #include <memory>
 #include <string>
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 #include <google/protobuf/io/zero_copy_stream_impl_lite.h>
 #include "perfetto/config/trace_config.pb.h"
diff --git a/src/perfetto_cmd/perfetto_cmd.cc b/src/perfetto_cmd/perfetto_cmd.cc
index 1c3ac22..823fbdd 100644
--- a/src/perfetto_cmd/perfetto_cmd.cc
+++ b/src/perfetto_cmd/perfetto_cmd.cc
@@ -21,6 +21,7 @@
 #include <signal.h>
 #include <stdio.h>
 #include <sys/stat.h>
+#include <sys/types.h>
 #include <time.h>
 #include <unistd.h>
 
@@ -29,18 +30,18 @@
 #include <iterator>
 #include <sstream>
 
-#include "perfetto/base/file_utils.h"
 #include "perfetto/base/logging.h"
-#include "perfetto/base/string_view.h"
-#include "perfetto/base/time.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/string_view.h"
+#include "perfetto/ext/base/time.h"
+#include "perfetto/ext/base/utils.h"
+#include "perfetto/ext/traced/traced.h"
+#include "perfetto/ext/tracing/core/basic_types.h"
+#include "perfetto/ext/tracing/core/data_source_config.h"
+#include "perfetto/ext/tracing/core/data_source_descriptor.h"
+#include "perfetto/ext/tracing/core/trace_config.h"
+#include "perfetto/ext/tracing/core/trace_packet.h"
 #include "perfetto/protozero/proto_utils.h"
-#include "perfetto/traced/traced.h"
-#include "perfetto/tracing/core/basic_types.h"
-#include "perfetto/tracing/core/data_source_config.h"
-#include "perfetto/tracing/core/data_source_descriptor.h"
-#include "perfetto/tracing/core/trace_config.h"
-#include "perfetto/tracing/core/trace_packet.h"
 #include "src/perfetto_cmd/config.h"
 #include "src/perfetto_cmd/pbtxt_to_pb.h"
 #include "src/perfetto_cmd/trigger_producer.h"
@@ -120,6 +121,14 @@
   return true;
 }
 
+void ClearUmask() {
+#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) ||   \
+    PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) || \
+    PERFETTO_BUILDFLAG(PERFETTO_OS_MACOSX)
+  umask(0000);
+#endif
+}
+
 }  // namespace
 
 // Temporary directory for DropBox traces. Note that this is automatically
@@ -167,6 +176,8 @@
 }
 
 int PerfettoCmd::Main(int argc, char** argv) {
+  ClearUmask();  // make sure that file creation is not affected by umask
+
   enum LongOption {
     OPT_ALERT_ID = 1000,
     OPT_CONFIG_ID,
@@ -518,9 +529,10 @@
       trace_config_->guardrail_overrides().max_upload_per_day_bytes();
 #endif
 
-  if ((trace_config_->duration_ms() == 0) && args.is_dropbox &&
-      !args.ignore_guardrails) {
-    PERFETTO_ELOG("Can't trace indefinitely when uploading via Dropbox.");
+  if (args.is_dropbox && !args.ignore_guardrails &&
+      (trace_config_->duration_ms() == 0 &&
+       trace_config_->trigger_config().trigger_timeout_ms() == 0)) {
+    PERFETTO_ELOG("Can't trace indefinitely when tracing to Dropbox.");
     return 1;
   }
 
diff --git a/src/perfetto_cmd/perfetto_cmd.h b/src/perfetto_cmd/perfetto_cmd.h
index 122f042..0461ab8 100644
--- a/src/perfetto_cmd/perfetto_cmd.h
+++ b/src/perfetto_cmd/perfetto_cmd.h
@@ -24,17 +24,17 @@
 #include <time.h>
 
 #include "perfetto/base/build_config.h"
-#include "perfetto/base/event.h"
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/base/unix_task_runner.h"
-#include "perfetto/tracing/core/consumer.h"
-#include "perfetto/tracing/ipc/consumer_ipc_client.h"
+#include "perfetto/ext/base/event.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/unix_task_runner.h"
+#include "perfetto/ext/tracing/core/consumer.h"
+#include "perfetto/ext/tracing/ipc/consumer_ipc_client.h"
 #include "src/perfetto_cmd/rate_limiter.h"
 
 #include "src/perfetto_cmd/perfetto_cmd_state.pb.h"
 
 #if PERFETTO_BUILDFLAG(PERFETTO_ANDROID_BUILD)
-#include "perfetto/base/android_task_runner.h"
+#include "perfetto/ext/base/android_task_runner.h"
 #endif  // PERFETTO_BUILDFLAG(PERFETTO_ANDROID_BUILD)
 
 namespace perfetto {
diff --git a/src/perfetto_cmd/rate_limiter.cc b/src/perfetto_cmd/rate_limiter.cc
index 3b018bc..973a751 100644
--- a/src/perfetto_cmd/rate_limiter.cc
+++ b/src/perfetto_cmd/rate_limiter.cc
@@ -20,10 +20,10 @@
 #include <sys/types.h>
 #include <unistd.h>
 
-#include "perfetto/base/file_utils.h"
 #include "perfetto/base/logging.h"
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/utils.h"
 #include "src/perfetto_cmd/perfetto_cmd.h"
 
 #if PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
diff --git a/src/perfetto_cmd/rate_limiter.h b/src/perfetto_cmd/rate_limiter.h
index beb61c8..54411c7 100644
--- a/src/perfetto_cmd/rate_limiter.h
+++ b/src/perfetto_cmd/rate_limiter.h
@@ -17,7 +17,7 @@
 #ifndef SRC_PERFETTO_CMD_RATE_LIMITER_H_
 #define SRC_PERFETTO_CMD_RATE_LIMITER_H_
 
-#include "perfetto/base/time.h"
+#include "perfetto/ext/base/time.h"
 #include "src/perfetto_cmd/perfetto_cmd_state.pb.h"
 
 namespace perfetto {
diff --git a/src/perfetto_cmd/rate_limiter_unittest.cc b/src/perfetto_cmd/rate_limiter_unittest.cc
index 81521cf..839c879 100644
--- a/src/perfetto_cmd/rate_limiter_unittest.cc
+++ b/src/perfetto_cmd/rate_limiter_unittest.cc
@@ -18,13 +18,13 @@
 
 #include <stdio.h>
 
-#include "perfetto/base/file_utils.h"
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/base/temp_file.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/temp_file.h"
+#include "perfetto/ext/base/utils.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 using testing::_;
 using testing::NiceMock;
diff --git a/src/perfetto_cmd/trigger_perfetto.cc b/src/perfetto_cmd/trigger_perfetto.cc
index c6e3a14..cd22ea2 100644
--- a/src/perfetto_cmd/trigger_perfetto.cc
+++ b/src/perfetto_cmd/trigger_perfetto.cc
@@ -20,8 +20,8 @@
 #include <vector>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/unix_task_runner.h"
-#include "perfetto/traced/traced.h"
+#include "perfetto/ext/base/unix_task_runner.h"
+#include "perfetto/ext/traced/traced.h"
 #include "src/perfetto_cmd/trigger_producer.h"
 
 namespace perfetto {
diff --git a/src/perfetto_cmd/trigger_perfetto_main.cc b/src/perfetto_cmd/trigger_perfetto_main.cc
index 3ba5581..01173bf 100644
--- a/src/perfetto_cmd/trigger_perfetto_main.cc
+++ b/src/perfetto_cmd/trigger_perfetto_main.cc
@@ -15,7 +15,7 @@
  */
 
 #include <stdio.h>
-#include "perfetto/traced/traced.h"
+#include "perfetto/ext/traced/traced.h"
 
 int main(int argc, char** argv) {
   return perfetto::TriggerPerfettoMain(argc, argv);
diff --git a/src/perfetto_cmd/trigger_producer.cc b/src/perfetto_cmd/trigger_producer.cc
index c84716f..04f12ad 100644
--- a/src/perfetto_cmd/trigger_producer.cc
+++ b/src/perfetto_cmd/trigger_producer.cc
@@ -19,8 +19,8 @@
 #include <memory>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/tracing/core/producer.h"
-#include "perfetto/tracing/ipc/producer_ipc_client.h"
+#include "perfetto/ext/tracing/core/producer.h"
+#include "perfetto/ext/tracing/ipc/producer_ipc_client.h"
 #include "src/tracing/ipc/default_socket.h"
 
 namespace perfetto {
diff --git a/src/perfetto_cmd/trigger_producer.h b/src/perfetto_cmd/trigger_producer.h
index 6abab0e..d12c178 100644
--- a/src/perfetto_cmd/trigger_producer.h
+++ b/src/perfetto_cmd/trigger_producer.h
@@ -21,9 +21,9 @@
 #include <vector>
 
 #include "perfetto/base/task_runner.h"
-#include "perfetto/base/weak_ptr.h"
-#include "perfetto/tracing/core/producer.h"
-#include "perfetto/tracing/core/tracing_service.h"
+#include "perfetto/ext/base/weak_ptr.h"
+#include "perfetto/ext/tracing/core/producer.h"
+#include "perfetto/ext/tracing/core/tracing_service.h"
 
 namespace perfetto {
 
diff --git a/src/profiling/memory/bookkeeping.cc b/src/profiling/memory/bookkeeping.cc
index 0d1b533..39943a2 100644
--- a/src/profiling/memory/bookkeeping.cc
+++ b/src/profiling/memory/bookkeeping.cc
@@ -21,21 +21,13 @@
 #include <sys/stat.h>
 #include <sys/types.h>
 
-#include "perfetto/base/file_utils.h"
 #include "perfetto/base/logging.h"
-#include "perfetto/base/scoped_file.h"
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/scoped_file.h"
 
 namespace perfetto {
 namespace profiling {
 
-GlobalCallstackTrie::Node* GlobalCallstackTrie::Node::GetOrCreateChild(
-    const Interned<Frame>& loc) {
-  Node* child = children_.Get(loc);
-  if (!child)
-    child = children_.Emplace(loc, this);
-  return child;
-}
-
 void HeapTracker::RecordMalloc(const std::vector<FrameData>& callstack,
                                uint64_t address,
                                uint64_t size,
@@ -136,6 +128,14 @@
   return alloc.allocated - alloc.freed;
 }
 
+GlobalCallstackTrie::Node* GlobalCallstackTrie::Node::GetOrCreateChild(
+    const Interned<Frame>& loc) {
+  Node* child = children_.Get(loc);
+  if (!child)
+    child = children_.Emplace(loc, this);
+  return child;
+}
+
 std::vector<Interned<Frame>> GlobalCallstackTrie::BuildCallstack(
     const Node* node) const {
   std::vector<Interned<Frame>> res;
diff --git a/src/profiling/memory/bookkeeping.h b/src/profiling/memory/bookkeeping.h
index 892523d..b09eb22 100644
--- a/src/profiling/memory/bookkeeping.h
+++ b/src/profiling/memory/bookkeeping.h
@@ -21,9 +21,9 @@
 #include <string>
 #include <vector>
 
-#include "perfetto/base/lookup_set.h"
-#include "perfetto/base/string_splitter.h"
-#include "perfetto/base/time.h"
+#include "perfetto/ext/base/lookup_set.h"
+#include "perfetto/ext/base/string_splitter.h"
+#include "perfetto/ext/base/time.h"
 #include "src/profiling/memory/interner.h"
 #include "src/profiling/memory/unwound_messages.h"
 
diff --git a/src/profiling/memory/bookkeeping_dump.h b/src/profiling/memory/bookkeeping_dump.h
index 2362b8d..9b45560 100644
--- a/src/profiling/memory/bookkeeping_dump.h
+++ b/src/profiling/memory/bookkeeping_dump.h
@@ -25,7 +25,7 @@
 #include "perfetto/trace/profiling/profile_packet.pbzero.h"
 #include "perfetto/trace/trace_packet.pbzero.h"
 
-#include "perfetto/tracing/core/trace_writer.h"
+#include "perfetto/ext/tracing/core/trace_writer.h"
 
 #include "src/profiling/memory/bookkeeping.h"
 #include "src/profiling/memory/interner.h"
diff --git a/src/profiling/memory/bookkeeping_unittest.cc b/src/profiling/memory/bookkeeping_unittest.cc
index a990f65..be64c99 100644
--- a/src/profiling/memory/bookkeeping_unittest.cc
+++ b/src/profiling/memory/bookkeeping_unittest.cc
@@ -16,8 +16,8 @@
 
 #include "src/profiling/memory/bookkeeping.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace profiling {
diff --git a/src/profiling/memory/client.cc b/src/profiling/memory/client.cc
index dc6952d..86550b2 100644
--- a/src/profiling/memory/client.cc
+++ b/src/profiling/memory/client.cc
@@ -34,11 +34,11 @@
 #include <new>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/base/thread_utils.h"
-#include "perfetto/base/time.h"
-#include "perfetto/base/unix_socket.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/thread_utils.h"
+#include "perfetto/ext/base/time.h"
+#include "perfetto/ext/base/unix_socket.h"
+#include "perfetto/ext/base/utils.h"
 #include "src/profiling/memory/sampler.h"
 #include "src/profiling/memory/scoped_spinlock.h"
 #include "src/profiling/memory/wire_protocol.h"
diff --git a/src/profiling/memory/client.h b/src/profiling/memory/client.h
index 72b9c6c..5b4a95e 100644
--- a/src/profiling/memory/client.h
+++ b/src/profiling/memory/client.h
@@ -25,7 +25,7 @@
 #include <mutex>
 #include <vector>
 
-#include "perfetto/base/unix_socket.h"
+#include "perfetto/ext/base/unix_socket.h"
 #include "src/profiling/memory/sampler.h"
 #include "src/profiling/memory/shared_ring_buffer.h"
 #include "src/profiling/memory/unhooked_allocator.h"
diff --git a/src/profiling/memory/client_unittest.cc b/src/profiling/memory/client_unittest.cc
index e5ed201..fb790ac 100644
--- a/src/profiling/memory/client_unittest.cc
+++ b/src/profiling/memory/client_unittest.cc
@@ -16,9 +16,9 @@
 
 #include "src/profiling/memory/client.h"
 
-#include "gtest/gtest.h"
-#include "perfetto/base/thread_utils.h"
-#include "perfetto/base/unix_socket.h"
+#include <gtest/gtest.h>
+#include "perfetto/ext/base/thread_utils.h"
+#include "perfetto/ext/base/unix_socket.h"
 
 #include <thread>
 
diff --git a/src/profiling/memory/heapprofd_end_to_end_test.cc b/src/profiling/memory/heapprofd_end_to_end_test.cc
index 07bd493..e5191b1 100644
--- a/src/profiling/memory/heapprofd_end_to_end_test.cc
+++ b/src/profiling/memory/heapprofd_end_to_end_test.cc
@@ -18,10 +18,10 @@
 #include <sys/types.h>
 #include <sys/wait.h>
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 #include "perfetto/base/build_config.h"
-#include "perfetto/base/pipe.h"
+#include "perfetto/ext/base/pipe.h"
 #include "perfetto/protozero/scattered_heap_buffer.h"
 #include "src/base/test/test_task_runner.h"
 #include "src/profiling/memory/heapprofd_producer.h"
diff --git a/src/profiling/memory/heapprofd_producer.cc b/src/profiling/memory/heapprofd_producer.cc
index 2c32f07..f55306d 100644
--- a/src/profiling/memory/heapprofd_producer.cc
+++ b/src/profiling/memory/heapprofd_producer.cc
@@ -22,13 +22,13 @@
 #include <sys/types.h>
 #include <unistd.h>
 
-#include "perfetto/base/file_utils.h"
-#include "perfetto/base/string_utils.h"
-#include "perfetto/base/thread_task_runner.h"
-#include "perfetto/tracing/core/data_source_config.h"
-#include "perfetto/tracing/core/data_source_descriptor.h"
-#include "perfetto/tracing/core/trace_writer.h"
-#include "perfetto/tracing/ipc/producer_ipc_client.h"
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/string_utils.h"
+#include "perfetto/ext/base/thread_task_runner.h"
+#include "perfetto/ext/tracing/core/data_source_config.h"
+#include "perfetto/ext/tracing/core/data_source_descriptor.h"
+#include "perfetto/ext/tracing/core/trace_writer.h"
+#include "perfetto/ext/tracing/ipc/producer_ipc_client.h"
 
 #include "src/profiling/memory/bookkeeping_dump.h"
 
diff --git a/src/profiling/memory/heapprofd_producer.h b/src/profiling/memory/heapprofd_producer.h
index ec088cf..f1fee65 100644
--- a/src/profiling/memory/heapprofd_producer.h
+++ b/src/profiling/memory/heapprofd_producer.h
@@ -22,16 +22,16 @@
 #include <map>
 #include <vector>
 
-#include "perfetto/base/optional.h"
 #include "perfetto/base/task_runner.h"
-#include "perfetto/base/unix_socket.h"
-#include "perfetto/base/unix_task_runner.h"
+#include "perfetto/ext/base/optional.h"
+#include "perfetto/ext/base/unix_socket.h"
+#include "perfetto/ext/base/unix_task_runner.h"
 
-#include "perfetto/tracing/core/basic_types.h"
-#include "perfetto/tracing/core/data_source_config.h"
-#include "perfetto/tracing/core/producer.h"
-#include "perfetto/tracing/core/trace_writer.h"
-#include "perfetto/tracing/core/tracing_service.h"
+#include "perfetto/ext/tracing/core/basic_types.h"
+#include "perfetto/ext/tracing/core/data_source_config.h"
+#include "perfetto/ext/tracing/core/producer.h"
+#include "perfetto/ext/tracing/core/trace_writer.h"
+#include "perfetto/ext/tracing/core/tracing_service.h"
 
 #include "src/profiling/memory/bookkeeping.h"
 #include "src/profiling/memory/heapprofd_config.h"
diff --git a/src/profiling/memory/heapprofd_producer_unittest.cc b/src/profiling/memory/heapprofd_producer_unittest.cc
index e3cb229..6e936bd 100644
--- a/src/profiling/memory/heapprofd_producer_unittest.cc
+++ b/src/profiling/memory/heapprofd_producer_unittest.cc
@@ -16,12 +16,12 @@
 
 #include "src/profiling/memory/heapprofd_producer.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
-#include "perfetto/tracing/core/basic_types.h"
-#include "perfetto/tracing/core/commit_data_request.h"
-#include "perfetto/tracing/core/data_source_descriptor.h"
+#include "perfetto/ext/tracing/core/basic_types.h"
+#include "perfetto/ext/tracing/core/commit_data_request.h"
+#include "perfetto/ext/tracing/core/data_source_descriptor.h"
 
 #include "src/base/test/test_task_runner.h"
 
diff --git a/src/profiling/memory/interner_unittest.cc b/src/profiling/memory/interner_unittest.cc
index 6b239fd..b7ffb5f 100644
--- a/src/profiling/memory/interner_unittest.cc
+++ b/src/profiling/memory/interner_unittest.cc
@@ -16,8 +16,8 @@
 
 #include "src/profiling/memory/interner.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace profiling {
diff --git a/src/profiling/memory/main.cc b/src/profiling/memory/main.cc
index a134930..a66c6aa 100644
--- a/src/profiling/memory/main.cc
+++ b/src/profiling/memory/main.cc
@@ -23,15 +23,15 @@
 #include <getopt.h>
 #include <signal.h>
 
-#include "perfetto/base/event.h"
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/base/unix_socket.h"
-#include "perfetto/base/watchdog.h"
+#include "perfetto/ext/base/event.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/unix_socket.h"
+#include "perfetto/ext/base/watchdog.h"
 #include "src/profiling/memory/heapprofd_producer.h"
 #include "src/profiling/memory/wire_protocol.h"
 #include "src/tracing/ipc/default_socket.h"
 
-#include "perfetto/base/unix_task_runner.h"
+#include "perfetto/ext/base/unix_task_runner.h"
 
 // TODO(rsavitski): the task runner watchdog spawns a thread (normally for
 // tracking cpu/mem usage) that we don't strictly need.
diff --git a/src/profiling/memory/malloc_hooks.cc b/src/profiling/memory/malloc_hooks.cc
index 6651216..a50b662 100644
--- a/src/profiling/memory/malloc_hooks.cc
+++ b/src/profiling/memory/malloc_hooks.cc
@@ -31,9 +31,9 @@
 
 #include "perfetto/base/build_config.h"
 #include "perfetto/base/logging.h"
-#include "perfetto/base/no_destructor.h"
-#include "perfetto/base/unix_socket.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/no_destructor.h"
+#include "perfetto/ext/base/unix_socket.h"
+#include "perfetto/ext/base/utils.h"
 #include "src/profiling/memory/client.h"
 #include "src/profiling/memory/proc_utils.h"
 #include "src/profiling/memory/scoped_spinlock.h"
diff --git a/src/profiling/memory/page_idle_checker.cc b/src/profiling/memory/page_idle_checker.cc
index 62e19f6..10cd1fe 100644
--- a/src/profiling/memory/page_idle_checker.cc
+++ b/src/profiling/memory/page_idle_checker.cc
@@ -15,6 +15,7 @@
  */
 
 #include "src/profiling/memory/page_idle_checker.h"
+#include "perfetto/ext/base/utils.h"
 #include "src/profiling/memory/utils.h"
 
 #include <inttypes.h>
diff --git a/src/profiling/memory/page_idle_checker.h b/src/profiling/memory/page_idle_checker.h
index 5a3dcae..529c097 100644
--- a/src/profiling/memory/page_idle_checker.h
+++ b/src/profiling/memory/page_idle_checker.h
@@ -22,7 +22,7 @@
 #include <stddef.h>
 #include <stdint.h>
 
-#include "perfetto/base/scoped_file.h"
+#include "perfetto/ext/base/scoped_file.h"
 
 namespace perfetto {
 namespace profiling {
diff --git a/src/profiling/memory/page_idle_checker_unittest.cc b/src/profiling/memory/page_idle_checker_unittest.cc
index 2f7ada9..1de479c 100644
--- a/src/profiling/memory/page_idle_checker_unittest.cc
+++ b/src/profiling/memory/page_idle_checker_unittest.cc
@@ -16,7 +16,9 @@
 
 #include "src/profiling/memory/page_idle_checker.h"
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
+
+#include "perfetto/ext/base/utils.h"
 
 namespace perfetto {
 namespace profiling {
diff --git a/src/profiling/memory/proc_utils.cc b/src/profiling/memory/proc_utils.cc
index baef7ad..ba5ee79 100644
--- a/src/profiling/memory/proc_utils.cc
+++ b/src/profiling/memory/proc_utils.cc
@@ -20,7 +20,7 @@
 #include <sys/stat.h>
 #include <unistd.h>
 
-#include "perfetto/base/file_utils.h"
+#include "perfetto/ext/base/file_utils.h"
 
 namespace perfetto {
 namespace profiling {
diff --git a/src/profiling/memory/proc_utils.h b/src/profiling/memory/proc_utils.h
index 0cd16d8..d20d8ba 100644
--- a/src/profiling/memory/proc_utils.h
+++ b/src/profiling/memory/proc_utils.h
@@ -21,7 +21,7 @@
 #include <set>
 #include <vector>
 
-#include "perfetto/base/scoped_file.h"
+#include "perfetto/ext/base/scoped_file.h"
 
 namespace perfetto {
 namespace profiling {
diff --git a/src/profiling/memory/proc_utils_unittest.cc b/src/profiling/memory/proc_utils_unittest.cc
index 9421d9c..cc89dd6 100644
--- a/src/profiling/memory/proc_utils_unittest.cc
+++ b/src/profiling/memory/proc_utils_unittest.cc
@@ -16,8 +16,10 @@
 
 #include "src/profiling/memory/proc_utils.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+
+#include "perfetto/ext/base/utils.h"
 
 namespace perfetto {
 namespace profiling {
diff --git a/src/profiling/memory/sampler.h b/src/profiling/memory/sampler.h
index 0108634..b46d4bf 100644
--- a/src/profiling/memory/sampler.h
+++ b/src/profiling/memory/sampler.h
@@ -22,7 +22,7 @@
 #include <atomic>
 #include <random>
 
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/utils.h"
 
 namespace perfetto {
 namespace profiling {
diff --git a/src/profiling/memory/sampler_unittest.cc b/src/profiling/memory/sampler_unittest.cc
index 4e53f24..0bd45fb 100644
--- a/src/profiling/memory/sampler_unittest.cc
+++ b/src/profiling/memory/sampler_unittest.cc
@@ -16,7 +16,7 @@
 
 #include "src/profiling/memory/sampler.h"
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 
 #include <thread>
 
diff --git a/src/profiling/memory/scoped_spinlock.cc b/src/profiling/memory/scoped_spinlock.cc
index de9ef59..c306d79 100644
--- a/src/profiling/memory/scoped_spinlock.cc
+++ b/src/profiling/memory/scoped_spinlock.cc
@@ -20,7 +20,7 @@
 
 #include <atomic>
 
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/utils.h"
 
 namespace {
 // Wait for ~1s before timing out (+- spurious wakeups from the sleeps).
diff --git a/src/profiling/memory/scoped_spinlock.h b/src/profiling/memory/scoped_spinlock.h
index 612c151..67d8bd1 100644
--- a/src/profiling/memory/scoped_spinlock.h
+++ b/src/profiling/memory/scoped_spinlock.h
@@ -18,7 +18,7 @@
 #define SRC_PROFILING_MEMORY_SCOPED_SPINLOCK_H_
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/utils.h"
 
 #include <atomic>
 #include <new>
diff --git a/src/profiling/memory/shared_ring_buffer.cc b/src/profiling/memory/shared_ring_buffer.cc
index d913488..99a9c89 100644
--- a/src/profiling/memory/shared_ring_buffer.cc
+++ b/src/profiling/memory/shared_ring_buffer.cc
@@ -26,8 +26,8 @@
 #include <unistd.h>
 
 #include "perfetto/base/build_config.h"
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/base/temp_file.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/temp_file.h"
 #include "src/profiling/memory/scoped_spinlock.h"
 
 #if PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
diff --git a/src/profiling/memory/shared_ring_buffer.h b/src/profiling/memory/shared_ring_buffer.h
index b1d4d89..0c5492f 100644
--- a/src/profiling/memory/shared_ring_buffer.h
+++ b/src/profiling/memory/shared_ring_buffer.h
@@ -17,9 +17,9 @@
 #ifndef SRC_PROFILING_MEMORY_SHARED_RING_BUFFER_H_
 #define SRC_PROFILING_MEMORY_SHARED_RING_BUFFER_H_
 
-#include "perfetto/base/optional.h"
-#include "perfetto/base/unix_socket.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/optional.h"
+#include "perfetto/ext/base/unix_socket.h"
+#include "perfetto/ext/base/utils.h"
 #include "src/profiling/memory/scoped_spinlock.h"
 
 #include <atomic>
diff --git a/src/profiling/memory/shared_ring_buffer_fuzzer.cc b/src/profiling/memory/shared_ring_buffer_fuzzer.cc
index a874a0f..0fd03ce 100644
--- a/src/profiling/memory/shared_ring_buffer_fuzzer.cc
+++ b/src/profiling/memory/shared_ring_buffer_fuzzer.cc
@@ -17,8 +17,8 @@
 #include <stddef.h>
 #include <stdint.h>
 
-#include "perfetto/base/file_utils.h"
-#include "perfetto/base/temp_file.h"
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/temp_file.h"
 #include "src/profiling/memory/shared_ring_buffer.h"
 
 namespace perfetto {
diff --git a/src/profiling/memory/shared_ring_buffer_unittest.cc b/src/profiling/memory/shared_ring_buffer_unittest.cc
index 46ee3c7..e11ae67 100644
--- a/src/profiling/memory/shared_ring_buffer_unittest.cc
+++ b/src/profiling/memory/shared_ring_buffer_unittest.cc
@@ -22,8 +22,8 @@
 #include <thread>
 #include <unordered_map>
 
-#include "gtest/gtest.h"
-#include "perfetto/base/optional.h"
+#include <gtest/gtest.h>
+#include "perfetto/ext/base/optional.h"
 
 namespace perfetto {
 namespace profiling {
diff --git a/src/profiling/memory/shared_ring_buffer_write_fuzzer.cc b/src/profiling/memory/shared_ring_buffer_write_fuzzer.cc
index 1bdd925..be5bbb9 100644
--- a/src/profiling/memory/shared_ring_buffer_write_fuzzer.cc
+++ b/src/profiling/memory/shared_ring_buffer_write_fuzzer.cc
@@ -17,8 +17,8 @@
 #include <stddef.h>
 #include <stdint.h>
 
-#include "perfetto/base/file_utils.h"
-#include "perfetto/base/temp_file.h"
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/temp_file.h"
 #include "src/profiling/memory/shared_ring_buffer.h"
 
 namespace perfetto {
diff --git a/src/profiling/memory/system_property.cc b/src/profiling/memory/system_property.cc
index f73c3dd..a2fda64 100644
--- a/src/profiling/memory/system_property.cc
+++ b/src/profiling/memory/system_property.cc
@@ -17,6 +17,7 @@
 #include "src/profiling/memory/system_property.h"
 
 #include "perfetto/base/logging.h"
+#include "perfetto/ext/base/utils.h"
 
 #if PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
 #include <sys/system_properties.h>
diff --git a/src/profiling/memory/system_property_unittest.cc b/src/profiling/memory/system_property_unittest.cc
index 2bf16ab..8ddf601 100644
--- a/src/profiling/memory/system_property_unittest.cc
+++ b/src/profiling/memory/system_property_unittest.cc
@@ -16,8 +16,8 @@
 
 #include "src/profiling/memory/system_property.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace profiling {
diff --git a/src/profiling/memory/unwinding.cc b/src/profiling/memory/unwinding.cc
index 9db1a84..dcf41e2 100644
--- a/src/profiling/memory/unwinding.cc
+++ b/src/profiling/memory/unwinding.cc
@@ -44,12 +44,12 @@
 
 #include <procinfo/process_map.h>
 
-#include "perfetto/base/file_utils.h"
 #include "perfetto/base/logging.h"
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/base/string_utils.h"
 #include "perfetto/base/task_runner.h"
-#include "perfetto/base/thread_task_runner.h"
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/string_utils.h"
+#include "perfetto/ext/base/thread_task_runner.h"
 
 #include "src/profiling/memory/utils.h"
 #include "src/profiling/memory/wire_protocol.h"
diff --git a/src/profiling/memory/unwinding.h b/src/profiling/memory/unwinding.h
index 2d235b1..9fab671 100644
--- a/src/profiling/memory/unwinding.h
+++ b/src/profiling/memory/unwinding.h
@@ -27,9 +27,9 @@
 #include <unwindstack/JitDebug.h>
 #endif
 
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/base/thread_task_runner.h"
-#include "perfetto/tracing/core/basic_types.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/thread_task_runner.h"
+#include "perfetto/ext/tracing/core/basic_types.h"
 #include "src/profiling/memory/bookkeeping.h"
 #include "src/profiling/memory/unwound_messages.h"
 #include "src/profiling/memory/wire_protocol.h"
diff --git a/src/profiling/memory/unwinding_fuzzer.cc b/src/profiling/memory/unwinding_fuzzer.cc
index a80e039..c2046b0 100644
--- a/src/profiling/memory/unwinding_fuzzer.cc
+++ b/src/profiling/memory/unwinding_fuzzer.cc
@@ -17,8 +17,8 @@
 #include <stddef.h>
 #include <stdint.h>
 
-#include "perfetto/base/utils.h"
-#include "perfetto/tracing/core/basic_types.h"
+#include "perfetto/ext/base/utils.h"
+#include "perfetto/ext/tracing/core/basic_types.h"
 #include "src/profiling/memory/shared_ring_buffer.h"
 #include "src/profiling/memory/unwinding.h"
 #include "src/profiling/memory/unwound_messages.h"
diff --git a/src/profiling/memory/unwinding_unittest.cc b/src/profiling/memory/unwinding_unittest.cc
index 6696410..881d809 100644
--- a/src/profiling/memory/unwinding_unittest.cc
+++ b/src/profiling/memory/unwinding_unittest.cc
@@ -15,12 +15,12 @@
  */
 
 #include "src/profiling/memory/unwinding.h"
-#include "perfetto/base/scoped_file.h"
+#include "perfetto/ext/base/scoped_file.h"
 #include "src/profiling/memory/client.h"
 #include "src/profiling/memory/wire_protocol.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 #include <cxxabi.h>
 #include <fcntl.h>
diff --git a/src/profiling/memory/wire_protocol.cc b/src/profiling/memory/wire_protocol.cc
index 52af41b..6209fc8 100644
--- a/src/profiling/memory/wire_protocol.cc
+++ b/src/profiling/memory/wire_protocol.cc
@@ -17,8 +17,8 @@
 #include "src/profiling/memory/wire_protocol.h"
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/unix_socket.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/unix_socket.h"
+#include "perfetto/ext/base/utils.h"
 
 #include <sys/socket.h>
 #include <sys/types.h>
diff --git a/src/profiling/memory/wire_protocol_unittest.cc b/src/profiling/memory/wire_protocol_unittest.cc
index 189cba0..ed9cc74 100644
--- a/src/profiling/memory/wire_protocol_unittest.cc
+++ b/src/profiling/memory/wire_protocol_unittest.cc
@@ -16,14 +16,14 @@
 
 #include "src/profiling/memory/wire_protocol.h"
 #include "perfetto/base/logging.h"
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/base/unix_socket.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/unix_socket.h"
 
 #include <sys/socket.h>
 #include <sys/types.h>
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace profiling {
diff --git a/src/protozero/BUILD.gn b/src/protozero/BUILD.gn
index 1197437..7d1526c 100644
--- a/src/protozero/BUILD.gn
+++ b/src/protozero/BUILD.gn
@@ -24,8 +24,8 @@
   ]
   deps = [
     "../../gn:default_deps",
-    "../../gn:gtest_prod_config",
-    "../base",
+    "../../include/perfetto/base",
+    "../../include/perfetto/ext/base",  # TODO(primiano): remove this
   ]
   sources = [
     "message.cc",
@@ -98,5 +98,6 @@
   deps = [
     ":protozero",
     "../../gn:default_deps",
+    "../base",
   ]
 }
diff --git a/src/protozero/message_handle_unittest.cc b/src/protozero/message_handle_unittest.cc
index 1ca4c28..f6cbdb8 100644
--- a/src/protozero/message_handle_unittest.cc
+++ b/src/protozero/message_handle_unittest.cc
@@ -16,7 +16,7 @@
 
 #include "perfetto/protozero/message_handle.h"
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 #include "perfetto/protozero/message.h"
 
 namespace protozero {
diff --git a/src/protozero/message_unittest.cc b/src/protozero/message_unittest.cc
index c61bc56..8bffabc 100644
--- a/src/protozero/message_unittest.cc
+++ b/src/protozero/message_unittest.cc
@@ -22,7 +22,7 @@
 #include <utility>
 #include <vector>
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 #include "perfetto/base/logging.h"
 #include "src/base/test/utils.h"
 #include "src/protozero/test/fake_scattered_buffer.h"
diff --git a/src/protozero/proto_decoder.cc b/src/protozero/proto_decoder.cc
index 4eddec7..073fece 100644
--- a/src/protozero/proto_decoder.cc
+++ b/src/protozero/proto_decoder.cc
@@ -17,9 +17,10 @@
 #include "perfetto/protozero/proto_decoder.h"
 
 #include <string.h>
+#include <limits>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/utils.h"
 #include "perfetto/protozero/proto_utils.h"
 
 namespace protozero {
diff --git a/src/protozero/proto_decoder_unittest.cc b/src/protozero/proto_decoder_unittest.cc
index 2f5ab53..cc98efa 100644
--- a/src/protozero/proto_decoder_unittest.cc
+++ b/src/protozero/proto_decoder_unittest.cc
@@ -16,9 +16,9 @@
 
 #include "perfetto/protozero/proto_decoder.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
-#include "perfetto/base/utils.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include "perfetto/ext/base/utils.h"
 #include "perfetto/protozero/message.h"
 #include "perfetto/protozero/proto_utils.h"
 #include "perfetto/protozero/scattered_heap_buffer.h"
diff --git a/src/protozero/proto_utils_unittest.cc b/src/protozero/proto_utils_unittest.cc
index ad63258..bb1be9e 100644
--- a/src/protozero/proto_utils_unittest.cc
+++ b/src/protozero/proto_utils_unittest.cc
@@ -18,9 +18,9 @@
 
 #include <limits>
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 #include "perfetto/base/logging.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/utils.h"
 
 namespace protozero {
 namespace proto_utils {
diff --git a/src/protozero/scattered_stream_writer_unittest.cc b/src/protozero/scattered_stream_writer_unittest.cc
index 6a61d33..dca3c0e 100644
--- a/src/protozero/scattered_stream_writer_unittest.cc
+++ b/src/protozero/scattered_stream_writer_unittest.cc
@@ -20,7 +20,7 @@
 
 #include <memory>
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 #include "perfetto/base/logging.h"
 #include "src/protozero/test/fake_scattered_buffer.h"
 
diff --git a/src/protozero/test/fake_scattered_buffer.cc b/src/protozero/test/fake_scattered_buffer.cc
index 3c48f48..626ab28 100644
--- a/src/protozero/test/fake_scattered_buffer.cc
+++ b/src/protozero/test/fake_scattered_buffer.cc
@@ -19,7 +19,7 @@
 #include <sstream>
 #include <utility>
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 
 namespace protozero {
 
diff --git a/src/protozero/test/protozero_conformance_unittest.cc b/src/protozero/test/protozero_conformance_unittest.cc
index 034487f..b92a875 100644
--- a/src/protozero/test/protozero_conformance_unittest.cc
+++ b/src/protozero/test/protozero_conformance_unittest.cc
@@ -18,7 +18,7 @@
 #include <memory>
 #include <vector>
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 #include "perfetto/protozero/message_handle.h"
 #include "src/protozero/test/fake_scattered_buffer.h"
 
diff --git a/src/public/BUILD.gn b/src/public/BUILD.gn
deleted file mode 100644
index 012d447..0000000
--- a/src/public/BUILD.gn
+++ /dev/null
@@ -1,93 +0,0 @@
-# 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.
-
-import("../../gn/perfetto.gni")
-
-if (perfetto_build_with_ipc_layer) {
-  source_set("public") {
-    deps = [
-      ":common",
-      "../../gn:default_deps",
-      "../base",
-      "../tracing",
-    ]
-    public_deps = [
-      "../../include/perfetto/public",
-    ]
-    sources = [
-      "data_source.cc",
-      "internal/in_process_tracing_backend.cc",
-      "internal/in_process_tracing_backend.h",
-      "internal/tracing_muxer_impl.cc",
-      "platform.cc",
-      "tracing.cc",
-      "virtual_destructors.cc",
-    ]
-
-    # TODO there should be an option to compile this out. This pulls IPC
-    # dependencies and bloats binary size.
-    deps += [ "../tracing:ipc" ]
-    sources += [
-      "internal/system_tracing_backend.cc",
-      "internal/system_tracing_backend.h",
-    ]
-  }
-}
-
-# Separate target because the embedder might not want this (e.g. on Windows).
-if (is_linux || is_mac || is_android) {
-  source_set("platform_posix") {
-    deps = [
-      "../../gn:default_deps",
-      "../../include/perfetto/public",
-      "../base",
-    ]
-    sources = [
-      "platform_posix.cc",
-    ]
-  }
-}
-
-# Stuff that both ":public" and other perfetto code (e.g. src/tracing/core) need
-# to depend on. It cannot be in the public target otherwise there would be a
-# cyclic dependency because public itself needs to depend on tracing.
-source_set("common") {
-  deps = [
-    "../../gn:default_deps",
-    "../../include/perfetto/public",
-  ]
-  sources = [
-    "trace_writer_base.cc",
-  ]
-}
-
-if (!perfetto_build_with_embedder) {
-  source_set("integrationtests") {
-    testonly = true
-    deps = [
-      ":platform_posix",
-      ":public",
-      "../../gn:default_deps",
-      "../../gn:gtest_deps",
-      "../../protos/perfetto/trace:lite",
-      "../base",
-
-      # TODO(primiano): move DataSourceConfig to /public/ and remove this.
-      "../../include/perfetto/tracing/core",
-    ]
-    sources = [
-      "api_integrationtest.cc",
-    ]
-  }
-}
diff --git a/src/trace_processor/BUILD.gn b/src/trace_processor/BUILD.gn
index 6ef7285..e5d33e2 100644
--- a/src/trace_processor/BUILD.gn
+++ b/src/trace_processor/BUILD.gn
@@ -16,26 +16,29 @@
 import("../../gn/perfetto.gni")
 import("../../gn/wasm.gni")
 
-wasm_lib("trace_processor_wasm") {
-  name = "trace_processor"
-  sources = [
-    "wasm_bridge.cc",
-  ]
+if (perfetto_build_standalone) {
+  wasm_lib("trace_processor_wasm") {
+    name = "trace_processor"
+    sources = [
+      "wasm_bridge.cc",
+    ]
 
-  # All the deps below are implicitly xxx($wasm_toolchain) because of the
-  # outer "is_wasm" block.
-  deps = [
-    ":lib",
-    "../../buildtools:sqlite",
-    "../../gn:default_deps",
-    "../../include/perfetto/base",
-    "../../protos/perfetto/trace_processor:lite",
-  ]
+    # All the deps below are implicitly xxx($wasm_toolchain) because of the
+    # outer "is_wasm" block.
+    deps = [
+      ":lib",
+      "../../buildtools:sqlite",
+      "../../gn:default_deps",
+      "../../include/perfetto/ext/base",
+      "../../protos/perfetto/trace_processor:lite",
+    ]
+  }
 }
 
 # The library which eases processing of Perfetto traces by exposing reading
 # friendly APIs.
 static_library("trace_processor") {
+  complete_static_lib = true
   deps = [
     ":lib",
   ]
@@ -136,6 +139,9 @@
     "syscalls_aarch64.h",
     "syscalls_armeabi.h",
     "syscalls_x86_64.h",
+    "systrace_trace_parser.cc",
+    "systrace_trace_parser.h",
+    "systrace_utils.h",
     "table.cc",
     "table.h",
     "thread_table.cc",
@@ -158,9 +164,9 @@
   ]
 
   deps = [
-    "../../buildtools:sqlite",
+    ":sqlite",
     "../../gn:default_deps",
-    "../../include/perfetto/traced:sys_stats_counters",
+    "../../include/perfetto/ext/traced:sys_stats_counters",
     "../../protos/perfetto/common:zero",
     "../../protos/perfetto/config:zero",
     "../../protos/perfetto/metrics:zero",
@@ -197,7 +203,7 @@
   }
 }
 
-if (current_toolchain == host_toolchain) {
+if (!perfetto_build_with_embedder && current_toolchain == host_toolchain) {
   executable("trace_processor_shell_host") {
     testonly = true  # We need this for proto full.
     deps = [
@@ -212,12 +218,6 @@
         "../../buildtools:linenoise",
         "../../gn/standalone:gen_git_revision",
       ]
-
-      # Build the descriptors as the diff testing framework depends on this.
-      deps += [
-        "../../protos/perfetto/metrics:descriptor",
-        "../../protos/perfetto/trace:descriptor",
-      ]
     }
 
     sources = [
@@ -226,19 +226,22 @@
   }
 }
 
-copy("trace_processor_shell") {
-  testonly = true  # We need this for proto full.
-  host_out_dir_ = get_label_info(":trace_processor_shell_host($host_toolchain)",
-                                 "root_out_dir")
-  deps = [
-    ":trace_processor_shell_host($host_toolchain)",
-  ]
-  sources = [
-    "${host_out_dir_}/trace_processor_shell_host",
-  ]
-  outputs = [
-    "${root_out_dir}/trace_processor_shell",
-  ]
+if (!perfetto_build_with_embedder) {
+  copy("trace_processor_shell") {
+    testonly = true  # We need this for proto full.
+    host_out_dir_ =
+        get_label_info(":trace_processor_shell_host($host_toolchain)",
+                       "root_out_dir")
+    deps = [
+      ":trace_processor_shell_host($host_toolchain)",
+    ]
+    sources = [
+      "${host_out_dir_}/trace_processor_shell_host",
+    ]
+    outputs = [
+      "${root_out_dir}/trace_processor_shell",
+    ]
+  }
 }
 
 source_set("unittests") {
@@ -262,13 +265,14 @@
     "sqlite3_str_split_unittest.cc",
     "string_pool_unittest.cc",
     "syscall_tracker_unittest.cc",
+    "systrace_utils_unittest.cc",
     "thread_table_unittest.cc",
     "trace_processor_impl_unittest.cc",
     "trace_sorter_unittest.cc",
   ]
   deps = [
     ":lib",
-    "../../buildtools:sqlite",
+    ":sqlite",
     "../../gn:default_deps",
     "../../gn:gtest_deps",
     "../../protos/perfetto/common:zero",
@@ -292,6 +296,16 @@
   }
 }
 
+# Indirection target to allow modifying the path to the SQLite header.
+source_set("sqlite") {
+  sources = [
+    "sqlite.h",
+  ]
+  public_deps = [
+    "../../gn:sqlite",
+  ]
+}
+
 source_set("integrationtests") {
   testonly = true
   sources = [
@@ -299,7 +313,7 @@
   ]
   deps = [
     ":lib",
-    "../../buildtools:sqlite",
+    ":sqlite",
     "../../gn:default_deps",
     "../../gn:gtest_deps",
     "../../protos/perfetto/trace:lite",
@@ -319,9 +333,9 @@
   ]
   deps = [
     ":lib",
-    "../../../../gn:default_deps",
     "../../buildtools:sqlite",
     "../../gn:default_deps",
+    "../../gn:default_deps",
     "../../gn:gtest_deps",
     "../../protos/perfetto/trace:lite",
     "../../protos/perfetto/trace_processor:lite",
diff --git a/src/trace_processor/args_table_unittest.cc b/src/trace_processor/args_table_unittest.cc
index 2ec7ef9..9b46424 100644
--- a/src/trace_processor/args_table_unittest.cc
+++ b/src/trace_processor/args_table_unittest.cc
@@ -19,8 +19,8 @@
 #include "src/trace_processor/trace_processor_context.h"
 #include "src/trace_processor/trace_storage.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace trace_processor {
diff --git a/src/trace_processor/chunked_trace_reader.h b/src/trace_processor/chunked_trace_reader.h
index bbf93a2..f09967d 100644
--- a/src/trace_processor/chunked_trace_reader.h
+++ b/src/trace_processor/chunked_trace_reader.h
@@ -23,6 +23,7 @@
 #include <memory>
 
 #include "perfetto/trace_processor/basic_types.h"
+#include "perfetto/trace_processor/status.h"
 
 namespace perfetto {
 namespace trace_processor {
diff --git a/src/trace_processor/clock_tracker.h b/src/trace_processor/clock_tracker.h
index 98104de..4867ea1 100644
--- a/src/trace_processor/clock_tracker.h
+++ b/src/trace_processor/clock_tracker.h
@@ -23,7 +23,7 @@
 #include <vector>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/optional.h"
+#include "perfetto/ext/base/optional.h"
 
 namespace perfetto {
 namespace trace_processor {
diff --git a/src/trace_processor/clock_tracker_unittest.cc b/src/trace_processor/clock_tracker_unittest.cc
index 848c0e2..a96d4e3 100644
--- a/src/trace_processor/clock_tracker_unittest.cc
+++ b/src/trace_processor/clock_tracker_unittest.cc
@@ -15,12 +15,12 @@
  */
 
 #include "src/trace_processor/clock_tracker.h"
-#include "perfetto/base/optional.h"
+#include "perfetto/ext/base/optional.h"
 #include "src/trace_processor/trace_processor_context.h"
 #include "src/trace_processor/trace_storage.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace trace_processor {
diff --git a/src/trace_processor/event_tracker.cc b/src/trace_processor/event_tracker.cc
index 36faa5d..beedc5b 100644
--- a/src/trace_processor/event_tracker.cc
+++ b/src/trace_processor/event_tracker.cc
@@ -18,7 +18,7 @@
 
 #include <math.h>
 
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/utils.h"
 #include "src/trace_processor/args_tracker.h"
 #include "src/trace_processor/ftrace_descriptors.h"
 #include "src/trace_processor/ftrace_utils.h"
diff --git a/src/trace_processor/event_tracker.h b/src/trace_processor/event_tracker.h
index d8a765a..60fabcf 100644
--- a/src/trace_processor/event_tracker.h
+++ b/src/trace_processor/event_tracker.h
@@ -20,8 +20,8 @@
 #include <array>
 #include <limits>
 
-#include "perfetto/base/string_view.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/string_view.h"
+#include "perfetto/ext/base/utils.h"
 #include "src/trace_processor/trace_storage.h"
 
 namespace perfetto {
diff --git a/src/trace_processor/event_tracker_unittest.cc b/src/trace_processor/event_tracker_unittest.cc
index aa27a45..1773cdb 100644
--- a/src/trace_processor/event_tracker_unittest.cc
+++ b/src/trace_processor/event_tracker_unittest.cc
@@ -19,8 +19,8 @@
 #include "src/trace_processor/args_tracker.h"
 #include "src/trace_processor/process_tracker.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace trace_processor {
@@ -57,7 +57,7 @@
   context.event_tracker->PushSchedSwitch(cpu, timestamp, pid_1, kCommProc2,
                                          prio, prev_state, pid_2, kCommProc1,
                                          prio);
-  ASSERT_EQ(timestamps.size(), 1);
+  ASSERT_EQ(timestamps.size(), 1u);
 
   context.event_tracker->PushSchedSwitch(cpu, timestamp + 1, pid_2, kCommProc1,
                                          prio, prev_state, pid_1, kCommProc2,
@@ -69,7 +69,7 @@
   ASSERT_STREQ(
       context.storage->GetString(context.storage->GetThread(1).name_id).c_str(),
       kCommProc1);
-  ASSERT_EQ(context.storage->slices().utids().front(), 1);
+  ASSERT_EQ(context.storage->slices().utids().front(), 1u);
   ASSERT_EQ(context.storage->slices().durations().front(), 1);
 }
 
@@ -85,7 +85,7 @@
   context.event_tracker->PushSchedSwitch(cpu, timestamp, /*tid=*/4, kCommProc2,
                                          prio, prev_state,
                                          /*tid=*/2, kCommProc1, prio);
-  ASSERT_EQ(timestamps.size(), 1);
+  ASSERT_EQ(timestamps.size(), 1u);
 
   context.event_tracker->PushSchedSwitch(cpu, timestamp + 1, /*tid=*/2,
                                          kCommProc1, prio, prev_state,
diff --git a/src/trace_processor/export_json_unittest.cc b/src/trace_processor/export_json_unittest.cc
index 2f6dde5..d2180c8 100644
--- a/src/trace_processor/export_json_unittest.cc
+++ b/src/trace_processor/export_json_unittest.cc
@@ -16,10 +16,10 @@
 
 #include "src/trace_processor/export_json.h"
 
-#include "perfetto/base/temp_file.h"
+#include "perfetto/ext/base/temp_file.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 #include <json/reader.h>
 #include <json/value.h>
diff --git a/src/trace_processor/filtered_row_index.cc b/src/trace_processor/filtered_row_index.cc
index f0dbbdf..48c5d3c 100644
--- a/src/trace_processor/filtered_row_index.cc
+++ b/src/trace_processor/filtered_row_index.cc
@@ -16,6 +16,7 @@
 
 #include "src/trace_processor/filtered_row_index.h"
 
+#include <stddef.h>
 #include <numeric>
 
 namespace perfetto {
diff --git a/src/trace_processor/filtered_row_index_unittest.cc b/src/trace_processor/filtered_row_index_unittest.cc
index 2a32a3f..280b633 100644
--- a/src/trace_processor/filtered_row_index_unittest.cc
+++ b/src/trace_processor/filtered_row_index_unittest.cc
@@ -16,8 +16,8 @@
 
 #include "src/trace_processor/filtered_row_index.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace trace_processor {
diff --git a/src/trace_processor/ftrace_utils.cc b/src/trace_processor/ftrace_utils.cc
index d1c0575..c035b0f 100644
--- a/src/trace_processor/ftrace_utils.cc
+++ b/src/trace_processor/ftrace_utils.cc
@@ -20,7 +20,7 @@
 #include <algorithm>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/string_writer.h"
+#include "perfetto/ext/base/string_writer.h"
 
 namespace perfetto {
 namespace trace_processor {
diff --git a/src/trace_processor/ftrace_utils.h b/src/trace_processor/ftrace_utils.h
index 434c233..bb6ba4c 100644
--- a/src/trace_processor/ftrace_utils.h
+++ b/src/trace_processor/ftrace_utils.h
@@ -21,8 +21,8 @@
 #include <array>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/string_view.h"
-#include "perfetto/base/string_writer.h"
+#include "perfetto/ext/base/string_view.h"
+#include "perfetto/ext/base/string_writer.h"
 
 namespace perfetto {
 namespace trace_processor {
diff --git a/src/trace_processor/ftrace_utils_unittest.cc b/src/trace_processor/ftrace_utils_unittest.cc
index 5f03a65..c54d8bd 100644
--- a/src/trace_processor/ftrace_utils_unittest.cc
+++ b/src/trace_processor/ftrace_utils_unittest.cc
@@ -16,8 +16,8 @@
 
 #include "src/trace_processor/ftrace_utils.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace trace_processor {
diff --git a/src/trace_processor/fuchsia_trace_parser.cc b/src/trace_processor/fuchsia_trace_parser.cc
index 6599a73..e2f6be9 100644
--- a/src/trace_processor/fuchsia_trace_parser.cc
+++ b/src/trace_processor/fuchsia_trace_parser.cc
@@ -115,7 +115,10 @@
           UniqueTid utid =
               procs->UpdateThread(static_cast<uint32_t>(tinfo.tid),
                                   static_cast<uint32_t>(tinfo.pid));
-          slices->End(ts, utid, cat, name);
+          // TODO(b/131181693): |cat| and |name| are not passed here so that
+          // if two slices end at the same timestep, the slices get closed in
+          // the correct order regardless of which end event is processed first.
+          slices->End(ts, utid);
           break;
         }
         case kDurationComplete: {
diff --git a/src/trace_processor/fuchsia_trace_tokenizer.cc b/src/trace_processor/fuchsia_trace_tokenizer.cc
index db90da2..95c7b37 100644
--- a/src/trace_processor/fuchsia_trace_tokenizer.cc
+++ b/src/trace_processor/fuchsia_trace_tokenizer.cc
@@ -20,7 +20,7 @@
 #include <unordered_map>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/string_view.h"
+#include "perfetto/ext/base/string_view.h"
 #include "src/trace_processor/ftrace_utils.h"
 #include "src/trace_processor/fuchsia_provider_view.h"
 #include "src/trace_processor/process_tracker.h"
diff --git a/src/trace_processor/fuchsia_trace_utils.h b/src/trace_processor/fuchsia_trace_utils.h
index 21d3a70..c1fb779 100644
--- a/src/trace_processor/fuchsia_trace_utils.h
+++ b/src/trace_processor/fuchsia_trace_utils.h
@@ -21,7 +21,7 @@
 #include <stdint.h>
 #include <functional>
 
-#include "perfetto/base/string_view.h"
+#include "perfetto/ext/base/string_view.h"
 
 namespace perfetto {
 namespace trace_processor {
diff --git a/src/trace_processor/heap_profile_tracker_unittest.cc b/src/trace_processor/heap_profile_tracker_unittest.cc
index 9a0b0b8..7f88359 100644
--- a/src/trace_processor/heap_profile_tracker_unittest.cc
+++ b/src/trace_processor/heap_profile_tracker_unittest.cc
@@ -18,8 +18,8 @@
 
 #include "src/trace_processor/trace_processor_context.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace trace_processor {
diff --git a/src/trace_processor/json_trace_parser.cc b/src/trace_processor/json_trace_parser.cc
index 75533f7..cb4e2d5 100644
--- a/src/trace_processor/json_trace_parser.cc
+++ b/src/trace_processor/json_trace_parser.cc
@@ -25,8 +25,8 @@
 
 #include "perfetto/base/build_config.h"
 #include "perfetto/base/logging.h"
-#include "perfetto/base/string_view.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/string_view.h"
+#include "perfetto/ext/base/utils.h"
 #include "src/trace_processor/json_trace_utils.h"
 #include "src/trace_processor/process_tracker.h"
 #include "src/trace_processor/slice_tracker.h"
@@ -104,13 +104,15 @@
       break;
     }
     case 'M': {  // Metadata events (process and thread names).
-      if (strcmp(value["name"].asCString(), "thread_name") == 0) {
+      if (strcmp(value["name"].asCString(), "thread_name") == 0 &&
+          !value["args"]["name"].empty()) {
         const char* thread_name = value["args"]["name"].asCString();
         auto thread_name_id = context_->storage->InternString(thread_name);
         procs->UpdateThreadName(tid, thread_name_id);
         break;
       }
-      if (strcmp(value["name"].asCString(), "process_name") == 0) {
+      if (strcmp(value["name"].asCString(), "process_name") == 0 &&
+          !value["args"]["name"].empty()) {
         const char* proc_name = value["args"]["name"].asCString();
         procs->UpdateProcess(pid, base::nullopt, proc_name);
         break;
diff --git a/src/trace_processor/json_trace_tokenizer_unittest.cc b/src/trace_processor/json_trace_tokenizer_unittest.cc
index 9bfb87e..3a266ee 100644
--- a/src/trace_processor/json_trace_tokenizer_unittest.cc
+++ b/src/trace_processor/json_trace_tokenizer_unittest.cc
@@ -18,8 +18,8 @@
 
 #include <json/value.h>
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace trace_processor {
diff --git a/src/trace_processor/json_trace_utils.h b/src/trace_processor/json_trace_utils.h
index eef12f4..8055b02 100644
--- a/src/trace_processor/json_trace_utils.h
+++ b/src/trace_processor/json_trace_utils.h
@@ -19,7 +19,7 @@
 
 #include <stdint.h>
 
-#include "perfetto/base/optional.h"
+#include "perfetto/ext/base/optional.h"
 
 namespace Json {
 class Value;
diff --git a/src/trace_processor/json_trace_utils_unittest.cc b/src/trace_processor/json_trace_utils_unittest.cc
index 531d397..50b13b5 100644
--- a/src/trace_processor/json_trace_utils_unittest.cc
+++ b/src/trace_processor/json_trace_utils_unittest.cc
@@ -18,8 +18,8 @@
 
 #include <json/value.h>
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace trace_processor {
diff --git a/src/trace_processor/metadata_table_unittest.cc b/src/trace_processor/metadata_table_unittest.cc
index 0f629d4..49cb7e9 100644
--- a/src/trace_processor/metadata_table_unittest.cc
+++ b/src/trace_processor/metadata_table_unittest.cc
@@ -19,8 +19,8 @@
 #include "src/trace_processor/trace_processor_context.h"
 #include "src/trace_processor/trace_storage.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace trace_processor {
diff --git a/src/trace_processor/metrics/BUILD.gn b/src/trace_processor/metrics/BUILD.gn
index 2961de9..9afeba9 100644
--- a/src/trace_processor/metrics/BUILD.gn
+++ b/src/trace_processor/metrics/BUILD.gn
@@ -22,6 +22,7 @@
   "android/android_startup_launches.sql",
   "android/android_task_state.sql",
   "android/android_startup.sql",
+  "android/android_startup_cpu.sql",
   "android/heap_profile.sql",
 ]
 
@@ -52,13 +53,14 @@
     "metrics.h",
   ]
   deps = [
-    "../../../buildtools:sqlite",
+    "../:sqlite",
     "../../../gn:default_deps",
     "../../../include/perfetto/trace_processor",
     "../../../protos/perfetto/common:zero",
     "../../../protos/perfetto/metrics:zero",
     "../../../protos/perfetto/metrics/android:zero",
     "../../../protos/perfetto/trace_processor:metrics_impl_zero",
+    "../../base",
     "../../protozero:protozero",
   ]
   public_deps = [
@@ -73,9 +75,9 @@
   ]
   deps = [
     ":lib",
-    "../../../buildtools:sqlite",
     "../../../gn:default_deps",
     "../../../gn:gtest_deps",
+    "../../../gn:sqlite",
     "../../../protos/perfetto/common:zero",
   ]
 }
diff --git a/src/trace_processor/metrics/android/android_startup.sql b/src/trace_processor/metrics/android/android_startup.sql
index cbb9609..1d4c915 100644
--- a/src/trace_processor/metrics/android/android_startup.sql
+++ b/src/trace_processor/metrics/android/android_startup.sql
@@ -17,6 +17,7 @@
 -- Create the base tables and views containing the launch spans.
 SELECT RUN_METRIC('android/android_startup_launches.sql');
 SELECT RUN_METRIC('android/android_task_state.sql');
+SELECT RUN_METRIC('android/android_startup_cpu.sql');
 
 -- Slices for forked processes. Never present in hot starts.
 -- Prefer this over process start_ts, since the process might have
@@ -59,6 +60,27 @@
 FROM main_thread_state
 GROUP BY 1, 2;
 
+-- Tracks all slices for the main process threads
+CREATE TABLE main_process_slices AS
+SELECT
+  launches.id AS launch_id,
+  slices.name AS name,
+  AndroidStartupMetric_Slice('dur_ns', SUM(slices.dur)) AS slice_proto
+FROM launches
+JOIN launch_processes ON (launches.id = launch_processes.launch_id)
+JOIN thread ON (launch_processes.upid = thread.upid)
+JOIN slices ON (
+  slices.utid = thread.utid
+  AND slices.ts BETWEEN launches.ts AND launches.ts + launches.dur)
+WHERE slices.name IN (
+  'ActivityThreadMain',
+  'bindApplication',
+  'activityStart',
+  'activityResume',
+  'Choreographer#doFrame',
+  'inflate')
+GROUP BY 1, 2;
+
 CREATE VIEW startup_view AS
 SELECT
   AndroidStartupMetric_Startup(
@@ -103,6 +125,44 @@
         SELECT COUNT(1) FROM process
         WHERE (process.name IS NULL OR process.name != launches.package)
         AND process.start_ts BETWEEN launches.ts AND launches.ts + launches.dur
+      ),
+      'time_activity_manager', AndroidStartupMetric_Slice(
+        'dur_ns', (
+          SELECT launching_events.ts - launches.ts FROM launching_events
+          WHERE launching_events.type = 'S'
+          AND launching_events.ts BETWEEN launches.ts AND launches.ts + launches.dur
+        )
+      ),
+      'time_activity_thread_main', (
+        SELECT slice_proto FROM main_process_slices
+        WHERE launch_id = launches.id AND name = 'ActivityThreadMain'
+      ),
+      'time_bind_application', (
+        SELECT slice_proto FROM main_process_slices
+        WHERE launch_id = launches.id AND name = 'bindApplication'
+      ),
+      'time_activity_start', (
+        SELECT slice_proto FROM main_process_slices
+        WHERE launch_id = launches.id AND name = 'activityStart'
+      ),
+      'time_activity_resume', (
+        SELECT slice_proto FROM main_process_slices
+        WHERE launch_id = launches.id AND name = 'activityResume'
+      ),
+      'time_choreographer', (
+        SELECT slice_proto FROM main_process_slices
+        WHERE launch_id = launches.id AND name = 'Choreographer#doFrame'
+      ),
+      'time_before_start_process', (
+        SELECT AndroidStartupMetric_Slice('dur_ns', ts - launches.ts)
+        FROM zygote_forks_by_id WHERE id = launches.id
+      ),
+      'time_during_start_process', (
+        SELECT AndroidStartupMetric_Slice('dur_ns', dur)
+        FROM zygote_forks_by_id WHERE id = launches.id
+      ),
+      'other_process_to_activity_cpu_ratio', (
+        SELECT cpu_ratio FROM launch_cpu WHERE launch_id = launches.id
       )
     )
   ) as startup
diff --git a/src/trace_processor/metrics/android/android_startup_cpu.sql b/src/trace_processor/metrics/android/android_startup_cpu.sql
new file mode 100644
index 0000000..f71282e
--- /dev/null
+++ b/src/trace_processor/metrics/android/android_startup_cpu.sql
@@ -0,0 +1,51 @@
+--
+-- Copyright 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
+--
+--     https://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.
+--
+
+-- Sched view per process
+CREATE VIEW per_process_cpu AS
+SELECT process.upid AS upid, ts, dur
+FROM sched
+JOIN thread USING(utid)
+JOIN process USING(upid);
+
+-- CPU usage during the activity launch.
+CREATE TABLE launch_cpu_per_process_type AS
+SELECT
+  id AS launch_id,
+  per_process_cpu.upid IN (
+    SELECT upid FROM launch_processes AS lp WHERE lp.launch_id = launches.id
+  ) AS is_launch_process,
+  SUM(per_process_cpu.dur) AS dur
+FROM launches
+JOIN per_process_cpu ON (
+  per_process_cpu.ts BETWEEN launches.ts AND launches.ts + launches.dur)
+GROUP BY 1, 2;
+
+CREATE VIEW launch_cpu AS
+SELECT
+  launch_id,
+  other_process.dur AS other_process_dur,
+  launch_process.dur AS launch_process_dur,
+  1.0 * IFNULL(other_process.dur, 0) / launch_process.dur AS cpu_ratio
+FROM (
+  SELECT * FROM launch_cpu_per_process_type
+  WHERE is_launch_process = 1
+) AS launch_process
+LEFT JOIN (
+  SELECT * FROM launch_cpu_per_process_type
+  WHERE is_launch_process = 0
+) AS other_process
+USING (launch_id);
diff --git a/src/trace_processor/metrics/android/android_startup_launches.sql b/src/trace_processor/metrics/android/android_startup_launches.sql
index 4fd64cd..b3b84c5 100644
--- a/src/trace_processor/metrics/android/android_startup_launches.sql
+++ b/src/trace_processor/metrics/android/android_startup_launches.sql
@@ -34,10 +34,12 @@
   package_name,
   type
 FROM raw
-JOIN launching_events_helper USING(arg_set_id)
+CROSS JOIN launching_events_helper
 JOIN thread USING(utid)
 JOIN process USING(upid)
-WHERE raw.name = 'print' AND process.name = 'system_server';
+WHERE raw.arg_set_id = launching_events_helper.arg_set_id
+AND raw.name = 'print'
+AND process.name = 'system_server';
 
 -- Marks the beginning of the trace and is equivalent to when the statsd launch
 -- logging begins.
diff --git a/src/trace_processor/metrics/descriptors.cc b/src/trace_processor/metrics/descriptors.cc
index 6b1d393..0d0e816 100644
--- a/src/trace_processor/metrics/descriptors.cc
+++ b/src/trace_processor/metrics/descriptors.cc
@@ -15,6 +15,7 @@
  */
 
 #include "src/trace_processor/metrics/descriptors.h"
+#include "perfetto/ext/base/string_view.h"
 
 #include "perfetto/common/descriptor.pbzero.h"
 
@@ -32,8 +33,10 @@
           ? base::StringView(f_decoder.type_name()).ToStdString()
           : "";
   // TODO(lalitm): add support for enums here.
-  uint32_t type = f_decoder.has_type() ? static_cast<uint32_t>(f_decoder.type())
-                                       : FieldDescriptorProto::TYPE_MESSAGE;
+  uint32_t type =
+      f_decoder.has_type()
+          ? static_cast<uint32_t>(f_decoder.type())
+          : static_cast<uint32_t>(FieldDescriptorProto::TYPE_MESSAGE);
   return FieldDescriptor(
       base::StringView(f_decoder.name()).ToStdString(),
       static_cast<uint32_t>(f_decoder.number()), type, std::move(type_name),
diff --git a/src/trace_processor/metrics/descriptors.h b/src/trace_processor/metrics/descriptors.h
index 37ef287..d05cd59 100644
--- a/src/trace_processor/metrics/descriptors.h
+++ b/src/trace_processor/metrics/descriptors.h
@@ -21,8 +21,9 @@
 #include <string>
 #include <vector>
 
-#include "perfetto/base/optional.h"
+#include "perfetto/ext/base/optional.h"
 #include "perfetto/trace_processor/basic_types.h"
+#include "perfetto/trace_processor/status.h"
 
 namespace perfetto {
 namespace trace_processor {
diff --git a/src/trace_processor/metrics/metrics.cc b/src/trace_processor/metrics/metrics.cc
index 25f5683..e8b9927 100644
--- a/src/trace_processor/metrics/metrics.cc
+++ b/src/trace_processor/metrics/metrics.cc
@@ -20,7 +20,8 @@
 #include <unordered_map>
 #include <vector>
 
-#include "perfetto/base/string_utils.h"
+#include "perfetto/ext/base/string_utils.h"
+#include "perfetto/ext/base/utils.h"
 #include "perfetto/protozero/scattered_heap_buffer.h"
 #include "src/trace_processor/metrics/sql_metrics.h"
 
diff --git a/src/trace_processor/metrics/metrics.descriptor.h b/src/trace_processor/metrics/metrics.descriptor.h
index 3d3b904..34f0e3b 100644
--- a/src/trace_processor/metrics/metrics.descriptor.h
+++ b/src/trace_processor/metrics/metrics.descriptor.h
@@ -19,7 +19,7 @@
 
 namespace perfetto {
 
-constexpr std::array<uint8_t, 4134> kMetricsDescriptor{
+constexpr std::array<uint8_t, 5029> kMetricsDescriptor{
     {0x0a, 0xc6, 0x0f, 0x0a, 0x29, 0x70, 0x65, 0x72, 0x66, 0x65, 0x74, 0x74,
      0x6f, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2f, 0x61, 0x6e,
      0x64, 0x72, 0x6f, 0x69, 0x64, 0x2f, 0x6d, 0x65, 0x6d, 0x5f, 0x6d, 0x65,
@@ -186,7 +186,7 @@
      0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a,
      0x06, 0x67, 0x72, 0x6f, 0x77, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28,
      0x01, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x77, 0x74, 0x68, 0x42, 0x02, 0x48,
-     0x03, 0x0a, 0x91, 0x07, 0x0a, 0x2d, 0x70, 0x65, 0x72, 0x66, 0x65, 0x74,
+     0x03, 0x0a, 0x90, 0x0e, 0x0a, 0x2d, 0x70, 0x65, 0x72, 0x66, 0x65, 0x74,
      0x74, 0x6f, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2f, 0x61,
      0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x2f, 0x73, 0x74, 0x61, 0x72, 0x74,
      0x75, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x70, 0x72,
@@ -210,7 +210,7 @@
      0x73, 0x6c, 0x65, 0x65, 0x70, 0x5f, 0x64, 0x75, 0x72, 0x5f, 0x6e, 0x73,
      0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x69, 0x6e, 0x74, 0x65,
      0x72, 0x72, 0x75, 0x70, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x53, 0x6c, 0x65,
-     0x65, 0x70, 0x44, 0x75, 0x72, 0x4e, 0x73, 0x22, 0xe7, 0x04, 0x0a, 0x14,
+     0x65, 0x70, 0x44, 0x75, 0x72, 0x4e, 0x73, 0x22, 0xe6, 0x0b, 0x0a, 0x14,
      0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74,
      0x75, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x47, 0x0a, 0x07,
      0x73, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x18, 0x01, 0x20, 0x03, 0x28,
@@ -218,153 +218,228 @@
      0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x41, 0x6e, 0x64, 0x72,
      0x6f, 0x69, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x4d, 0x65,
      0x74, 0x72, 0x69, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70,
-     0x52, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x1a, 0xc7, 0x01,
-     0x0a, 0x0c, 0x54, 0x6f, 0x46, 0x69, 0x72, 0x73, 0x74, 0x46, 0x72, 0x61,
-     0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x64, 0x75, 0x72, 0x5f, 0x6e, 0x73,
-     0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x75, 0x72, 0x4e,
-     0x73, 0x12, 0x5d, 0x0a, 0x19, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x74, 0x68,
-     0x72, 0x65, 0x61, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x74, 0x61, 0x73, 0x6b,
-     0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
-     0x32, 0x23, 0x2e, 0x70, 0x65, 0x72, 0x66, 0x65, 0x74, 0x74, 0x6f, 0x2e,
-     0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53,
-     0x74, 0x61, 0x74, 0x65, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x64, 0x6f, 0x77,
-     0x6e, 0x52, 0x15, 0x6d, 0x61, 0x69, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61,
-     0x64, 0x42, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65,
-     0x12, 0x41, 0x0a, 0x1d, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x70, 0x72,
-     0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x5f, 0x73, 0x70, 0x61, 0x77,
-     0x6e, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20,
-     0x01, 0x28, 0x0d, 0x52, 0x1a, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x50, 0x72,
-     0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x53, 0x70, 0x61, 0x77, 0x6e,
-     0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0xbb, 0x02, 0x0a, 0x07,
-     0x53, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x73,
-     0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
-     0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70,
-     0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67,
-     0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
-     0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d,
-     0x65, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
-     0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
-     0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65,
-     0x12, 0x2c, 0x0a, 0x12, 0x7a, 0x79, 0x67, 0x6f, 0x74, 0x65, 0x5f, 0x6e,
-     0x65, 0x77, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x04,
-     0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x7a, 0x79, 0x67, 0x6f, 0x74, 0x65,
-     0x4e, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x43,
-     0x0a, 0x1e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x5f, 0x68,
-     0x6f, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65,
-     0x73, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01,
-     0x28, 0x0d, 0x52, 0x1b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79,
-     0x48, 0x6f, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x63, 0x65,
-     0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x58, 0x0a, 0x0e, 0x74,
-     0x6f, 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x66, 0x72, 0x61, 0x6d,
-     0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x70, 0x65,
+     0x52, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x1a, 0x1e, 0x0a,
+     0x05, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x64, 0x75,
+     0x72, 0x5f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05,
+     0x64, 0x75, 0x72, 0x4e, 0x73, 0x1a, 0xa6, 0x08, 0x0a, 0x0c, 0x54, 0x6f,
+     0x46, 0x69, 0x72, 0x73, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x15,
+     0x0a, 0x06, 0x64, 0x75, 0x72, 0x5f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01,
+     0x28, 0x03, 0x52, 0x05, 0x64, 0x75, 0x72, 0x4e, 0x73, 0x12, 0x5d, 0x0a,
+     0x19, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64,
+     0x5f, 0x62, 0x79, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x74, 0x61,
+     0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70,
+     0x65, 0x72, 0x66, 0x65, 0x74, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+     0x6f, 0x73, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65,
+     0x42, 0x72, 0x65, 0x61, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x15, 0x6d,
+     0x61, 0x69, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x42, 0x79, 0x54,
+     0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x41, 0x0a, 0x1d,
+     0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73,
+     0x73, 0x65, 0x73, 0x5f, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x65, 0x64, 0x5f,
+     0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52,
+     0x1a, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73,
+     0x73, 0x65, 0x73, 0x53, 0x70, 0x61, 0x77, 0x6e, 0x65, 0x64, 0x43, 0x6f,
+     0x75, 0x6e, 0x74, 0x12, 0x5f, 0x0a, 0x15, 0x74, 0x69, 0x6d, 0x65, 0x5f,
+     0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x5f, 0x6d, 0x61, 0x6e,
+     0x61, 0x67, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b,
+     0x2e, 0x70, 0x65, 0x72, 0x66, 0x65, 0x74, 0x74, 0x6f, 0x2e, 0x70, 0x72,
+     0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64,
+     0x53, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69,
+     0x63, 0x2e, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x52, 0x13, 0x74, 0x69, 0x6d,
+     0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x4d, 0x61, 0x6e,
+     0x61, 0x67, 0x65, 0x72, 0x12, 0x66, 0x0a, 0x19, 0x74, 0x69, 0x6d, 0x65,
+     0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x68,
+     0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x05, 0x20,
+     0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x65, 0x72, 0x66, 0x65, 0x74,
+     0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x41, 0x6e,
+     0x64, 0x72, 0x6f, 0x69, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70,
+     0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x53, 0x6c, 0x69, 0x63, 0x65,
+     0x52, 0x16, 0x74, 0x69, 0x6d, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69,
+     0x74, 0x79, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x69, 0x6e,
+     0x12, 0x5f, 0x0a, 0x15, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x62, 0x69, 0x6e,
+     0x64, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+     0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x65,
      0x72, 0x66, 0x65, 0x74, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
      0x73, 0x2e, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x53, 0x74, 0x61,
-     0x72, 0x74, 0x75, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x54,
-     0x6f, 0x46, 0x69, 0x72, 0x73, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52,
-     0x0c, 0x74, 0x6f, 0x46, 0x69, 0x72, 0x73, 0x74, 0x46, 0x72, 0x61, 0x6d,
-     0x65, 0x42, 0x02, 0x48, 0x03, 0x0a, 0xaa, 0x04, 0x0a, 0x2b, 0x70, 0x65,
-     0x72, 0x66, 0x65, 0x74, 0x74, 0x6f, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69,
-     0x63, 0x73, 0x2f, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x2f, 0x68,
-     0x65, 0x61, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e,
-     0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x70, 0x65, 0x72, 0x66, 0x65,
-     0x74, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x22, 0xe5,
-     0x03, 0x0a, 0x0b, 0x48, 0x65, 0x61, 0x70, 0x50, 0x72, 0x6f, 0x66, 0x69,
-     0x6c, 0x65, 0x12, 0x41, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c,
-     0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x65,
-     0x72, 0x66, 0x65, 0x74, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
-     0x73, 0x2e, 0x48, 0x65, 0x61, 0x70, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c,
-     0x65, 0x2e, 0x50, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
-     0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x1b, 0x0a,
-     0x05, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
-     0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
-     0x6d, 0x65, 0x1a, 0x44, 0x0a, 0x08, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x69,
-     0x74, 0x65, 0x12, 0x38, 0x0a, 0x05, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x18,
-     0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x65, 0x72, 0x66,
-     0x65, 0x74, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e,
-     0x48, 0x65, 0x61, 0x70, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e,
-     0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x05, 0x66, 0x72, 0x61, 0x6d, 0x65,
-     0x1a, 0xaa, 0x01, 0x0a, 0x0d, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x69, 0x74,
-     0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x41, 0x0a, 0x08, 0x63, 0x61,
-     0x6c, 0x6c, 0x73, 0x69, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
-     0x32, 0x25, 0x2e, 0x70, 0x65, 0x72, 0x66, 0x65, 0x74, 0x74, 0x6f, 0x2e,
-     0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x48, 0x65, 0x61, 0x70, 0x50,
-     0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x73,
-     0x69, 0x74, 0x65, 0x52, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x69, 0x74,
-     0x65, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x73, 0x5f,
-     0x73, 0x65, 0x6c, 0x66, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02,
-     0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x73,
-     0x53, 0x65, 0x6c, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a,
-     0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x66,
-     0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03,
-     0x52, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x73, 0x53, 0x65, 0x6c, 0x66,
-     0x42, 0x79, 0x74, 0x65, 0x73, 0x1a, 0x82, 0x01, 0x0a, 0x0a, 0x50, 0x65,
-     0x72, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x21, 0x0a, 0x0c,
+     0x72, 0x74, 0x75, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x53,
+     0x6c, 0x69, 0x63, 0x65, 0x52, 0x13, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x69,
+     0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+     0x6e, 0x12, 0x5b, 0x0a, 0x13, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x61, 0x63,
+     0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74,
+     0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x65, 0x72,
+     0x66, 0x65, 0x74, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73,
+     0x2e, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x53, 0x74, 0x61, 0x72,
+     0x74, 0x75, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x53, 0x6c,
+     0x69, 0x63, 0x65, 0x52, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x41, 0x63, 0x74,
+     0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x5d,
+     0x0a, 0x14, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76,
+     0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x18, 0x08,
+     0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x65, 0x72, 0x66, 0x65,
+     0x74, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x41,
+     0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x75,
+     0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x53, 0x6c, 0x69, 0x63,
+     0x65, 0x52, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76,
+     0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x5a, 0x0a,
+     0x12, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x68, 0x6f, 0x72, 0x65, 0x6f,
+     0x67, 0x72, 0x61, 0x70, 0x68, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28,
+     0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x65, 0x72, 0x66, 0x65, 0x74, 0x74, 0x6f,
+     0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x41, 0x6e, 0x64, 0x72,
+     0x6f, 0x69, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x4d, 0x65,
+     0x74, 0x72, 0x69, 0x63, 0x2e, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x52, 0x11,
+     0x74, 0x69, 0x6d, 0x65, 0x43, 0x68, 0x6f, 0x72, 0x65, 0x6f, 0x67, 0x72,
+     0x61, 0x70, 0x68, 0x65, 0x72, 0x12, 0x66, 0x0a, 0x19, 0x74, 0x69, 0x6d,
+     0x65, 0x5f, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x5f, 0x73, 0x74, 0x61,
+     0x72, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x0a,
+     0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x65, 0x72, 0x66, 0x65,
+     0x74, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x41,
+     0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x75,
+     0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x53, 0x6c, 0x69, 0x63,
+     0x65, 0x52, 0x16, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x65, 0x66, 0x6f, 0x72,
+     0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73,
+     0x73, 0x12, 0x66, 0x0a, 0x19, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x64, 0x75,
+     0x72, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x70,
+     0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b,
+     0x32, 0x2b, 0x2e, 0x70, 0x65, 0x72, 0x66, 0x65, 0x74, 0x74, 0x6f, 0x2e,
+     0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x41, 0x6e, 0x64, 0x72, 0x6f,
+     0x69, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x4d, 0x65, 0x74,
+     0x72, 0x69, 0x63, 0x2e, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x52, 0x16, 0x74,
+     0x69, 0x6d, 0x65, 0x44, 0x75, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61,
+     0x72, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x4b, 0x0a,
+     0x23, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65,
+     0x73, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69,
+     0x74, 0x79, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f,
+     0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x1e, 0x6f, 0x74, 0x68, 0x65,
+     0x72, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x41, 0x63,
+     0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x43, 0x70, 0x75, 0x52, 0x61, 0x74,
+     0x69, 0x6f, 0x1a, 0xbb, 0x02, 0x0a, 0x07, 0x53, 0x74, 0x61, 0x72, 0x74,
+     0x75, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x75,
+     0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09,
+     0x73, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x49, 0x64, 0x12, 0x21, 0x0a,
+     0x0c, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x61, 0x6d,
+     0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x63,
+     0x6b, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c,
      0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
-     0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x63,
-     0x65, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x51, 0x0a, 0x0e, 0x63,
-     0x61, 0x6c, 0x6c, 0x73, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74,
-     0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x65,
+     0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x63,
+     0x65, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x7a,
+     0x79, 0x67, 0x6f, 0x74, 0x65, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x72,
+     0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52,
+     0x10, 0x7a, 0x79, 0x67, 0x6f, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x50, 0x72,
+     0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x43, 0x0a, 0x1e, 0x61, 0x63, 0x74,
+     0x69, 0x76, 0x69, 0x74, 0x79, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x69, 0x6e,
+     0x67, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f,
+     0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x61,
+     0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x69,
+     0x6e, 0x67, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75,
+     0x6e, 0x74, 0x12, 0x58, 0x0a, 0x0e, 0x74, 0x6f, 0x5f, 0x66, 0x69, 0x72,
+     0x73, 0x74, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01,
+     0x28, 0x0b, 0x32, 0x32, 0x2e, 0x70, 0x65, 0x72, 0x66, 0x65, 0x74, 0x74,
+     0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x41, 0x6e, 0x64,
+     0x72, 0x6f, 0x69, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x4d,
+     0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x54, 0x6f, 0x46, 0x69, 0x72, 0x73,
+     0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x0c, 0x74, 0x6f, 0x46, 0x69,
+     0x72, 0x73, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x42, 0x02, 0x48, 0x03,
+     0x0a, 0xaa, 0x04, 0x0a, 0x2b, 0x70, 0x65, 0x72, 0x66, 0x65, 0x74, 0x74,
+     0x6f, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2f, 0x61, 0x6e,
+     0x64, 0x72, 0x6f, 0x69, 0x64, 0x2f, 0x68, 0x65, 0x61, 0x70, 0x5f, 0x70,
+     0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+     0x12, 0x0f, 0x70, 0x65, 0x72, 0x66, 0x65, 0x74, 0x74, 0x6f, 0x2e, 0x70,
+     0x72, 0x6f, 0x74, 0x6f, 0x73, 0x22, 0xe5, 0x03, 0x0a, 0x0b, 0x48, 0x65,
+     0x61, 0x70, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x41, 0x0a,
+     0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x03,
+     0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x65, 0x72, 0x66, 0x65, 0x74, 0x74,
+     0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x48, 0x65, 0x61,
+     0x70, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x50, 0x65, 0x72,
+     0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x07, 0x70, 0x72, 0x6f,
+     0x66, 0x69, 0x6c, 0x65, 0x1a, 0x1b, 0x0a, 0x05, 0x46, 0x72, 0x61, 0x6d,
+     0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
+     0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x44, 0x0a,
+     0x08, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x69, 0x74, 0x65, 0x12, 0x38, 0x0a,
+     0x05, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
+     0x32, 0x22, 0x2e, 0x70, 0x65, 0x72, 0x66, 0x65, 0x74, 0x74, 0x6f, 0x2e,
+     0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x48, 0x65, 0x61, 0x70, 0x50,
+     0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x46, 0x72, 0x61, 0x6d, 0x65,
+     0x52, 0x05, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x1a, 0xaa, 0x01, 0x0a, 0x0d,
+     0x43, 0x61, 0x6c, 0x6c, 0x73, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74,
+     0x73, 0x12, 0x41, 0x0a, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x69, 0x74,
+     0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65,
      0x72, 0x66, 0x65, 0x74, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
      0x73, 0x2e, 0x48, 0x65, 0x61, 0x70, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c,
-     0x65, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x69, 0x74, 0x65, 0x53, 0x74,
-     0x61, 0x74, 0x73, 0x52, 0x0d, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x69, 0x74,
-     0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x42, 0x02, 0x48, 0x03, 0x0a, 0x99,
-     0x05, 0x0a, 0x1e, 0x70, 0x65, 0x72, 0x66, 0x65, 0x74, 0x74, 0x6f, 0x2f,
-     0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2f, 0x6d, 0x65, 0x74, 0x72,
-     0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x70,
-     0x65, 0x72, 0x66, 0x65, 0x74, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74,
-     0x6f, 0x73, 0x1a, 0x29, 0x70, 0x65, 0x72, 0x66, 0x65, 0x74, 0x74, 0x6f,
-     0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2f, 0x61, 0x6e, 0x64,
-     0x72, 0x6f, 0x69, 0x64, 0x2f, 0x6d, 0x65, 0x6d, 0x5f, 0x6d, 0x65, 0x74,
-     0x72, 0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2d, 0x70,
+     0x65, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x69, 0x74, 0x65, 0x52, 0x08,
+     0x63, 0x61, 0x6c, 0x6c, 0x73, 0x69, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x11,
+     0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x5f,
+     0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52,
+     0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x73, 0x53, 0x65, 0x6c, 0x66, 0x43,
+     0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x6c, 0x6c, 0x6f,
+     0x63, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x62, 0x79, 0x74, 0x65,
+     0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x61, 0x6c, 0x6c,
+     0x6f, 0x63, 0x73, 0x53, 0x65, 0x6c, 0x66, 0x42, 0x79, 0x74, 0x65, 0x73,
+     0x1a, 0x82, 0x01, 0x0a, 0x0a, 0x50, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x63,
+     0x65, 0x73, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x63, 0x65,
+     0x73, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+     0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x4e, 0x61,
+     0x6d, 0x65, 0x12, 0x51, 0x0a, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x69,
+     0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03,
+     0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x65, 0x72, 0x66, 0x65, 0x74, 0x74,
+     0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x48, 0x65, 0x61,
+     0x70, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x43, 0x61, 0x6c,
+     0x6c, 0x73, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0d,
+     0x63, 0x61, 0x6c, 0x6c, 0x73, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74,
+     0x73, 0x42, 0x02, 0x48, 0x03, 0x0a, 0x99, 0x05, 0x0a, 0x1e, 0x70, 0x65,
+     0x72, 0x66, 0x65, 0x74, 0x74, 0x6f, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69,
+     0x63, 0x73, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x70,
+     0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x70, 0x65, 0x72, 0x66, 0x65, 0x74,
+     0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x1a, 0x29, 0x70,
      0x65, 0x72, 0x66, 0x65, 0x74, 0x74, 0x6f, 0x2f, 0x6d, 0x65, 0x74, 0x72,
      0x69, 0x63, 0x73, 0x2f, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x2f,
-     0x73, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72,
-     0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2b, 0x70, 0x65,
-     0x72, 0x66, 0x65, 0x74, 0x74, 0x6f, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69,
-     0x63, 0x73, 0x2f, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x2f, 0x68,
-     0x65, 0x61, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e,
-     0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x94, 0x01, 0x0a, 0x0f, 0x54, 0x72,
-     0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63,
-     0x73, 0x12, 0x3c, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01,
-     0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x72, 0x66, 0x65,
-     0x74, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x54,
-     0x72, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69,
-     0x63, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e,
-     0x74, 0x72, 0x79, 0x1a, 0x43, 0x0a, 0x05, 0x45, 0x6e, 0x74, 0x72, 0x79,
-     0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
-     0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03,
-     0x69, 0x64, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x69,
-     0x64, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
-     0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
-     0x22, 0xc3, 0x02, 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x63, 0x65, 0x4d, 0x65,
-     0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x45, 0x0a, 0x0b, 0x61, 0x6e, 0x64,
-     0x72, 0x6f, 0x69, 0x64, 0x5f, 0x6d, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01,
-     0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x65, 0x72, 0x66, 0x65, 0x74, 0x74,
-     0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x41, 0x6e, 0x64,
-     0x72, 0x6f, 0x69, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x4d, 0x65,
-     0x74, 0x72, 0x69, 0x63, 0x52, 0x0a, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69,
-     0x64, 0x4d, 0x65, 0x6d, 0x12, 0x4e, 0x0a, 0x0f, 0x61, 0x6e, 0x64, 0x72,
-     0x6f, 0x69, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x18,
-     0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, 0x72, 0x66,
-     0x65, 0x74, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e,
-     0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74,
-     0x75, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0e, 0x61, 0x6e,
-     0x64, 0x72, 0x6f, 0x69, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70,
-     0x12, 0x4b, 0x0a, 0x10, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x74,
-     0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01,
-     0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x65, 0x72, 0x66, 0x65, 0x74, 0x74,
-     0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x54, 0x72, 0x61,
-     0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73,
-     0x52, 0x0f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x69,
-     0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x3f, 0x0a, 0x0c, 0x68, 0x65, 0x61,
-     0x70, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x04, 0x20,
-     0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x65, 0x72, 0x66, 0x65, 0x74,
-     0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x48, 0x65,
-     0x61, 0x70, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x0b, 0x68,
-     0x65, 0x61, 0x70, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2a, 0x06,
-     0x08, 0xc2, 0x03, 0x10, 0xf4, 0x03, 0x2a, 0x06, 0x08, 0xf4, 0x03, 0x10,
-     0xe9, 0x07, 0x42, 0x02, 0x48, 0x03}};
+     0x6d, 0x65, 0x6d, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x70,
+     0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2d, 0x70, 0x65, 0x72, 0x66, 0x65, 0x74,
+     0x74, 0x6f, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2f, 0x61,
+     0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x2f, 0x73, 0x74, 0x61, 0x72, 0x74,
+     0x75, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x70, 0x72,
+     0x6f, 0x74, 0x6f, 0x1a, 0x2b, 0x70, 0x65, 0x72, 0x66, 0x65, 0x74, 0x74,
+     0x6f, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2f, 0x61, 0x6e,
+     0x64, 0x72, 0x6f, 0x69, 0x64, 0x2f, 0x68, 0x65, 0x61, 0x70, 0x5f, 0x70,
+     0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+     0x22, 0x94, 0x01, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x74,
+     0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x3c, 0x0a, 0x05,
+     0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
+     0x26, 0x2e, 0x70, 0x65, 0x72, 0x66, 0x65, 0x74, 0x74, 0x6f, 0x2e, 0x70,
+     0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53,
+     0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x45, 0x6e,
+     0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x1a, 0x43,
+     0x0a, 0x05, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e,
+     0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
+     0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x78, 0x18, 0x02,
+     0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x69, 0x64, 0x78, 0x12, 0x14, 0x0a,
+     0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03,
+     0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xc3, 0x02, 0x0a, 0x0c,
+     0x54, 0x72, 0x61, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
+     0x12, 0x45, 0x0a, 0x0b, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x5f,
+     0x6d, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e,
+     0x70, 0x65, 0x72, 0x66, 0x65, 0x74, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f,
+     0x74, 0x6f, 0x73, 0x2e, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x4d,
+     0x65, 0x6d, 0x6f, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52,
+     0x0a, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x4d, 0x65, 0x6d, 0x12,
+     0x4e, 0x0a, 0x0f, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x5f, 0x73,
+     0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
+     0x32, 0x25, 0x2e, 0x70, 0x65, 0x72, 0x66, 0x65, 0x74, 0x74, 0x6f, 0x2e,
+     0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x41, 0x6e, 0x64, 0x72, 0x6f,
+     0x69, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x4d, 0x65, 0x74,
+     0x72, 0x69, 0x63, 0x52, 0x0e, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64,
+     0x53, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x12, 0x4b, 0x0a, 0x10, 0x65,
+     0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74,
+     0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e,
+     0x70, 0x65, 0x72, 0x66, 0x65, 0x74, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f,
+     0x74, 0x6f, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61,
+     0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x0f, 0x65, 0x72, 0x72,
+     0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73,
+     0x12, 0x3f, 0x0a, 0x0c, 0x68, 0x65, 0x61, 0x70, 0x5f, 0x70, 0x72, 0x6f,
+     0x66, 0x69, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c,
+     0x2e, 0x70, 0x65, 0x72, 0x66, 0x65, 0x74, 0x74, 0x6f, 0x2e, 0x70, 0x72,
+     0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x48, 0x65, 0x61, 0x70, 0x50, 0x72, 0x6f,
+     0x66, 0x69, 0x6c, 0x65, 0x52, 0x0b, 0x68, 0x65, 0x61, 0x70, 0x50, 0x72,
+     0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2a, 0x06, 0x08, 0xc2, 0x03, 0x10, 0xf4,
+     0x03, 0x2a, 0x06, 0x08, 0xf4, 0x03, 0x10, 0xe9, 0x07, 0x42, 0x02, 0x48,
+     0x03}};
 
 }  // namespace perfetto
 
diff --git a/src/trace_processor/metrics/metrics.h b/src/trace_processor/metrics/metrics.h
index cf41db9..de9de6e 100644
--- a/src/trace_processor/metrics/metrics.h
+++ b/src/trace_processor/metrics/metrics.h
@@ -17,17 +17,17 @@
 #ifndef SRC_TRACE_PROCESSOR_METRICS_METRICS_H_
 #define SRC_TRACE_PROCESSOR_METRICS_METRICS_H_
 
-#include <sqlite3.h>
 #include <unordered_map>
 #include <vector>
 
-#include "perfetto/base/string_view.h"
+#include "perfetto/ext/base/string_view.h"
 #include "perfetto/protozero/field.h"
 #include "perfetto/protozero/message.h"
 #include "perfetto/protozero/scattered_heap_buffer.h"
 #include "perfetto/trace_processor/trace_processor.h"
 
 #include "src/trace_processor/metrics/descriptors.h"
+#include "src/trace_processor/sqlite.h"
 
 #include "perfetto/trace_processor/metrics_impl.pbzero.h"
 
diff --git a/src/trace_processor/metrics/metrics_unittest.cc b/src/trace_processor/metrics/metrics_unittest.cc
index 46898c36..5c766a5 100644
--- a/src/trace_processor/metrics/metrics_unittest.cc
+++ b/src/trace_processor/metrics/metrics_unittest.cc
@@ -18,7 +18,7 @@
 
 #include <vector>
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 
 #include "perfetto/common/descriptor.pbzero.h"
 
diff --git a/src/trace_processor/null_term_string_view.h b/src/trace_processor/null_term_string_view.h
index 60a27f9..f576006 100644
--- a/src/trace_processor/null_term_string_view.h
+++ b/src/trace_processor/null_term_string_view.h
@@ -17,7 +17,7 @@
 #ifndef SRC_TRACE_PROCESSOR_NULL_TERM_STRING_VIEW_H_
 #define SRC_TRACE_PROCESSOR_NULL_TERM_STRING_VIEW_H_
 
-#include "perfetto/base/string_view.h"
+#include "perfetto/ext/base/string_view.h"
 
 namespace perfetto {
 namespace trace_processor {
diff --git a/src/trace_processor/null_term_string_view_unittest.cc b/src/trace_processor/null_term_string_view_unittest.cc
index 75977b0..7ea23d4 100644
--- a/src/trace_processor/null_term_string_view_unittest.cc
+++ b/src/trace_processor/null_term_string_view_unittest.cc
@@ -16,8 +16,8 @@
 
 #include "src/trace_processor/null_term_string_view.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace trace_processor {
diff --git a/src/trace_processor/process_table_unittest.cc b/src/trace_processor/process_table_unittest.cc
index 745bbd5..1144e30 100644
--- a/src/trace_processor/process_table_unittest.cc
+++ b/src/trace_processor/process_table_unittest.cc
@@ -20,8 +20,8 @@
 #include "src/trace_processor/scoped_db.h"
 #include "src/trace_processor/trace_processor_context.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace trace_processor {
diff --git a/src/trace_processor/process_tracker.h b/src/trace_processor/process_tracker.h
index ee064c9..6834008 100644
--- a/src/trace_processor/process_tracker.h
+++ b/src/trace_processor/process_tracker.h
@@ -19,7 +19,7 @@
 
 #include <tuple>
 
-#include "perfetto/base/string_view.h"
+#include "perfetto/ext/base/string_view.h"
 #include "src/trace_processor/trace_processor_context.h"
 #include "src/trace_processor/trace_storage.h"
 
diff --git a/src/trace_processor/process_tracker_unittest.cc b/src/trace_processor/process_tracker_unittest.cc
index 0402b21..abd85f8 100644
--- a/src/trace_processor/process_tracker_unittest.cc
+++ b/src/trace_processor/process_tracker_unittest.cc
@@ -19,8 +19,8 @@
 #include "src/trace_processor/args_tracker.h"
 #include "src/trace_processor/event_tracker.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace trace_processor {
@@ -47,7 +47,7 @@
   TraceStorage storage;
   context.process_tracker->UpdateProcess(1, base::nullopt, "test");
   auto pair_it = context.process_tracker->UpidsForPid(1);
-  ASSERT_EQ(pair_it.first->second, 1);
+  ASSERT_EQ(pair_it.first->second, 1u);
 }
 
 TEST_F(ProcessTrackerTest, GetOrCreateNewProcess) {
@@ -67,7 +67,7 @@
   context.process_tracker->UpdateProcess(1, base::nullopt, "test");
   context.process_tracker->UpdateProcess(1, base::nullopt, "test");
   auto pair_it = context.process_tracker->UpidsForPid(1);
-  ASSERT_EQ(pair_it.first->second, 1);
+  ASSERT_EQ(pair_it.first->second, 1u);
   ASSERT_EQ(++pair_it.first, pair_it.second);
 }
 
@@ -75,9 +75,9 @@
   context.process_tracker->UpdateProcess(1, base::nullopt, "test");
   context.process_tracker->UpdateProcess(3, base::nullopt, "test");
   auto pair_it = context.process_tracker->UpidsForPid(1);
-  ASSERT_EQ(pair_it.first->second, 1);
+  ASSERT_EQ(pair_it.first->second, 1u);
   auto second_pair_it = context.process_tracker->UpidsForPid(3);
-  ASSERT_EQ(second_pair_it.first->second, 2);
+  ASSERT_EQ(second_pair_it.first->second, 2u);
 }
 
 TEST_F(ProcessTrackerTest, AddProcessEntry_CorrectName) {
@@ -107,9 +107,9 @@
   TraceStorage::Thread thread = context.storage->GetThread(/*utid=*/1);
   TraceStorage::Process process = context.storage->GetProcess(/*utid=*/1);
 
-  ASSERT_EQ(thread.tid, 4);
-  ASSERT_EQ(thread.upid.value(), 1);
-  ASSERT_EQ(process.pid, 2);
+  ASSERT_EQ(thread.tid, 4u);
+  ASSERT_EQ(thread.upid.value(), 1u);
+  ASSERT_EQ(process.pid, 2u);
   ASSERT_EQ(process.start_ns, 0);
 }
 
@@ -119,14 +119,14 @@
   TraceStorage::Thread thread = context.storage->GetThread(1);
 
   // We expect 3 threads: Invalid thread, main thread for pid, tid 12.
-  ASSERT_EQ(context.storage->thread_count(), 3);
+  ASSERT_EQ(context.storage->thread_count(), 3u);
 
   auto tid_it = context.process_tracker->UtidsForTid(12);
   ASSERT_NE(tid_it.first, tid_it.second);
-  ASSERT_EQ(thread.upid.value(), 1);
+  ASSERT_EQ(thread.upid.value(), 1u);
   auto pid_it = context.process_tracker->UpidsForPid(2);
   ASSERT_NE(pid_it.first, pid_it.second);
-  ASSERT_EQ(context.storage->process_count(), 2);
+  ASSERT_EQ(context.storage->process_count(), 2u);
 }
 
 }  // namespace
diff --git a/src/trace_processor/proto_incremental_state.h b/src/trace_processor/proto_incremental_state.h
index e407985..38f4abd 100644
--- a/src/trace_processor/proto_incremental_state.h
+++ b/src/trace_processor/proto_incremental_state.h
@@ -22,7 +22,7 @@
 #include <map>
 #include <unordered_map>
 
-#include "perfetto/base/optional.h"
+#include "perfetto/ext/base/optional.h"
 #include "perfetto/protozero/proto_decoder.h"
 #include "src/trace_processor/trace_blob_view.h"
 #include "src/trace_processor/trace_storage.h"
diff --git a/src/trace_processor/proto_trace_parser.cc b/src/trace_processor/proto_trace_parser.cc
index c3f39d4..ae94745 100644
--- a/src/trace_processor/proto_trace_parser.cc
+++ b/src/trace_processor/proto_trace_parser.cc
@@ -22,11 +22,11 @@
 #include <string>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/optional.h"
-#include "perfetto/base/string_view.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/optional.h"
+#include "perfetto/ext/base/string_view.h"
+#include "perfetto/ext/base/utils.h"
+#include "perfetto/ext/traced/sys_stats_counters.h"
 #include "perfetto/protozero/proto_decoder.h"
-#include "perfetto/traced/sys_stats_counters.h"
 #include "src/trace_processor/args_tracker.h"
 #include "src/trace_processor/clock_tracker.h"
 #include "src/trace_processor/event_tracker.h"
@@ -36,6 +36,7 @@
 #include "src/trace_processor/process_tracker.h"
 #include "src/trace_processor/slice_tracker.h"
 #include "src/trace_processor/syscall_tracker.h"
+#include "src/trace_processor/systrace_utils.h"
 #include "src/trace_processor/trace_processor_context.h"
 #include "src/trace_processor/variadic.h"
 
@@ -80,83 +81,6 @@
 
 }  // namespace
 
-// We have to handle trace_marker events of a few different types:
-// 1. some random text
-// 2. B|1636|pokeUserActivity
-// 3. E|1636
-// 4. C|1636|wq:monitor|0
-SystraceParseResult ParseSystraceTracePoint(base::StringView str,
-                                            SystraceTracePoint* out) {
-  // THIS char* IS NOT NULL TERMINATED.
-  const char* s = str.data();
-  size_t len = str.size();
-
-  if (len < 2)
-    return SystraceParseResult::kFailure;
-
-  // If str matches '[BEC]\|[0-9]+[\|\n]' set tgid_length to the length of
-  // the number. Otherwise return kFailure.
-  if (s[1] != '|' && s[1] != '\n')
-    return SystraceParseResult::kFailure;
-  if (s[0] != 'B' && s[0] != 'E' && s[0] != 'C') {
-    // TODO: support android async slices
-    return s[0] == 'S' || s[0] == 'F' ? SystraceParseResult::kUnsupported
-                                      : SystraceParseResult::kFailure;
-  }
-  size_t tgid_length = 0;
-  for (size_t i = 2; i < len; i++) {
-    if (s[i] == '|' || s[i] == '\n') {
-      tgid_length = i - 2;
-      break;
-    }
-    if (s[i] < '0' || s[i] > '9')
-      return SystraceParseResult::kFailure;
-  }
-
-  if (tgid_length == 0) {
-    out->tgid = 0;
-  } else {
-    std::string tgid_str(s + 2, tgid_length);
-    out->tgid = static_cast<uint32_t>(std::stoi(tgid_str.c_str()));
-  }
-
-  out->phase = s[0];
-  switch (s[0]) {
-    case 'B': {
-      size_t name_index = 2 + tgid_length + 1;
-      out->name = base::StringView(
-          s + name_index, len - name_index - (s[len - 1] == '\n' ? 1 : 0));
-      return SystraceParseResult::kSuccess;
-    }
-    case 'E': {
-      return SystraceParseResult::kSuccess;
-    }
-    case 'C': {
-      size_t name_index = 2 + tgid_length + 1;
-      base::Optional<size_t> name_length;
-      for (size_t i = name_index; i < len; i++) {
-        if (s[i] == '|') {
-          name_length = i - name_index;
-          break;
-        }
-      }
-      if (!name_length.has_value())
-        return SystraceParseResult::kFailure;
-      out->name = base::StringView(s + name_index, name_length.value());
-
-      size_t value_index = name_index + name_length.value() + 1;
-      size_t value_len = len - value_index;
-      if (value_len == 0)
-        return SystraceParseResult::kFailure;
-      std::string value_str(s + value_index, value_len);
-      out->value = std::stod(value_str.c_str());
-      return SystraceParseResult::kSuccess;
-    }
-    default:
-      return SystraceParseResult::kFailure;
-  }
-}
-
 ProtoTraceParser::ProtoTraceParser(TraceProcessorContext* context)
     : context_(context),
       utid_name_id_(context->storage->InternString("utid")),
@@ -799,10 +723,10 @@
                                   uint32_t pid,
                                   ConstBytes blob) {
   protos::pbzero::PrintFtraceEvent::Decoder evt(blob.data, blob.size);
-  SystraceTracePoint point{};
+  systrace_utils::SystraceTracePoint point{};
   auto r = ParseSystraceTracePoint(evt.buf(), &point);
-  if (r != SystraceParseResult::kSuccess) {
-    if (r == SystraceParseResult::kFailure) {
+  if (r != systrace_utils::SystraceParseResult::kSuccess) {
+    if (r == systrace_utils::SystraceParseResult::kFailure) {
       context_->storage->IncrementStats(stats::systrace_parse_failure);
     }
     return;
diff --git a/src/trace_processor/proto_trace_parser.h b/src/trace_processor/proto_trace_parser.h
index 3d5251f..a66573d 100644
--- a/src/trace_processor/proto_trace_parser.h
+++ b/src/trace_processor/proto_trace_parser.h
@@ -22,7 +22,7 @@
 #include <array>
 #include <memory>
 
-#include "perfetto/base/string_view.h"
+#include "perfetto/ext/base/string_view.h"
 #include "perfetto/protozero/field.h"
 #include "src/trace_processor/ftrace_descriptors.h"
 #include "src/trace_processor/proto_incremental_state.h"
@@ -35,28 +35,6 @@
 
 class TraceProcessorContext;
 
-struct SystraceTracePoint {
-  char phase;
-  uint32_t tgid;
-
-  // For phase = 'B' and phase = 'C' only.
-  base::StringView name;
-
-  // For phase = 'C' only.
-  double value;
-};
-
-inline bool operator==(const SystraceTracePoint& x,
-                       const SystraceTracePoint& y) {
-  return std::tie(x.phase, x.tgid, x.name, x.value) ==
-         std::tie(y.phase, y.tgid, y.name, y.value);
-}
-
-enum class SystraceParseResult { kFailure = 0, kUnsupported, kSuccess };
-
-SystraceParseResult ParseSystraceTracePoint(base::StringView,
-                                            SystraceTracePoint* out);
-
 class ProtoTraceParser : public TraceParser {
  public:
   using ConstBytes = protozero::ConstBytes;
diff --git a/src/trace_processor/proto_trace_parser_unittest.cc b/src/trace_processor/proto_trace_parser_unittest.cc
index 61785e7..6107f4f 100644
--- a/src/trace_processor/proto_trace_parser_unittest.cc
+++ b/src/trace_processor/proto_trace_parser_unittest.cc
@@ -16,9 +16,9 @@
 
 #include "src/trace_processor/proto_trace_tokenizer.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
-#include "perfetto/base/string_view.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include "perfetto/ext/base/string_view.h"
 #include "perfetto/protozero/scattered_heap_buffer.h"
 #include "src/trace_processor/args_tracker.h"
 #include "src/trace_processor/event_tracker.h"
@@ -257,15 +257,15 @@
 
   Tokenize();
   const auto& raw = context_.storage->raw_events();
-  ASSERT_EQ(raw.raw_event_count(), 2);
+  ASSERT_EQ(raw.raw_event_count(), 2u);
   const auto& args = context_.storage->args();
-  ASSERT_EQ(args.args_count(), 6);
+  ASSERT_EQ(args.args_count(), 6u);
   ASSERT_EQ(args.arg_values()[0].int_value, 123);
-  ASSERT_EQ(args.arg_values()[1].string_value, 0);
+  ASSERT_EQ(args.arg_values()[1].string_value, 0u);
   ASSERT_EQ(args.arg_values()[2].int_value, 12);
   ASSERT_EQ(args.arg_values()[3].int_value, 15);
   ASSERT_EQ(args.arg_values()[4].int_value, 20);
-  ASSERT_EQ(args.arg_values()[5].string_value, 0);
+  ASSERT_EQ(args.arg_values()[5].string_value, 0u);
 
   // TODO(taylori): Add test ftrace event with all field types
   // and test here.
@@ -308,9 +308,9 @@
 
   const auto& raw = storage_->raw_events();
 
-  ASSERT_EQ(raw.raw_event_count(), 1);
+  ASSERT_EQ(raw.raw_event_count(), 1u);
   ASSERT_EQ(raw.timestamps().back(), 100);
-  ASSERT_EQ(storage_->GetThread(raw.utids().back()).tid, 10);
+  ASSERT_EQ(storage_->GetThread(raw.utids().back()).tid, 10u);
 
   auto set_id = raw.arg_set_ids().back();
 
@@ -976,30 +976,6 @@
   context_.sorter->ExtractEventsForced();
 }
 
-TEST(SystraceParserTest, SystraceEvent) {
-  SystraceTracePoint result{};
-
-  ASSERT_EQ(ParseSystraceTracePoint(base::StringView(""), &result),
-            SystraceParseResult::kFailure);
-
-  ASSERT_EQ(ParseSystraceTracePoint(base::StringView("B|1|foo"), &result),
-            SystraceParseResult::kSuccess);
-  EXPECT_EQ(result, (SystraceTracePoint{'B', 1, base::StringView("foo"), 0}));
-
-  ASSERT_EQ(ParseSystraceTracePoint(base::StringView("B|42|Bar"), &result),
-            SystraceParseResult::kSuccess);
-  EXPECT_EQ(result, (SystraceTracePoint{'B', 42, base::StringView("Bar"), 0}));
-
-  ASSERT_EQ(ParseSystraceTracePoint(base::StringView("C|543|foo|"), &result),
-            SystraceParseResult::kFailure);
-  ASSERT_EQ(ParseSystraceTracePoint(base::StringView("C|543|foo|8"), &result),
-            SystraceParseResult::kSuccess);
-  EXPECT_EQ(result, (SystraceTracePoint{'C', 543, base::StringView("foo"), 8}));
-
-  ASSERT_EQ(ParseSystraceTracePoint(base::StringView("S|"), &result),
-            SystraceParseResult::kUnsupported);
-}
-
 TEST_F(ProtoTraceParserTest, LoadChromeBenchmarkMetadata) {
   static const char kName[] = "name";
   static const char kTag2[] = "tag1";
diff --git a/src/trace_processor/proto_trace_tokenizer.cc b/src/trace_processor/proto_trace_tokenizer.cc
index 144fa87..d62993c 100644
--- a/src/trace_processor/proto_trace_tokenizer.cc
+++ b/src/trace_processor/proto_trace_tokenizer.cc
@@ -19,7 +19,7 @@
 #include <string>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/utils.h"
 #include "perfetto/protozero/proto_decoder.h"
 #include "perfetto/protozero/proto_utils.h"
 #include "src/trace_processor/event_tracker.h"
diff --git a/src/trace_processor/query_constraints.cc b/src/trace_processor/query_constraints.cc
index 9092cb7..b7e4d4d 100644
--- a/src/trace_processor/query_constraints.cc
+++ b/src/trace_processor/query_constraints.cc
@@ -16,10 +16,10 @@
 
 #include "src/trace_processor/query_constraints.h"
 
-#include <sqlite3.h>
 #include <string>
 
-#include "perfetto/base/string_splitter.h"
+#include "perfetto/ext/base/string_splitter.h"
+#include "src/trace_processor/sqlite.h"
 
 namespace perfetto {
 namespace trace_processor {
diff --git a/src/trace_processor/query_constraints.h b/src/trace_processor/query_constraints.h
index e9dc48b..fae2210 100644
--- a/src/trace_processor/query_constraints.h
+++ b/src/trace_processor/query_constraints.h
@@ -17,11 +17,10 @@
 #ifndef SRC_TRACE_PROCESSOR_QUERY_CONSTRAINTS_H_
 #define SRC_TRACE_PROCESSOR_QUERY_CONSTRAINTS_H_
 
-#include <sqlite3.h>
-
 #include <vector>
 
-#include "perfetto/base/scoped_file.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "src/trace_processor/sqlite.h"
 
 namespace perfetto {
 namespace trace_processor {
diff --git a/src/trace_processor/query_constraints_unittest.cc b/src/trace_processor/query_constraints_unittest.cc
index 0435087..a2f3678 100644
--- a/src/trace_processor/query_constraints_unittest.cc
+++ b/src/trace_processor/query_constraints_unittest.cc
@@ -15,8 +15,8 @@
  */
 
 #include "src/trace_processor/query_constraints.h"
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 #include "perfetto/base/logging.h"
 
 using testing::ElementsAreArray;
@@ -58,8 +58,8 @@
 
   QueryConstraints qc_result =
       QueryConstraints::FromString(string_result.get());
-  ASSERT_EQ(qc_result.constraints().size(), 0);
-  ASSERT_EQ(qc_result.order_by().size(), 0);
+  ASSERT_EQ(qc_result.constraints().size(), 0u);
+  ASSERT_EQ(qc_result.order_by().size(), 0u);
 }
 
 TEST(QueryConstraintsTest, OnlyOrderBy) {
diff --git a/src/trace_processor/sched_slice_table_unittest.cc b/src/trace_processor/sched_slice_table_unittest.cc
index 438e869..df9a12b 100644
--- a/src/trace_processor/sched_slice_table_unittest.cc
+++ b/src/trace_processor/sched_slice_table_unittest.cc
@@ -22,8 +22,8 @@
 #include "src/trace_processor/scoped_db.h"
 #include "src/trace_processor/trace_processor_context.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace trace_processor {
diff --git a/src/trace_processor/scoped_db.h b/src/trace_processor/scoped_db.h
index 7c1e44f..8d92756 100644
--- a/src/trace_processor/scoped_db.h
+++ b/src/trace_processor/scoped_db.h
@@ -17,13 +17,14 @@
 #ifndef SRC_TRACE_PROCESSOR_SCOPED_DB_H_
 #define SRC_TRACE_PROCESSOR_SCOPED_DB_H_
 
-#include "perfetto/base/scoped_file.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "src/trace_processor/sqlite.h"
 
 extern "C" {
 struct sqlite3;
 struct sqlite3_stmt;
-extern int sqlite3_close(sqlite3*);
-extern int sqlite3_finalize(sqlite3_stmt* pStmt);
+SQLITE_API extern int sqlite3_close(sqlite3*);
+SQLITE_API extern int sqlite3_finalize(sqlite3_stmt* pStmt);
 }
 
 namespace perfetto {
diff --git a/src/trace_processor/slice_tracker.cc b/src/trace_processor/slice_tracker.cc
index 56c5a78..281b279 100644
--- a/src/trace_processor/slice_tracker.cc
+++ b/src/trace_processor/slice_tracker.cc
@@ -30,7 +30,7 @@
 // Slices which have been opened but haven't been closed yet will be marked
 // with this duration placeholder.
 constexpr int64_t kPendingDuration = -1;
-};  // namespace
+}  // namespace
 
 SliceTracker::SliceTracker(TraceProcessorContext* context)
     : context_(context) {}
diff --git a/src/trace_processor/slice_tracker_unittest.cc b/src/trace_processor/slice_tracker_unittest.cc
index 0a8eee2..88b1e1d 100644
--- a/src/trace_processor/slice_tracker_unittest.cc
+++ b/src/trace_processor/slice_tracker_unittest.cc
@@ -21,8 +21,8 @@
 #include "src/trace_processor/trace_processor_context.h"
 #include "src/trace_processor/trace_storage.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace trace_processor {
@@ -61,11 +61,11 @@
   tracker.End(10 /*ts*/, 42 /*tid*/, 0 /*cat*/, 1 /*name*/);
 
   auto slices = context.storage->nestable_slices();
-  EXPECT_EQ(slices.slice_count(), 1);
+  EXPECT_EQ(slices.slice_count(), 1u);
   EXPECT_EQ(slices.start_ns()[0], 2);
   EXPECT_EQ(slices.durations()[0], 8);
-  EXPECT_EQ(slices.cats()[0], 0);
-  EXPECT_EQ(slices.names()[0], 1);
+  EXPECT_EQ(slices.cats()[0], 0u);
+  EXPECT_EQ(slices.names()[0], 1u);
   EXPECT_EQ(slices.refs()[0], 42);
   EXPECT_EQ(slices.types()[0], kRefUtid);
   EXPECT_EQ(slices.depths()[0], 0);
@@ -89,11 +89,11 @@
               });
 
   auto slices = context.storage->nestable_slices();
-  EXPECT_EQ(slices.slice_count(), 1);
+  EXPECT_EQ(slices.slice_count(), 1u);
   EXPECT_EQ(slices.start_ns()[0], 2);
   EXPECT_EQ(slices.durations()[0], 8);
-  EXPECT_EQ(slices.cats()[0], 0);
-  EXPECT_EQ(slices.names()[0], 1);
+  EXPECT_EQ(slices.cats()[0], 0u);
+  EXPECT_EQ(slices.names()[0], 1u);
   EXPECT_EQ(slices.refs()[0], 42);
   EXPECT_EQ(slices.types()[0], kRefUtid);
   EXPECT_EQ(slices.depths()[0], 0);
@@ -101,12 +101,12 @@
 
   auto args = context.storage->args();
   EXPECT_EQ(args.set_ids()[0], set_id);
-  EXPECT_EQ(args.flat_keys()[0], 1);
-  EXPECT_EQ(args.keys()[0], 2);
+  EXPECT_EQ(args.flat_keys()[0], 1u);
+  EXPECT_EQ(args.keys()[0], 2u);
   EXPECT_EQ(args.arg_values()[0], Variadic::Integer(10));
   EXPECT_EQ(args.set_ids()[1], set_id);
-  EXPECT_EQ(args.flat_keys()[1], 3);
-  EXPECT_EQ(args.keys()[1], 4);
+  EXPECT_EQ(args.flat_keys()[1], 3u);
+  EXPECT_EQ(args.keys()[1], 4u);
   EXPECT_EQ(args.arg_values()[1], Variadic::Integer(20));
 }
 
@@ -122,21 +122,21 @@
 
   auto slices = context.storage->nestable_slices();
 
-  EXPECT_EQ(slices.slice_count(), 2);
+  EXPECT_EQ(slices.slice_count(), 2u);
 
   size_t idx = 0;
   EXPECT_EQ(slices.start_ns()[idx], 2);
   EXPECT_EQ(slices.durations()[idx], 8);
-  EXPECT_EQ(slices.cats()[idx], 0);
-  EXPECT_EQ(slices.names()[idx], 1);
+  EXPECT_EQ(slices.cats()[idx], 0u);
+  EXPECT_EQ(slices.names()[idx], 1u);
   EXPECT_EQ(slices.refs()[idx], 42);
   EXPECT_EQ(slices.types()[idx], kRefUtid);
   EXPECT_EQ(slices.depths()[idx++], 0);
 
   EXPECT_EQ(slices.start_ns()[idx], 3);
   EXPECT_EQ(slices.durations()[idx], 2);
-  EXPECT_EQ(slices.cats()[idx], 0);
-  EXPECT_EQ(slices.names()[idx], 2);
+  EXPECT_EQ(slices.cats()[idx], 0u);
+  EXPECT_EQ(slices.names()[idx], 2u);
   EXPECT_EQ(slices.refs()[idx], 42);
   EXPECT_EQ(slices.types()[idx], kRefUtid);
   EXPECT_EQ(slices.depths()[idx], 1);
diff --git a/src/trace_processor/span_join_operator_table.cc b/src/trace_processor/span_join_operator_table.cc
index c5a7973..a1475f1 100644
--- a/src/trace_processor/span_join_operator_table.cc
+++ b/src/trace_processor/span_join_operator_table.cc
@@ -16,16 +16,16 @@
 
 #include "src/trace_processor/span_join_operator_table.h"
 
-#include <sqlite3.h>
 #include <string.h>
 #include <algorithm>
 #include <set>
 #include <utility>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/string_splitter.h"
-#include "perfetto/base/string_utils.h"
-#include "perfetto/base/string_view.h"
+#include "perfetto/ext/base/string_splitter.h"
+#include "perfetto/ext/base/string_utils.h"
+#include "perfetto/ext/base/string_view.h"
+#include "src/trace_processor/sqlite.h"
 #include "src/trace_processor/sqlite_utils.h"
 
 namespace perfetto {
@@ -710,7 +710,7 @@
   if (!splitter.Next())
     return util::OkStatus();
 
-  if (strcasecmp(splitter.cur_token(), "PARTITIONED") != 0)
+  if (!base::CaseInsensitiveEqual(splitter.cur_token(), "PARTITIONED"))
     return util::ErrStatus("SPAN_JOIN: Invalid token");
 
   if (!splitter.Next())
diff --git a/src/trace_processor/span_join_operator_table.h b/src/trace_processor/span_join_operator_table.h
index 27cc5db..6228ad3 100644
--- a/src/trace_processor/span_join_operator_table.h
+++ b/src/trace_processor/span_join_operator_table.h
@@ -17,7 +17,6 @@
 #ifndef SRC_TRACE_PROCESSOR_SPAN_JOIN_OPERATOR_TABLE_H_
 #define SRC_TRACE_PROCESSOR_SPAN_JOIN_OPERATOR_TABLE_H_
 
-#include <sqlite3.h>
 #include <array>
 #include <deque>
 #include <limits>
@@ -28,7 +27,9 @@
 #include <vector>
 
 #include "perfetto/trace_processor/basic_types.h"
+#include "perfetto/trace_processor/status.h"
 #include "src/trace_processor/scoped_db.h"
+#include "src/trace_processor/sqlite.h"
 #include "src/trace_processor/table.h"
 
 namespace perfetto {
diff --git a/src/trace_processor/span_join_operator_table_unittest.cc b/src/trace_processor/span_join_operator_table_unittest.cc
index c67488d..6734c6b 100644
--- a/src/trace_processor/span_join_operator_table_unittest.cc
+++ b/src/trace_processor/span_join_operator_table_unittest.cc
@@ -16,8 +16,8 @@
 
 #include "src/trace_processor/span_join_operator_table.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 #include "src/trace_processor/trace_processor_context.h"
 #include "src/trace_processor/trace_storage.h"
 
diff --git a/src/trace_processor/sql_stats_table.cc b/src/trace_processor/sql_stats_table.cc
index f81ac66..fdd2467 100644
--- a/src/trace_processor/sql_stats_table.cc
+++ b/src/trace_processor/sql_stats_table.cc
@@ -16,12 +16,11 @@
 
 #include "src/trace_processor/sql_stats_table.h"
 
-#include <sqlite3.h>
-
 #include <algorithm>
 #include <bitset>
 #include <numeric>
 
+#include "src/trace_processor/sqlite.h"
 #include "src/trace_processor/sqlite_utils.h"
 #include "src/trace_processor/trace_storage.h"
 
diff --git a/src/public/data_source.cc b/src/trace_processor/sqlite.h
similarity index 64%
copy from src/public/data_source.cc
copy to src/trace_processor/sqlite.h
index 19eb17d..953a400 100644
--- a/src/public/data_source.cc
+++ b/src/trace_processor/sqlite.h
@@ -14,13 +14,16 @@
  * limitations under the License.
  */
 
-#include "perfetto/public/data_source.h"
+#ifndef SRC_TRACE_PROCESSOR_SQLITE_H_
+#define SRC_TRACE_PROCESSOR_SQLITE_H_
 
-namespace perfetto {
+#include "perfetto/base/build_config.h"
 
-DataSourceBase::~DataSourceBase() = default;
-void DataSourceBase::OnSetup(const SetupArgs&) {}
-void DataSourceBase::OnStart(const StartArgs&) {}
-void DataSourceBase::OnStop(const StopArgs&) {}
+#if PERFETTO_BUILDFLAG(PERFETTO_STANDALONE_BUILD) || \
+    PERFETTO_BUILDFLAG(PERFETTO_ANDROID_BUILD)
+#include <sqlite3.h>
+#else
+#include "third_party/sqlite/sqlite3.h"
+#endif
 
-}  // namespace perfetto
+#endif  // SRC_TRACE_PROCESSOR_SQLITE_H_
diff --git a/src/trace_processor/sqlite3_str_split_unittest.cc b/src/trace_processor/sqlite3_str_split_unittest.cc
index 4896f27..71a16b0 100644
--- a/src/trace_processor/sqlite3_str_split_unittest.cc
+++ b/src/trace_processor/sqlite3_str_split_unittest.cc
@@ -16,12 +16,12 @@
 
 #include "src/trace_processor/sqlite3_str_split.h"
 
-#include <sqlite3.h>
 #include <string>
 #include "perfetto/base/logging.h"
 #include "src/trace_processor/scoped_db.h"
+#include "src/trace_processor/sqlite.h"
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace trace_processor {
diff --git a/src/trace_processor/sqlite_utils.h b/src/trace_processor/sqlite_utils.h
index 5bd1e5f..60d095f 100644
--- a/src/trace_processor/sqlite_utils.h
+++ b/src/trace_processor/sqlite_utils.h
@@ -18,15 +18,15 @@
 #define SRC_TRACE_PROCESSOR_SQLITE_UTILS_H_
 
 #include <math.h>
-#include <sqlite3.h>
 
 #include <functional>
 #include <limits>
 #include <string>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/optional.h"
+#include "perfetto/ext/base/optional.h"
 #include "src/trace_processor/scoped_db.h"
+#include "src/trace_processor/sqlite.h"
 #include "src/trace_processor/table.h"
 
 namespace perfetto {
diff --git a/src/trace_processor/string_pool.h b/src/trace_processor/string_pool.h
index f4a1523..f5acdc7 100644
--- a/src/trace_processor/string_pool.h
+++ b/src/trace_processor/string_pool.h
@@ -17,7 +17,7 @@
 #ifndef SRC_TRACE_PROCESSOR_STRING_POOL_H_
 #define SRC_TRACE_PROCESSOR_STRING_POOL_H_
 
-#include "perfetto/base/paged_memory.h"
+#include "perfetto/ext/base/paged_memory.h"
 #include "src/trace_processor/null_term_string_view.h"
 
 #include <unordered_map>
diff --git a/src/trace_processor/string_pool_unittest.cc b/src/trace_processor/string_pool_unittest.cc
index 6160be4..4772475 100644
--- a/src/trace_processor/string_pool_unittest.cc
+++ b/src/trace_processor/string_pool_unittest.cc
@@ -18,7 +18,7 @@
 
 #include <random>
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace trace_processor {
@@ -49,7 +49,7 @@
   StringPool pool;
 
   auto id = pool.InternString(NullTermStringView());
-  ASSERT_EQ(id, 0);
+  ASSERT_EQ(id, 0u);
   ASSERT_EQ(pool.Get(id).c_str(), nullptr);
 }
 
@@ -119,7 +119,7 @@
     }
     string_map.erase(it_pair.first, it_pair.second);
   }
-  ASSERT_EQ(string_map.size(), 0);
+  ASSERT_EQ(string_map.size(), 0u);
 }
 
 }  // namespace
diff --git a/src/trace_processor/string_table.cc b/src/trace_processor/string_table.cc
index 0007296..407b838 100644
--- a/src/trace_processor/string_table.cc
+++ b/src/trace_processor/string_table.cc
@@ -16,13 +16,13 @@
 
 #include "src/trace_processor/string_table.h"
 
-#include <sqlite3.h>
 #include <string.h>
 
 #include <algorithm>
 #include <bitset>
 #include <numeric>
 
+#include "src/trace_processor/sqlite.h"
 #include "src/trace_processor/sqlite_utils.h"
 #include "src/trace_processor/trace_storage.h"
 
diff --git a/src/trace_processor/syscall_tracker.h b/src/trace_processor/syscall_tracker.h
index eba0fea..d2c910f 100644
--- a/src/trace_processor/syscall_tracker.h
+++ b/src/trace_processor/syscall_tracker.h
@@ -20,7 +20,7 @@
 #include <limits>
 #include <tuple>
 
-#include "perfetto/base/string_view.h"
+#include "perfetto/ext/base/string_view.h"
 #include "src/trace_processor/slice_tracker.h"
 #include "src/trace_processor/trace_processor_context.h"
 #include "src/trace_processor/trace_storage.h"
diff --git a/src/trace_processor/syscall_tracker_unittest.cc b/src/trace_processor/syscall_tracker_unittest.cc
index 0b8cef7..716889a 100644
--- a/src/trace_processor/syscall_tracker_unittest.cc
+++ b/src/trace_processor/syscall_tracker_unittest.cc
@@ -18,8 +18,8 @@
 
 #include "src/trace_processor/slice_tracker.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace trace_processor {
diff --git a/src/trace_processor/systrace_trace_parser.cc b/src/trace_processor/systrace_trace_parser.cc
new file mode 100644
index 0000000..0dd146c
--- /dev/null
+++ b/src/trace_processor/systrace_trace_parser.cc
@@ -0,0 +1,212 @@
+/*
+ * 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.
+ */
+
+#include "src/trace_processor/systrace_trace_parser.h"
+
+#include "perfetto/ext/base/string_splitter.h"
+#include "perfetto/ext/base/string_utils.h"
+#include "src/trace_processor/args_tracker.h"
+#include "src/trace_processor/event_tracker.h"
+#include "src/trace_processor/process_tracker.h"
+#include "src/trace_processor/slice_tracker.h"
+#include "src/trace_processor/systrace_utils.h"
+
+#include <inttypes.h>
+#include <string>
+#include <unordered_map>
+
+namespace perfetto {
+namespace trace_processor {
+
+namespace {
+
+std::string SubstrTrim(const std::string& input, size_t start, size_t end) {
+  auto s = input.substr(start, end - start);
+  s.erase(s.begin(), std::find_if(s.begin(), s.end(),
+                                  [](int ch) { return !std::isspace(ch); }));
+  s.erase(std::find_if(s.rbegin(), s.rend(),
+                       [](int ch) { return !std::isspace(ch); })
+              .base(),
+          s.end());
+  return s;
+}
+
+}  // namespace
+
+SystraceTraceParser::SystraceTraceParser(TraceProcessorContext* ctx)
+    : context_(ctx),
+      sched_wakeup_name_id_(ctx->storage->InternString("sched_wakeup")),
+      cpu_idle_name_id_(ctx->storage->InternString("cpuidle")) {}
+SystraceTraceParser::~SystraceTraceParser() = default;
+
+util::Status SystraceTraceParser::Parse(std::unique_ptr<uint8_t[]> owned_buf,
+                                        size_t size) {
+  if (state_ == ParseState::kEndOfSystrace)
+    return util::OkStatus();
+  partial_buf_.insert(partial_buf_.end(), &owned_buf[0], &owned_buf[size]);
+
+  if (state_ == ParseState::kBeforeParse) {
+    state_ = partial_buf_[0] == '<' ? ParseState::kHtmlBeforeSystrace
+                                    : ParseState::kSystrace;
+  }
+
+  const char kSystraceStart[] =
+      R"(<script class="trace-data" type="application/text">)";
+  auto start_it = partial_buf_.begin();
+  for (;;) {
+    auto line_it = std::find(start_it, partial_buf_.end(), '\n');
+    if (line_it == partial_buf_.end())
+      break;
+
+    std::string buffer(start_it, line_it);
+    if (state_ == ParseState::kHtmlBeforeSystrace) {
+      if (base::Contains(buffer, kSystraceStart)) {
+        state_ = ParseState::kSystrace;
+      }
+    } else if (state_ == ParseState::kSystrace) {
+      if (base::Contains(buffer, R"(</script>)")) {
+        state_ = kEndOfSystrace;
+        break;
+      } else if (!base::StartsWith(buffer, "#")) {
+        ParseSingleSystraceEvent(buffer);
+      }
+    }
+    start_it = line_it + 1;
+  }
+  if (state_ == ParseState::kEndOfSystrace) {
+    partial_buf_.clear();
+  } else {
+    partial_buf_.erase(partial_buf_.begin(), start_it);
+  }
+  return util::OkStatus();
+}
+
+util::Status SystraceTraceParser::ParseSingleSystraceEvent(
+    const std::string& buffer) {
+  // An example line from buffer looks something like the following:
+  // <idle>-0     (-----) [000] d..1 16500.715638: cpu_idle: state=0 cpu_id=0
+
+  auto task_idx = 16u;
+  std::string task = SubstrTrim(buffer, 0, task_idx);
+
+  auto tgid_idx = buffer.find('(', task_idx + 1);
+  std::string pid_str = SubstrTrim(buffer, task_idx + 1, tgid_idx);
+  auto pid = static_cast<uint32_t>(std::stoi(pid_str));
+  context_->process_tracker->GetOrCreateThread(pid);
+
+  auto tgid_end = buffer.find(')', tgid_idx + 1);
+  std::string tgid_str = SubstrTrim(buffer, tgid_idx + 1, tgid_end);
+  auto tgid = tgid_str == "-----"
+                  ? base::nullopt
+                  : base::Optional<uint32_t>(
+                        static_cast<uint32_t>(std::stoi(tgid_str)));
+  if (tgid.has_value()) {
+    context_->process_tracker->UpdateThread(pid, tgid.value());
+  }
+
+  auto cpu_idx = buffer.find('[', tgid_end + 1);
+  auto cpu_end = buffer.find(']', cpu_idx + 1);
+  std::string cpu_str = SubstrTrim(buffer, cpu_idx + 1, cpu_end);
+  auto cpu = static_cast<uint32_t>(std::stoi(cpu_str));
+
+  auto ts_idx = buffer.find(' ', cpu_end + 2);
+  auto ts_end = buffer.find(':', ts_idx + 1);
+  std::string ts_str = SubstrTrim(buffer, ts_idx + 1, ts_end);
+  auto ts_float = std::stod(ts_str) * 1e9;
+  auto ts = static_cast<int64_t>(ts_float);
+
+  auto fn_idx = buffer.find(':', ts_end + 2);
+  std::string fn = SubstrTrim(buffer, ts_end + 2, fn_idx);
+
+  std::string args_str = SubstrTrim(buffer, fn_idx + 2, buffer.size());
+
+  std::unordered_map<std::string, std::string> args;
+  for (base::StringSplitter ss(args_str.c_str(), ' '); ss.Next();) {
+    std::string key;
+    std::string value;
+    for (base::StringSplitter inner(ss.cur_token(), '='); inner.Next();) {
+      if (key.empty()) {
+        key = inner.cur_token();
+      } else {
+        value = inner.cur_token();
+      }
+    }
+    args.emplace(std::move(key), std::move(value));
+  }
+  if (fn == "sched_switch") {
+    auto prev_state_str = args["prev_state"];
+    int64_t prev_state =
+        ftrace_utils::TaskState(prev_state_str.c_str()).raw_state();
+
+    auto prev_pid = std::stoi(args["prev_pid"]);
+    auto prev_comm = base::StringView(args["prev_comm"]);
+    auto prev_prio = std::stoi(args["prev_prio"]);
+    auto next_pid = std::stoi(args["next_pid"]);
+    auto next_comm = base::StringView(args["next_comm"]);
+    auto next_prio = std::stoi(args["next_prio"]);
+
+    context_->event_tracker->PushSchedSwitch(
+        static_cast<uint32_t>(cpu), ts, static_cast<uint32_t>(prev_pid),
+        prev_comm, prev_prio, prev_state, static_cast<uint32_t>(next_pid),
+        next_comm, next_prio);
+  } else if (fn == "tracing_mark_write") {
+    systrace_utils::SystraceTracePoint point;
+    auto result = ParseSystraceTracePoint(args_str.c_str(), &point);
+    if (result == systrace_utils::SystraceParseResult::kSuccess) {
+      switch (point.phase) {
+        case 'B': {
+          StringId name_id = context_->storage->InternString(point.name);
+          context_->slice_tracker->BeginAndroid(ts, pid, point.tgid,
+                                                0 /*cat_id*/, name_id);
+          break;
+        }
+        case 'E': {
+          context_->slice_tracker->EndAndroid(ts, pid, point.tgid);
+          break;
+        }
+        case 'C': {
+          // This is per upid on purpose. Some counters are pushed from
+          // arbitrary threads but are really per process.
+          UniquePid upid =
+              context_->process_tracker->GetOrCreateProcess(point.tgid);
+          StringId name_id = context_->storage->InternString(point.name);
+          context_->event_tracker->PushCounter(ts, point.value, name_id, upid,
+                                               RefType::kRefUpid);
+        }
+      }
+    }
+  } else if (fn == "sched_wakeup") {
+    auto comm = args["comm"];
+    uint32_t wakee_pid = static_cast<uint32_t>(std::stoi(args["pid"]));
+
+    StringId name_id = context_->storage->InternString(base::StringView(comm));
+    auto wakee_utid =
+        context_->process_tracker->UpdateThreadName(wakee_pid, name_id);
+    context_->event_tracker->PushInstant(ts, sched_wakeup_name_id_,
+                                         0 /* value */, wakee_utid,
+                                         RefType::kRefUtid);
+  } else if (fn == "cpu_idle") {
+    auto new_state = static_cast<double>(std::stol(args["state"]));
+    uint32_t event_cpu = static_cast<uint32_t>(std::stoi(args["cpu_id"]));
+    context_->event_tracker->PushCounter(ts, new_state, cpu_idle_name_id_,
+                                         event_cpu, RefType::kRefCpuId);
+  }
+
+  return util::OkStatus();
+}
+
+}  // namespace trace_processor
+}  // namespace perfetto
diff --git a/src/trace_processor/systrace_trace_parser.h b/src/trace_processor/systrace_trace_parser.h
new file mode 100644
index 0000000..de58581
--- /dev/null
+++ b/src/trace_processor/systrace_trace_parser.h
@@ -0,0 +1,62 @@
+/*
+ * 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.
+ */
+
+#ifndef SRC_TRACE_PROCESSOR_SYSTRACE_TRACE_PARSER_H_
+#define SRC_TRACE_PROCESSOR_SYSTRACE_TRACE_PARSER_H_
+
+#include <deque>
+#include <regex>
+
+#include "src/trace_processor/chunked_trace_reader.h"
+#include "src/trace_processor/trace_processor_context.h"
+#include "src/trace_processor/trace_storage.h"
+
+namespace perfetto {
+namespace trace_processor {
+
+class SystraceTraceParser : public ChunkedTraceReader {
+ public:
+  explicit SystraceTraceParser(TraceProcessorContext*);
+  ~SystraceTraceParser() override;
+
+  // ChunkedTraceReader implementation.
+  util::Status Parse(std::unique_ptr<uint8_t[]>, size_t size) override;
+
+ private:
+  enum ParseState {
+    kBeforeParse,
+    kHtmlBeforeSystrace,
+    kSystrace,
+    kEndOfSystrace,
+  };
+
+  util::Status ParseSingleSystraceEvent(const std::string& buffer);
+
+  TraceProcessorContext* const context_;
+  const StringId sched_wakeup_name_id_ = 0;
+  const StringId cpu_idle_name_id_ = 0;
+
+  ParseState state_ = ParseState::kBeforeParse;
+
+  // Used to glue together trace packets that span across two (or more)
+  // Parse() boundaries.
+  std::deque<uint8_t> partial_buf_;
+};
+
+}  // namespace trace_processor
+}  // namespace perfetto
+
+#endif  // SRC_TRACE_PROCESSOR_SYSTRACE_TRACE_PARSER_H_
diff --git a/src/trace_processor/systrace_utils.h b/src/trace_processor/systrace_utils.h
new file mode 100644
index 0000000..a23e436
--- /dev/null
+++ b/src/trace_processor/systrace_utils.h
@@ -0,0 +1,135 @@
+/*
+ * 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 SRC_TRACE_PROCESSOR_SYSTRACE_UTILS_H_
+#define SRC_TRACE_PROCESSOR_SYSTRACE_UTILS_H_
+
+#include <string>
+
+#include "perfetto/ext/base/optional.h"
+#include "perfetto/ext/base/string_view.h"
+
+namespace perfetto {
+namespace trace_processor {
+namespace systrace_utils {
+
+struct SystraceTracePoint {
+  SystraceTracePoint() {}
+
+  SystraceTracePoint(char p, uint32_t tg, base::StringView n, double v)
+      : phase(p), tgid(tg), name(std::move(n)), value(v) {}
+
+  // Phase can be one of B, E or C.
+  char phase = '\0';
+
+  uint32_t tgid = 0;
+
+  // For phase = 'B' and phase = 'C' only.
+  base::StringView name;
+
+  // For phase = 'C' only.
+  double value = 0;
+};
+
+inline bool operator==(const SystraceTracePoint& x,
+                       const SystraceTracePoint& y) {
+  return std::tie(x.phase, x.tgid, x.name, x.value) ==
+         std::tie(y.phase, y.tgid, y.name, y.value);
+}
+
+enum class SystraceParseResult { kFailure = 0, kUnsupported, kSuccess };
+
+// We have to handle trace_marker events of a few different types:
+// 1. some random text
+// 2. B|1636|pokeUserActivity
+// 3. E|1636
+// 4. C|1636|wq:monitor|0
+inline SystraceParseResult ParseSystraceTracePoint(base::StringView str,
+                                                   SystraceTracePoint* out) {
+  const char* s = str.data();
+  size_t len = str.size();
+
+  if (len < 2)
+    return SystraceParseResult::kFailure;
+
+  // If str matches '[BEC]\|[0-9]+[\|\n]' set tgid_length to the length of
+  // the number. Otherwise return kFailure.
+  if (s[1] != '|' && s[1] != '\n')
+    return SystraceParseResult::kFailure;
+  if (s[0] != 'B' && s[0] != 'E' && s[0] != 'C') {
+    // TODO: support android async slices
+    return s[0] == 'S' || s[0] == 'F' ? SystraceParseResult::kUnsupported
+                                      : SystraceParseResult::kFailure;
+  }
+  size_t tgid_length = 0;
+  for (size_t i = 2; i < len; i++) {
+    if (s[i] == '|' || s[i] == '\n') {
+      tgid_length = i - 2;
+      break;
+    }
+    if (s[i] < '0' || s[i] > '9')
+      return SystraceParseResult::kFailure;
+  }
+
+  if (tgid_length == 0) {
+    out->tgid = 0;
+  } else {
+    std::string tgid_str(s + 2, tgid_length);
+    out->tgid = static_cast<uint32_t>(std::stoi(tgid_str.c_str()));
+  }
+
+  out->phase = s[0];
+  switch (s[0]) {
+    case 'B': {
+      size_t name_index = 2 + tgid_length + 1;
+      out->name = base::StringView(
+          s + name_index, len - name_index - (s[len - 1] == '\n' ? 1 : 0));
+      return SystraceParseResult::kSuccess;
+    }
+    case 'E': {
+      return SystraceParseResult::kSuccess;
+    }
+    case 'C': {
+      size_t name_index = 2 + tgid_length + 1;
+      base::Optional<size_t> name_length;
+      for (size_t i = name_index; i < len; i++) {
+        if (s[i] == '|') {
+          name_length = i - name_index;
+          break;
+        }
+      }
+      if (!name_length.has_value())
+        return SystraceParseResult::kFailure;
+      out->name = base::StringView(s + name_index, name_length.value());
+
+      size_t value_index = name_index + name_length.value() + 1;
+      size_t value_len = len - value_index;
+      if (value_len == 0)
+        return SystraceParseResult::kFailure;
+      std::string value_str(s + value_index, value_len);
+      out->value = std::stod(value_str.c_str());
+      return SystraceParseResult::kSuccess;
+    }
+    default:
+      return SystraceParseResult::kFailure;
+  }
+}
+
+}  // namespace systrace_utils
+}  // namespace trace_processor
+}  // namespace perfetto
+
+#endif  // SRC_TRACE_PROCESSOR_SYSTRACE_UTILS_H_
diff --git a/src/trace_processor/systrace_utils_unittest.cc b/src/trace_processor/systrace_utils_unittest.cc
new file mode 100644
index 0000000..c8c42d0
--- /dev/null
+++ b/src/trace_processor/systrace_utils_unittest.cc
@@ -0,0 +1,50 @@
+/*
+ * 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.
+ */
+
+#include "src/trace_processor/systrace_utils.h"
+
+#include <gtest/gtest.h>
+
+namespace perfetto {
+namespace trace_processor {
+namespace systrace_utils {
+
+TEST(SystraceParserTest, SystraceEvent) {
+  SystraceTracePoint result{};
+
+  ASSERT_EQ(ParseSystraceTracePoint(base::StringView(""), &result),
+            SystraceParseResult::kFailure);
+
+  ASSERT_EQ(ParseSystraceTracePoint(base::StringView("B|1|foo"), &result),
+            SystraceParseResult::kSuccess);
+  EXPECT_EQ(result, (SystraceTracePoint('B', 1, base::StringView("foo"), 0)));
+
+  ASSERT_EQ(ParseSystraceTracePoint(base::StringView("B|42|Bar"), &result),
+            SystraceParseResult::kSuccess);
+  EXPECT_EQ(result, (SystraceTracePoint('B', 42, base::StringView("Bar"), 0)));
+
+  ASSERT_EQ(ParseSystraceTracePoint(base::StringView("C|543|foo|"), &result),
+            SystraceParseResult::kFailure);
+  ASSERT_EQ(ParseSystraceTracePoint(base::StringView("C|543|foo|8"), &result),
+            SystraceParseResult::kSuccess);
+  EXPECT_EQ(result, (SystraceTracePoint('C', 543, base::StringView("foo"), 8)));
+
+  ASSERT_EQ(ParseSystraceTracePoint(base::StringView("S|"), &result),
+            SystraceParseResult::kUnsupported);
+}
+}  // namespace systrace_utils
+}  // namespace trace_processor
+}  // namespace perfetto
diff --git a/src/trace_processor/table.h b/src/trace_processor/table.h
index 0405eb9..0c8e638 100644
--- a/src/trace_processor/table.h
+++ b/src/trace_processor/table.h
@@ -17,16 +17,17 @@
 #ifndef SRC_TRACE_PROCESSOR_TABLE_H_
 #define SRC_TRACE_PROCESSOR_TABLE_H_
 
-#include <sqlite3.h>
-
 #include <functional>
 #include <memory>
 #include <string>
 #include <vector>
 
-#include "perfetto/base/optional.h"
+#include "perfetto/ext/base/optional.h"
+#include "perfetto/ext/base/utils.h"
 #include "perfetto/trace_processor/basic_types.h"
+#include "perfetto/trace_processor/status.h"
 #include "src/trace_processor/query_constraints.h"
+#include "src/trace_processor/sqlite.h"
 
 namespace perfetto {
 namespace trace_processor {
diff --git a/src/trace_processor/thread_table_unittest.cc b/src/trace_processor/thread_table_unittest.cc
index cfe4b3d..1a91f6d 100644
--- a/src/trace_processor/thread_table_unittest.cc
+++ b/src/trace_processor/thread_table_unittest.cc
@@ -23,8 +23,8 @@
 #include "src/trace_processor/scoped_db.h"
 #include "src/trace_processor/trace_processor_context.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace trace_processor {
diff --git a/src/trace_processor/trace_database_integrationtest.cc b/src/trace_processor/trace_database_integrationtest.cc
index d6db8bf..9a60472 100644
--- a/src/trace_processor/trace_database_integrationtest.cc
+++ b/src/trace_processor/trace_database_integrationtest.cc
@@ -18,9 +18,9 @@
 #include <random>
 #include <string>
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 #include "perfetto/base/logging.h"
-#include "perfetto/base/scoped_file.h"
+#include "perfetto/ext/base/scoped_file.h"
 #include "perfetto/trace_processor/trace_processor.h"
 #include "src/base/test/utils.h"
 #include "src/trace_processor/json_trace_parser.h"
diff --git a/src/trace_processor/trace_processor_impl.cc b/src/trace_processor/trace_processor_impl.cc
index 2b9022e..9e34dd3 100644
--- a/src/trace_processor/trace_processor_impl.cc
+++ b/src/trace_processor/trace_processor_impl.cc
@@ -22,9 +22,9 @@
 #include <functional>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/string_splitter.h"
-#include "perfetto/base/string_utils.h"
-#include "perfetto/base/time.h"
+#include "perfetto/ext/base/string_splitter.h"
+#include "perfetto/ext/base/string_utils.h"
+#include "perfetto/ext/base/time.h"
 #include "perfetto/protozero/scattered_heap_buffer.h"
 #include "src/trace_processor/android_logs_table.h"
 #include "src/trace_processor/args_table.h"
@@ -60,6 +60,7 @@
 #include "src/trace_processor/stats_table.h"
 #include "src/trace_processor/string_table.h"
 #include "src/trace_processor/syscall_tracker.h"
+#include "src/trace_processor/systrace_trace_parser.h"
 #include "src/trace_processor/table.h"
 #include "src/trace_processor/thread_table.h"
 #include "src/trace_processor/trace_blob_view.h"
@@ -279,11 +280,26 @@
     if (first_word == kFuchsiaMagicNumber)
       return kFuchsiaTraceType;
   }
+
+  // Systrace with header but no leading HTML.
+  if (base::StartsWith(start, "# tracer"))
+    return kSystraceTraceType;
+
+  // Systrace with leading HTML.
+  if (base::StartsWith(start, "<!DOCTYPE html>") ||
+      base::StartsWith(start, "<html>"))
+    return kSystraceTraceType;
+
+  // Systrace with no header or leading HTML.
+  if (base::StartsWith(start, " "))
+    return kSystraceTraceType;
+
   return kProtoTraceType;
 }
 
 TraceProcessorImpl::TraceProcessorImpl(const Config& cfg) {
   sqlite3* db = nullptr;
+  PERFETTO_CHECK(sqlite3_initialize() == SQLITE_OK);
   PERFETTO_CHECK(sqlite3_open(":memory:", &db) == SQLITE_OK);
   InitializeSqlite(db);
   CreateBuiltinTables(db);
@@ -381,6 +397,9 @@
         context_.parser.reset(new FuchsiaTraceParser(&context_));
         break;
       }
+      case kSystraceTraceType:
+        context_.chunk_reader.reset(new SystraceTraceParser(&context_));
+        break;
       case kUnknownTraceType:
         return util::ErrStatus("Unknown trace type provided");
     }
@@ -397,7 +416,8 @@
   if (unrecoverable_parse_error_ || !context_.chunk_reader)
     return;
 
-  context_.sorter->ExtractEventsForced();
+  if (context_.sorter)
+    context_.sorter->ExtractEventsForced();
   context_.event_tracker->FlushPendingEvents();
   BuildBoundsTable(*db_, context_.storage->GetTraceTimestampBoundsNs());
 }
diff --git a/src/trace_processor/trace_processor_impl.h b/src/trace_processor/trace_processor_impl.h
index ee2c055..8673928 100644
--- a/src/trace_processor/trace_processor_impl.h
+++ b/src/trace_processor/trace_processor_impl.h
@@ -17,18 +17,19 @@
 #ifndef SRC_TRACE_PROCESSOR_TRACE_PROCESSOR_IMPL_H_
 #define SRC_TRACE_PROCESSOR_TRACE_PROCESSOR_IMPL_H_
 
-#include <sqlite3.h>
 #include <atomic>
 #include <functional>
 #include <memory>
 #include <vector>
 
-#include "perfetto/base/string_view.h"
+#include "perfetto/ext/base/string_view.h"
 #include "perfetto/trace_processor/basic_types.h"
+#include "perfetto/trace_processor/status.h"
 #include "perfetto/trace_processor/trace_processor.h"
 #include "src/trace_processor/metrics/descriptors.h"
 #include "src/trace_processor/metrics/metrics.h"
 #include "src/trace_processor/scoped_db.h"
+#include "src/trace_processor/sqlite.h"
 #include "src/trace_processor/trace_processor_context.h"
 
 namespace perfetto {
@@ -40,6 +41,7 @@
   kProtoTraceType,
   kJsonTraceType,
   kFuchsiaTraceType,
+  kSystraceTraceType,
 };
 
 TraceType GuessTraceType(const uint8_t* data, size_t size);
diff --git a/src/trace_processor/trace_processor_impl_unittest.cc b/src/trace_processor/trace_processor_impl_unittest.cc
index 629314f..24611d0 100644
--- a/src/trace_processor/trace_processor_impl_unittest.cc
+++ b/src/trace_processor/trace_processor_impl_unittest.cc
@@ -16,8 +16,8 @@
 
 #include "src/trace_processor/trace_processor_impl.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace trace_processor {
diff --git a/src/trace_processor/trace_processor_shell.cc b/src/trace_processor/trace_processor_shell.cc
index 800e2cb..96b15f5 100644
--- a/src/trace_processor/trace_processor_shell.cc
+++ b/src/trace_processor/trace_processor_shell.cc
@@ -32,11 +32,11 @@
 #include <google/protobuf/text_format.h>
 
 #include "perfetto/base/build_config.h"
-#include "perfetto/base/file_utils.h"
 #include "perfetto/base/logging.h"
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/base/string_splitter.h"
-#include "perfetto/base/time.h"
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/string_splitter.h"
+#include "perfetto/ext/base/time.h"
 #include "perfetto/trace_processor/trace_processor.h"
 #include "src/trace_processor/metrics/metrics.descriptor.h"
 
@@ -599,22 +599,19 @@
       " -e|--export FILE                   Export the trace into a SQLite "
       "database.\n"
       " --run-metrics x,y,z                Runs a comma separated list of "
-      "metrics and prints the result as a TraceMetrics proto to stdout.\n"
-      " --register-metric FILE             Registers the given SQL file with "
-      "trace processor to allow this file to be run as a metric.\n"
-      " --extend-metrics-proto FILE        Extends the TraceMetrics proto "
-      "using the extensions in the given proto file.\n"
-      " --metric-textproto                 Ouputs the result of --run-metrics "
-      "as a textual proto rather than as serialized bytes.",
+      "metrics and prints the result as a TraceMetrics proto to stdout. The "
+      "metrics specified can either be in-built metrics or SQL/proto files of "
+      "extension metrics.\n"
+      " --metrics-output=[binary|text]      Allows the output of --run-metrics "
+      "to be specified in either proto binary or proto text format (default: "
+      "text)",
       argv[0]);
 }
 
 int TraceProcessorMain(int argc, char** argv) {
   enum LongOption {
     OPT_RUN_METRICS = 1000,
-    OPT_REGISTER_METRIC,
-    OPT_EXTEND_METRICS_PROTO,
-    OPT_METRICS_TEXTPROTO,
+    OPT_METRICS_OUTPUT,
   };
 
   static const struct option long_options[] = {
@@ -626,20 +623,15 @@
       {"query-file", required_argument, nullptr, 'q'},
       {"export", required_argument, nullptr, 'e'},
       {"run-metrics", required_argument, nullptr, OPT_RUN_METRICS},
-      {"register-metric", required_argument, nullptr, OPT_REGISTER_METRIC},
-      {"extend-metrics-proto", required_argument, nullptr,
-       OPT_EXTEND_METRICS_PROTO},
-      {"metric-textproto", no_argument, nullptr, OPT_METRICS_TEXTPROTO},
+      {"metrics-output", required_argument, nullptr, OPT_METRICS_OUTPUT},
       {nullptr, 0, nullptr, 0}};
 
   std::string perf_file_path;
   std::string query_file_path;
   std::string sqlite_file_path;
   std::string metric_names;
-  std::string register_metric;
-  std::string extend_metrics_proto;
+  std::string metric_output;
   bool explicit_interactive = false;
-  bool metrics_textproto = false;
   int option_index = 0;
   for (;;) {
     int option =
@@ -683,18 +675,8 @@
       continue;
     }
 
-    if (option == OPT_REGISTER_METRIC) {
-      register_metric = optarg;
-      continue;
-    }
-
-    if (option == OPT_EXTEND_METRICS_PROTO) {
-      extend_metrics_proto = optarg;
-      continue;
-    }
-
-    if (option == OPT_METRICS_TEXTPROTO) {
-      metrics_textproto = true;
+    if (option == OPT_METRICS_OUTPUT) {
+      metric_output = optarg;
       continue;
     }
 
@@ -815,27 +797,45 @@
     pool.BuildFile(desc);
   }
 
-  if (!extend_metrics_proto.empty()) {
-    util::Status status = ExtendMetricsProto(extend_metrics_proto, &pool);
-    if (!status.ok()) {
-      PERFETTO_ELOG("Error when extending proto: %s", status.c_message());
-      return 1;
-    }
-  }
-
-  if (!register_metric.empty()) {
-    util::Status status = RegisterMetric(register_metric);
-    if (!status.ok()) {
-      PERFETTO_ELOG("Error when registering metric: %s", status.c_message());
-      return 1;
-    }
-  }
-
   if (!metric_names.empty()) {
     std::vector<std::string> metrics;
     for (base::StringSplitter ss(metric_names, ','); ss.Next();) {
       metrics.emplace_back(ss.cur_token());
     }
+
+    // For all metrics which are files, register them and extend the metrics
+    // proto.
+    for (size_t i = 0; i < metrics.size(); ++i) {
+      const std::string& metric_or_path = metrics[i];
+
+      // If there is no extension, we assume it is a builtin metric.
+      auto ext_idx = metric_or_path.rfind(".");
+      if (ext_idx == std::string::npos)
+        continue;
+
+      std::string no_ext_name = metric_or_path.substr(0, ext_idx);
+      util::Status status = RegisterMetric(no_ext_name + ".sql");
+      if (!status.ok()) {
+        PERFETTO_ELOG("Unable to register metric %s: %s",
+                      metric_or_path.c_str(), status.c_message());
+        return 1;
+      }
+
+      status = ExtendMetricsProto(no_ext_name + ".proto", &pool);
+      if (!status.ok()) {
+        PERFETTO_ELOG("Unable to extend metrics proto %s: %s",
+                      metric_or_path.c_str(), status.c_message());
+        return 1;
+      }
+
+      auto slash_idx = no_ext_name.rfind('/');
+      std::string basename = slash_idx == std::string::npos
+                                 ? no_ext_name
+                                 : no_ext_name.substr(slash_idx + 1);
+      metrics[i] = basename;
+    }
+
+    bool metrics_textproto = metric_output != "binary";
     int ret = RunMetrics(std::move(metrics), metrics_textproto, pool);
     if (!ret) {
       auto t_query = base::GetWallTimeNs() - t_run_start;
diff --git a/src/trace_processor/trace_sorter.cc b/src/trace_processor/trace_sorter.cc
index 315460c..c08ada8 100644
--- a/src/trace_processor/trace_sorter.cc
+++ b/src/trace_processor/trace_sorter.cc
@@ -17,6 +17,7 @@
 #include <algorithm>
 #include <utility>
 
+#include "perfetto/ext/base/utils.h"
 #include "src/trace_processor/proto_trace_parser.h"
 #include "src/trace_processor/trace_sorter.h"
 
diff --git a/src/trace_processor/trace_sorter.h b/src/trace_processor/trace_sorter.h
index 839453b..6c0d778 100644
--- a/src/trace_processor/trace_sorter.h
+++ b/src/trace_processor/trace_sorter.h
@@ -19,7 +19,7 @@
 
 #include <vector>
 
-#include "perfetto/base/circular_queue.h"
+#include "perfetto/ext/base/circular_queue.h"
 #include "perfetto/trace_processor/basic_types.h"
 #include "src/trace_processor/fuchsia_provider_view.h"
 #include "src/trace_processor/proto_incremental_state.h"
diff --git a/src/trace_processor/trace_sorter_unittest.cc b/src/trace_processor/trace_sorter_unittest.cc
index e4b39c7..3e3927e 100644
--- a/src/trace_processor/trace_sorter_unittest.cc
+++ b/src/trace_processor/trace_sorter_unittest.cc
@@ -19,8 +19,8 @@
 #include <random>
 #include <vector>
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 #include "perfetto/trace_processor/basic_types.h"
 #include "src/trace_processor/trace_processor_context.h"
diff --git a/src/trace_processor/trace_storage.cc b/src/trace_processor/trace_storage.cc
index 2731638..58a2d01 100644
--- a/src/trace_processor/trace_storage.cc
+++ b/src/trace_processor/trace_storage.cc
@@ -20,7 +20,7 @@
 #include <algorithm>
 #include <limits>
 
-#include "perfetto/base/no_destructor.h"
+#include "perfetto/ext/base/no_destructor.h"
 
 namespace perfetto {
 namespace trace_processor {
diff --git a/src/trace_processor/trace_storage.h b/src/trace_processor/trace_storage.h
index 5318da9..45ffed3 100644
--- a/src/trace_processor/trace_storage.h
+++ b/src/trace_processor/trace_storage.h
@@ -25,12 +25,12 @@
 #include <utility>
 #include <vector>
 
-#include "perfetto/base/hash.h"
 #include "perfetto/base/logging.h"
-#include "perfetto/base/optional.h"
-#include "perfetto/base/string_view.h"
-#include "perfetto/base/time.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/hash.h"
+#include "perfetto/ext/base/optional.h"
+#include "perfetto/ext/base/string_view.h"
+#include "perfetto/ext/base/time.h"
+#include "perfetto/ext/base/utils.h"
 #include "src/trace_processor/ftrace_utils.h"
 #include "src/trace_processor/metadata.h"
 #include "src/trace_processor/stats.h"
diff --git a/src/traced/probes/BUILD.gn b/src/traced/probes/BUILD.gn
index adc0124..537ad24 100644
--- a/src/traced/probes/BUILD.gn
+++ b/src/traced/probes/BUILD.gn
@@ -14,7 +14,7 @@
 
 source_set("probes") {
   public_deps = [
-    "../../../include/perfetto/traced",
+    "../../../include/perfetto/ext/traced",
   ]
   deps = [
     ":probes_src",
@@ -33,7 +33,7 @@
   deps = [
     ":data_source",
     "../../../gn:default_deps",
-    "../../../include/perfetto/traced",
+    "../../../include/perfetto/ext/traced",
     "../../../protos/perfetto/trace/ps:zero",
     "../../base",
     "../../tracing:ipc",
diff --git a/src/traced/probes/android_log/BUILD.gn b/src/traced/probes/android_log/BUILD.gn
index be122a4..4ca377a 100644
--- a/src/traced/probes/android_log/BUILD.gn
+++ b/src/traced/probes/android_log/BUILD.gn
@@ -19,7 +19,7 @@
   deps = [
     "..:data_source",
     "../../../../gn:default_deps",
-    "../../../../include/perfetto/traced",
+    "../../../../include/perfetto/ext/traced",
     "../../../../protos/perfetto/common:zero",
     "../../../../protos/perfetto/config:zero",
     "../../../../protos/perfetto/trace/android:zero",
diff --git a/src/traced/probes/android_log/android_log_data_source.cc b/src/traced/probes/android_log/android_log_data_source.cc
index 63392a5..4556033 100644
--- a/src/traced/probes/android_log/android_log_data_source.cc
+++ b/src/traced/probes/android_log/android_log_data_source.cc
@@ -16,18 +16,18 @@
 
 #include "src/traced/probes/android_log/android_log_data_source.h"
 
-#include "perfetto/base/file_utils.h"
 #include "perfetto/base/logging.h"
-#include "perfetto/base/optional.h"
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/base/string_splitter.h"
-#include "perfetto/base/string_view.h"
 #include "perfetto/base/task_runner.h"
-#include "perfetto/base/time.h"
-#include "perfetto/base/unix_socket.h"
-#include "perfetto/tracing/core/data_source_config.h"
-#include "perfetto/tracing/core/trace_packet.h"
-#include "perfetto/tracing/core/trace_writer.h"
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/optional.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/string_splitter.h"
+#include "perfetto/ext/base/string_view.h"
+#include "perfetto/ext/base/time.h"
+#include "perfetto/ext/base/unix_socket.h"
+#include "perfetto/ext/tracing/core/data_source_config.h"
+#include "perfetto/ext/tracing/core/trace_packet.h"
+#include "perfetto/ext/tracing/core/trace_writer.h"
 
 #include "perfetto/common/android_log_constants.pbzero.h"
 #include "perfetto/config/android/android_log_config.pbzero.h"
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 3a19e19..171e543 100644
--- a/src/traced/probes/android_log/android_log_data_source.h
+++ b/src/traced/probes/android_log/android_log_data_source.h
@@ -21,11 +21,11 @@
 #include <unordered_set>
 #include <vector>
 
-#include "perfetto/base/paged_memory.h"
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/base/string_view.h"
-#include "perfetto/base/unix_socket.h"
-#include "perfetto/base/weak_ptr.h"
+#include "perfetto/ext/base/paged_memory.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/string_view.h"
+#include "perfetto/ext/base/unix_socket.h"
+#include "perfetto/ext/base/weak_ptr.h"
 #include "src/traced/probes/probes_data_source.h"
 
 namespace perfetto {
diff --git a/src/traced/probes/android_log/android_log_data_source_unittest.cc b/src/traced/probes/android_log/android_log_data_source_unittest.cc
index 601a779..defd4b6 100644
--- a/src/traced/probes/android_log/android_log_data_source_unittest.cc
+++ b/src/traced/probes/android_log/android_log_data_source_unittest.cc
@@ -16,13 +16,13 @@
 
 #include "src/traced/probes/android_log/android_log_data_source.h"
 
+#include "perfetto/ext/tracing/core/data_source_config.h"
 #include "perfetto/protozero/scattered_heap_buffer.h"
-#include "perfetto/tracing/core/data_source_config.h"
 #include "src/base/test/test_task_runner.h"
 #include "src/tracing/core/trace_writer_for_testing.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 #include "perfetto/common/android_log_constants.pbzero.h"
 #include "perfetto/config/android/android_log_config.pbzero.h"
diff --git a/src/traced/probes/filesystem/BUILD.gn b/src/traced/probes/filesystem/BUILD.gn
index 37bbdca..edf2b80 100644
--- a/src/traced/probes/filesystem/BUILD.gn
+++ b/src/traced/probes/filesystem/BUILD.gn
@@ -20,7 +20,7 @@
   deps = [
     "..:data_source",
     "../../../../gn:default_deps",
-    "../../../../include/perfetto/traced",
+    "../../../../include/perfetto/ext/traced",
     "../../../../protos/perfetto/config:zero",
     "../../../base",
   ]
diff --git a/src/traced/probes/filesystem/file_scanner.h b/src/traced/probes/filesystem/file_scanner.h
index 7e8f909..5fac41d 100644
--- a/src/traced/probes/filesystem/file_scanner.h
+++ b/src/traced/probes/filesystem/file_scanner.h
@@ -20,10 +20,10 @@
 #include <string>
 #include <vector>
 
-#include "perfetto/base/scoped_file.h"
 #include "perfetto/base/task_runner.h"
-#include "perfetto/base/weak_ptr.h"
-#include "perfetto/traced/data_source_types.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/weak_ptr.h"
+#include "perfetto/ext/traced/data_source_types.h"
 
 namespace perfetto {
 
diff --git a/src/traced/probes/filesystem/file_scanner_unittest.cc b/src/traced/probes/filesystem/file_scanner_unittest.cc
index 29776b0..ef21e0e 100644
--- a/src/traced/probes/filesystem/file_scanner_unittest.cc
+++ b/src/traced/probes/filesystem/file_scanner_unittest.cc
@@ -16,8 +16,8 @@
 
 #include "src/traced/probes/filesystem/file_scanner.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 #include <sys/stat.h>
 #include <memory>
diff --git a/src/traced/probes/filesystem/fs_mount.cc b/src/traced/probes/filesystem/fs_mount.cc
index da2030e..7564490 100644
--- a/src/traced/probes/filesystem/fs_mount.cc
+++ b/src/traced/probes/filesystem/fs_mount.cc
@@ -21,9 +21,9 @@
 #include <fstream>
 #include <sstream>
 
-#include "perfetto/base/file_utils.h"
 #include "perfetto/base/logging.h"
-#include "perfetto/base/string_splitter.h"
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/string_splitter.h"
 
 namespace perfetto {
 
diff --git a/src/traced/probes/filesystem/fs_mount.h b/src/traced/probes/filesystem/fs_mount.h
index 2086a80..b66a467 100644
--- a/src/traced/probes/filesystem/fs_mount.h
+++ b/src/traced/probes/filesystem/fs_mount.h
@@ -21,7 +21,7 @@
 #include <map>
 #include <string>
 #include <vector>
-#include "perfetto/traced/data_source_types.h"
+#include "perfetto/ext/traced/data_source_types.h"
 
 namespace perfetto {
 
diff --git a/src/traced/probes/filesystem/fs_mount_unittest.cc b/src/traced/probes/filesystem/fs_mount_unittest.cc
index 6c6b489..d2462d3 100644
--- a/src/traced/probes/filesystem/fs_mount_unittest.cc
+++ b/src/traced/probes/filesystem/fs_mount_unittest.cc
@@ -21,13 +21,13 @@
 #include <stdlib.h>
 #include <sys/stat.h>
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 #include "perfetto/base/build_config.h"
-#include "perfetto/base/file_utils.h"
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/base/temp_file.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/temp_file.h"
+#include "perfetto/ext/base/utils.h"
 
 namespace perfetto {
 namespace {
diff --git a/src/traced/probes/filesystem/inode_file_data_source.cc b/src/traced/probes/filesystem/inode_file_data_source.cc
index f3ae903..cf49f46 100644
--- a/src/traced/probes/filesystem/inode_file_data_source.cc
+++ b/src/traced/probes/filesystem/inode_file_data_source.cc
@@ -24,9 +24,9 @@
 #include <unordered_map>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/tracing/core/trace_packet.h"
-#include "perfetto/tracing/core/trace_writer.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/tracing/core/trace_packet.h"
+#include "perfetto/ext/tracing/core/trace_writer.h"
 
 #include "perfetto/config/inode_file/inode_file_config.pbzero.h"
 #include "perfetto/trace/trace_packet.pbzero.h"
diff --git a/src/traced/probes/filesystem/inode_file_data_source.h b/src/traced/probes/filesystem/inode_file_data_source.h
index 6ecd8e5..7acda83 100644
--- a/src/traced/probes/filesystem/inode_file_data_source.h
+++ b/src/traced/probes/filesystem/inode_file_data_source.h
@@ -26,11 +26,11 @@
 #include <unordered_map>
 
 #include "perfetto/base/task_runner.h"
-#include "perfetto/base/weak_ptr.h"
-#include "perfetto/traced/data_source_types.h"
-#include "perfetto/tracing/core/basic_types.h"
-#include "perfetto/tracing/core/data_source_config.h"
-#include "perfetto/tracing/core/trace_writer.h"
+#include "perfetto/ext/base/weak_ptr.h"
+#include "perfetto/ext/traced/data_source_types.h"
+#include "perfetto/ext/tracing/core/basic_types.h"
+#include "perfetto/ext/tracing/core/data_source_config.h"
+#include "perfetto/ext/tracing/core/trace_writer.h"
 #include "src/traced/probes/filesystem/file_scanner.h"
 #include "src/traced/probes/filesystem/fs_mount.h"
 #include "src/traced/probes/filesystem/lru_inode_cache.h"
diff --git a/src/traced/probes/filesystem/inode_file_data_source_unittest.cc b/src/traced/probes/filesystem/inode_file_data_source_unittest.cc
index cc6c85c..f639cba 100644
--- a/src/traced/probes/filesystem/inode_file_data_source_unittest.cc
+++ b/src/traced/probes/filesystem/inode_file_data_source_unittest.cc
@@ -24,8 +24,8 @@
 #include "perfetto/config/inode_file/inode_file_config.pbzero.h"
 #include "perfetto/trace/filesystem/inode_file_map.pbzero.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace {
diff --git a/src/traced/probes/filesystem/lru_inode_cache.h b/src/traced/probes/filesystem/lru_inode_cache.h
index 0b36109..629d387 100644
--- a/src/traced/probes/filesystem/lru_inode_cache.h
+++ b/src/traced/probes/filesystem/lru_inode_cache.h
@@ -22,7 +22,7 @@
 #include <string>
 #include <tuple>
 
-#include "perfetto/traced/data_source_types.h"
+#include "perfetto/ext/traced/data_source_types.h"
 
 namespace perfetto {
 
diff --git a/src/traced/probes/filesystem/lru_inode_cache_unittest.cc b/src/traced/probes/filesystem/lru_inode_cache_unittest.cc
index aafdc97..8fb3429 100644
--- a/src/traced/probes/filesystem/lru_inode_cache_unittest.cc
+++ b/src/traced/probes/filesystem/lru_inode_cache_unittest.cc
@@ -16,8 +16,8 @@
 
 #include "src/traced/probes/filesystem/lru_inode_cache.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 #include <string>
 #include <tuple>
diff --git a/src/traced/probes/filesystem/prefix_finder.cc b/src/traced/probes/filesystem/prefix_finder.cc
index 360880a..b22532e 100644
--- a/src/traced/probes/filesystem/prefix_finder.cc
+++ b/src/traced/probes/filesystem/prefix_finder.cc
@@ -16,7 +16,7 @@
 
 #include "src/traced/probes/filesystem/prefix_finder.h"
 #include "perfetto/base/logging.h"
-#include "perfetto/base/string_splitter.h"
+#include "perfetto/ext/base/string_splitter.h"
 
 namespace perfetto {
 
diff --git a/src/traced/probes/filesystem/prefix_finder.h b/src/traced/probes/filesystem/prefix_finder.h
index f788dea..4ae7f60 100644
--- a/src/traced/probes/filesystem/prefix_finder.h
+++ b/src/traced/probes/filesystem/prefix_finder.h
@@ -25,7 +25,7 @@
 #include <vector>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/lookup_set.h"
+#include "perfetto/ext/base/lookup_set.h"
 
 namespace perfetto {
 
diff --git a/src/traced/probes/filesystem/prefix_finder_unittest.cc b/src/traced/probes/filesystem/prefix_finder_unittest.cc
index b9972c5..0301810 100644
--- a/src/traced/probes/filesystem/prefix_finder_unittest.cc
+++ b/src/traced/probes/filesystem/prefix_finder_unittest.cc
@@ -21,12 +21,12 @@
 #include <stdlib.h>
 #include <sys/stat.h>
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 #include "perfetto/base/build_config.h"
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/base/temp_file.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/temp_file.h"
+#include "perfetto/ext/base/utils.h"
 
 namespace perfetto {
 namespace {
diff --git a/src/traced/probes/filesystem/range_tree.h b/src/traced/probes/filesystem/range_tree.h
index b28695a..9821ea7 100644
--- a/src/traced/probes/filesystem/range_tree.h
+++ b/src/traced/probes/filesystem/range_tree.h
@@ -20,7 +20,7 @@
 
 #include <stdio.h>
 
-#include "perfetto/base/small_set.h"
+#include "perfetto/ext/base/small_set.h"
 #include "src/traced/probes/filesystem/inode_file_data_source.h"
 #include "src/traced/probes/filesystem/prefix_finder.h"
 
diff --git a/src/traced/probes/filesystem/range_tree_unittest.cc b/src/traced/probes/filesystem/range_tree_unittest.cc
index 288647a..b600b8e 100644
--- a/src/traced/probes/filesystem/range_tree_unittest.cc
+++ b/src/traced/probes/filesystem/range_tree_unittest.cc
@@ -22,12 +22,12 @@
 #include <stdlib.h>
 #include <sys/stat.h>
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 #include "perfetto/base/build_config.h"
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/base/temp_file.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/temp_file.h"
+#include "perfetto/ext/base/utils.h"
 
 namespace perfetto {
 namespace {
diff --git a/src/traced/probes/ftrace/BUILD.gn b/src/traced/probes/ftrace/BUILD.gn
index 3a6767f..a3ae990 100644
--- a/src/traced/probes/ftrace/BUILD.gn
+++ b/src/traced/probes/ftrace/BUILD.gn
@@ -12,9 +12,9 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+import("../../../../gn/fuzzer.gni")
 import("../../../../gn/perfetto.gni")
 import("../../../../gn/proto_library.gni")
-import("../../../../gn/fuzzer.gni")
 import("../../../../gn/protozero_library.gni")
 
 # For use_libfuzzer.
@@ -113,7 +113,7 @@
     ":format_parser",
     "..:data_source",
     "../../../../gn:default_deps",
-    "../../../../include/perfetto/traced",
+    "../../../../include/perfetto/ext/traced",
     "../../../../protos/perfetto/config:lite",
     "../../../android_internal:headers",
     "../../../base",
diff --git a/src/traced/probes/ftrace/atrace_hal_wrapper.h b/src/traced/probes/ftrace/atrace_hal_wrapper.h
index 883388b..db215ae 100644
--- a/src/traced/probes/ftrace/atrace_hal_wrapper.h
+++ b/src/traced/probes/ftrace/atrace_hal_wrapper.h
@@ -21,7 +21,7 @@
 #include <string>
 #include <vector>
 
-#include "perfetto/base/scoped_file.h"
+#include "perfetto/ext/base/scoped_file.h"
 
 namespace perfetto {
 
diff --git a/src/traced/probes/ftrace/atrace_wrapper.cc b/src/traced/probes/ftrace/atrace_wrapper.cc
index 2acdbe4..bea9995 100644
--- a/src/traced/probes/ftrace/atrace_wrapper.cc
+++ b/src/traced/probes/ftrace/atrace_wrapper.cc
@@ -26,8 +26,9 @@
 #include <unistd.h>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/pipe.h"
-#include "perfetto/base/time.h"
+#include "perfetto/ext/base/pipe.h"
+#include "perfetto/ext/base/time.h"
+#include "perfetto/ext/base/utils.h"
 
 namespace perfetto {
 
diff --git a/src/traced/probes/ftrace/cpu_reader.cc b/src/traced/probes/ftrace/cpu_reader.cc
index 436edfb..9f0603d 100644
--- a/src/traced/probes/ftrace/cpu_reader.cc
+++ b/src/traced/probes/ftrace/cpu_reader.cc
@@ -26,9 +26,9 @@
 
 #include "perfetto/base/build_config.h"
 #include "perfetto/base/logging.h"
-#include "perfetto/base/metatrace.h"
-#include "perfetto/base/optional.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/metatrace.h"
+#include "perfetto/ext/base/optional.h"
+#include "perfetto/ext/base/utils.h"
 #include "src/traced/probes/ftrace/ftrace_controller.h"
 #include "src/traced/probes/ftrace/ftrace_data_source.h"
 #include "src/traced/probes/ftrace/ftrace_thread_sync.h"
diff --git a/src/traced/probes/ftrace/cpu_reader.h b/src/traced/probes/ftrace/cpu_reader.h
index 4cfe8c8..9ee0a61 100644
--- a/src/traced/probes/ftrace/cpu_reader.h
+++ b/src/traced/probes/ftrace/cpu_reader.h
@@ -26,14 +26,13 @@
 #include <set>
 #include <thread>
 
-#include "perfetto/base/gtest_prod_util.h"
-#include "perfetto/base/paged_memory.h"
-#include "perfetto/base/pipe.h"
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/base/thread_checker.h"
+#include "perfetto/ext/base/paged_memory.h"
+#include "perfetto/ext/base/pipe.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/thread_checker.h"
+#include "perfetto/ext/traced/data_source_types.h"
 #include "perfetto/protozero/message.h"
 #include "perfetto/protozero/message_handle.h"
-#include "perfetto/traced/data_source_types.h"
 #include "src/traced/probes/ftrace/ftrace_metadata.h"
 #include "src/traced/probes/ftrace/page_pool.h"
 #include "src/traced/probes/ftrace/proto_translation_table.h"
diff --git a/src/traced/probes/ftrace/cpu_reader_benchmark.cc b/src/traced/probes/ftrace/cpu_reader_benchmark.cc
index 363f66d..a366278 100644
--- a/src/traced/probes/ftrace/cpu_reader_benchmark.cc
+++ b/src/traced/probes/ftrace/cpu_reader_benchmark.cc
@@ -12,17 +12,15 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "benchmark/benchmark.h"
+#include <benchmark/benchmark.h>
 
-#include "src/traced/probes/ftrace/cpu_reader.h"
-#include "src/traced/probes/ftrace/proto_translation_table.h"
-
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/utils.h"
 #include "perfetto/protozero/scattered_stream_null_delegate.h"
 #include "perfetto/protozero/scattered_stream_writer.h"
-
 #include "perfetto/trace/ftrace/ftrace_event_bundle.pbzero.h"
-#include "test/cpu_reader_support.h"
+#include "src/traced/probes/ftrace/cpu_reader.h"
+#include "src/traced/probes/ftrace/proto_translation_table.h"
+#include "src/traced/probes/ftrace/test/cpu_reader_support.h"
 
 namespace {
 
@@ -39,7 +37,7 @@
 00000070: 6561 6400 6572 0000 7002 0000 6100 0000  ead.er..p...a...
 00000080: 0100 0000 0000 0000 4a69 7420 7468 7265  ........Jit thre
 00000090: 6164 2070 6f6f 6c00 140d 0000 8100 0000  ad pool.........
-000000a0: 50c2 0910 2f00 0103 140d 0000 4a69 7420  P.../.......Jit 
+000000a0: 50c2 0910 2f00 0103 140d 0000 4a69 7420  P.../.......Jit
 000000b0: 7468 7265 6164 2070 6f6f 6c00 140d 0000  thread pool.....
 000000c0: 8100 0000 0100 0000 0000 0000 7377 6170  ............swap
 000000d0: 7065 722f 3000 0000 0000 0000 0000 0000  per/0...........
@@ -290,17 +288,17 @@
 
 }  // namespace
 
-using perfetto::ExamplePage;
-using perfetto::EventFilter;
-using perfetto::ProtoTranslationTable;
-using protozero::ScatteredStreamWriterNullDelegate;
-using protozero::ScatteredStreamWriter;
-using perfetto::GetTable;
-using perfetto::PageFromXxd;
-using perfetto::protos::pbzero::FtraceEventBundle;
 using perfetto::CpuReader;
+using perfetto::EventFilter;
+using perfetto::ExamplePage;
 using perfetto::FtraceMetadata;
+using perfetto::GetTable;
 using perfetto::GroupAndName;
+using perfetto::PageFromXxd;
+using perfetto::ProtoTranslationTable;
+using perfetto::protos::pbzero::FtraceEventBundle;
+using protozero::ScatteredStreamWriter;
+using protozero::ScatteredStreamWriterNullDelegate;
 
 static void BM_ParsePageFullOfSchedSwitch(benchmark::State& state) {
   const ExamplePage* test_case = &g_full_page_sched_switch;
diff --git a/src/traced/probes/ftrace/cpu_reader_fuzzer.cc b/src/traced/probes/ftrace/cpu_reader_fuzzer.cc
index 0f79442..1b47bc9 100644
--- a/src/traced/probes/ftrace/cpu_reader_fuzzer.cc
+++ b/src/traced/probes/ftrace/cpu_reader_fuzzer.cc
@@ -20,12 +20,12 @@
 #include <algorithm>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/utils.h"
 #include "perfetto/protozero/scattered_stream_null_delegate.h"
 #include "perfetto/protozero/scattered_stream_writer.h"
 #include "perfetto/trace/ftrace/ftrace_event_bundle.pbzero.h"
 #include "src/traced/probes/ftrace/cpu_reader.h"
-#include "test/cpu_reader_support.h"
+#include "src/traced/probes/ftrace/test/cpu_reader_support.h"
 
 namespace perfetto {
 namespace {
diff --git a/src/traced/probes/ftrace/cpu_reader_unittest.cc b/src/traced/probes/ftrace/cpu_reader_unittest.cc
index 0631ecb..2967f01 100644
--- a/src/traced/probes/ftrace/cpu_reader_unittest.cc
+++ b/src/traced/probes/ftrace/cpu_reader_unittest.cc
@@ -18,13 +18,13 @@
 
 #include <sys/stat.h>
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 #include "src/traced/probes/ftrace/event_info.h"
 #include "src/traced/probes/ftrace/proto_translation_table.h"
 
 #include "perfetto/base/build_config.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/utils.h"
 #include "perfetto/protozero/proto_utils.h"
 #include "perfetto/protozero/scattered_heap_buffer.h"
 #include "perfetto/protozero/scattered_stream_writer.h"
diff --git a/src/traced/probes/ftrace/cpu_stats_parser.cc b/src/traced/probes/ftrace/cpu_stats_parser.cc
index 8048ee1..65745ca 100644
--- a/src/traced/probes/ftrace/cpu_stats_parser.cc
+++ b/src/traced/probes/ftrace/cpu_stats_parser.cc
@@ -16,8 +16,8 @@
 
 #include "src/traced/probes/ftrace/cpu_stats_parser.h"
 
-#include "perfetto/base/string_splitter.h"
-#include "perfetto/base/string_utils.h"
+#include "perfetto/ext/base/string_splitter.h"
+#include "perfetto/ext/base/string_utils.h"
 #include "src/traced/probes/ftrace/ftrace_controller.h"
 #include "src/traced/probes/ftrace/ftrace_procfs.h"
 #include "src/traced/probes/ftrace/ftrace_stats.h"
diff --git a/src/traced/probes/ftrace/cpu_stats_parser_unittest.cc b/src/traced/probes/ftrace/cpu_stats_parser_unittest.cc
index f016f19..fdcd173 100644
--- a/src/traced/probes/ftrace/cpu_stats_parser_unittest.cc
+++ b/src/traced/probes/ftrace/cpu_stats_parser_unittest.cc
@@ -1,7 +1,7 @@
 #include "src/traced/probes/ftrace/cpu_stats_parser.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 #include "src/traced/probes/ftrace/ftrace_controller.h"
 #include "src/traced/probes/ftrace/ftrace_stats.h"
diff --git a/src/traced/probes/ftrace/event_info_unittest.cc b/src/traced/probes/ftrace/event_info_unittest.cc
index 76d3d78..d43e9f1 100644
--- a/src/traced/probes/ftrace/event_info_unittest.cc
+++ b/src/traced/probes/ftrace/event_info_unittest.cc
@@ -17,7 +17,7 @@
 #include "src/traced/probes/ftrace/event_info.h"
 #include "perfetto/protozero/proto_utils.h"
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace {
diff --git a/src/traced/probes/ftrace/format_parser.cc b/src/traced/probes/ftrace/format_parser.cc
index 6cb1ee3..c5ce2c1 100644
--- a/src/traced/probes/ftrace/format_parser.cc
+++ b/src/traced/probes/ftrace/format_parser.cc
@@ -25,8 +25,8 @@
 #include <vector>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/string_splitter.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/string_splitter.h"
+#include "perfetto/ext/base/utils.h"
 
 namespace perfetto {
 namespace {
diff --git a/src/traced/probes/ftrace/format_parser_unittest.cc b/src/traced/probes/ftrace/format_parser_unittest.cc
index 17a8e84..f6566ad 100644
--- a/src/traced/probes/ftrace/format_parser_unittest.cc
+++ b/src/traced/probes/ftrace/format_parser_unittest.cc
@@ -15,8 +15,8 @@
  */
 #include "src/traced/probes/ftrace/format_parser.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace {
diff --git a/src/traced/probes/ftrace/ftrace_config_muxer.cc b/src/traced/probes/ftrace/ftrace_config_muxer.cc
index ca4719b..b75b8cb 100644
--- a/src/traced/probes/ftrace/ftrace_config_muxer.cc
+++ b/src/traced/probes/ftrace/ftrace_config_muxer.cc
@@ -23,7 +23,7 @@
 
 #include <algorithm>
 
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/utils.h"
 #include "src/traced/probes/ftrace/atrace_wrapper.h"
 
 namespace perfetto {
diff --git a/src/traced/probes/ftrace/ftrace_config_muxer_unittest.cc b/src/traced/probes/ftrace/ftrace_config_muxer_unittest.cc
index 936d02c..a697207 100644
--- a/src/traced/probes/ftrace/ftrace_config_muxer_unittest.cc
+++ b/src/traced/probes/ftrace/ftrace_config_muxer_unittest.cc
@@ -18,8 +18,8 @@
 
 #include <memory>
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 #include "src/traced/probes/ftrace/atrace_wrapper.h"
 #include "src/traced/probes/ftrace/ftrace_procfs.h"
 #include "src/traced/probes/ftrace/proto_translation_table.h"
diff --git a/src/traced/probes/ftrace/ftrace_config_unittest.cc b/src/traced/probes/ftrace/ftrace_config_unittest.cc
index ab3cb7b..7a27cd3 100644
--- a/src/traced/probes/ftrace/ftrace_config_unittest.cc
+++ b/src/traced/probes/ftrace/ftrace_config_unittest.cc
@@ -16,8 +16,8 @@
 
 #include "src/traced/probes/ftrace/ftrace_config_utils.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 using testing::Contains;
 
diff --git a/src/traced/probes/ftrace/ftrace_controller.cc b/src/traced/probes/ftrace/ftrace_controller.cc
index b1b3793..9a82289 100644
--- a/src/traced/probes/ftrace/ftrace_controller.cc
+++ b/src/traced/probes/ftrace/ftrace_controller.cc
@@ -29,11 +29,11 @@
 #include <utility>
 
 #include "perfetto/base/build_config.h"
-#include "perfetto/base/file_utils.h"
 #include "perfetto/base/logging.h"
-#include "perfetto/base/metatrace.h"
-#include "perfetto/base/time.h"
-#include "perfetto/tracing/core/trace_writer.h"
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/metatrace.h"
+#include "perfetto/ext/base/time.h"
+#include "perfetto/ext/tracing/core/trace_writer.h"
 #include "src/traced/probes/ftrace/cpu_reader.h"
 #include "src/traced/probes/ftrace/cpu_stats_parser.h"
 #include "src/traced/probes/ftrace/event_info.h"
diff --git a/src/traced/probes/ftrace/ftrace_controller.h b/src/traced/probes/ftrace/ftrace_controller.h
index b2af959..63514b7 100644
--- a/src/traced/probes/ftrace/ftrace_controller.h
+++ b/src/traced/probes/ftrace/ftrace_controller.h
@@ -27,11 +27,10 @@
 #include <set>
 #include <string>
 
-#include "perfetto/base/gtest_prod_util.h"
 #include "perfetto/base/task_runner.h"
-#include "perfetto/base/utils.h"
-#include "perfetto/base/weak_ptr.h"
-#include "perfetto/tracing/core/basic_types.h"
+#include "perfetto/ext/base/utils.h"
+#include "perfetto/ext/base/weak_ptr.h"
+#include "perfetto/ext/tracing/core/basic_types.h"
 #include "src/traced/probes/ftrace/ftrace_config_utils.h"
 #include "src/traced/probes/ftrace/ftrace_thread_sync.h"
 
@@ -100,7 +99,6 @@
 
  private:
   friend class TestFtraceController;
-  FRIEND_TEST(FtraceControllerIntegrationTest, EnableDisableEvent);
 
   FtraceController(const FtraceController&) = delete;
   FtraceController& operator=(const FtraceController&) = delete;
diff --git a/src/traced/probes/ftrace/ftrace_controller_unittest.cc b/src/traced/probes/ftrace/ftrace_controller_unittest.cc
index 82fc6c8..51249ac 100644
--- a/src/traced/probes/ftrace/ftrace_controller_unittest.cc
+++ b/src/traced/probes/ftrace/ftrace_controller_unittest.cc
@@ -20,8 +20,8 @@
 #include <sys/stat.h>
 #include <sys/types.h>
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 #include "src/traced/probes/ftrace/cpu_reader.h"
 #include "src/traced/probes/ftrace/ftrace_config_muxer.h"
 #include "src/traced/probes/ftrace/ftrace_config_utils.h"
diff --git a/src/traced/probes/ftrace/ftrace_data_source.h b/src/traced/probes/ftrace/ftrace_data_source.h
index c65c463..04e50f5 100644
--- a/src/traced/probes/ftrace/ftrace_data_source.h
+++ b/src/traced/probes/ftrace/ftrace_data_source.h
@@ -24,11 +24,11 @@
 #include <string>
 #include <utility>
 
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/base/weak_ptr.h"
+#include "perfetto/ext/base/scoped_file.h"
+#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/protozero/message_handle.h"
-#include "perfetto/tracing/core/basic_types.h"
-#include "perfetto/tracing/core/trace_writer.h"
 #include "src/traced/probes/ftrace/ftrace_config_utils.h"
 #include "src/traced/probes/ftrace/ftrace_metadata.h"
 #include "src/traced/probes/ftrace/ftrace_stats.h"
diff --git a/src/traced/probes/ftrace/ftrace_procfs.cc b/src/traced/probes/ftrace/ftrace_procfs.cc
index 47e56e7..060f4cd 100644
--- a/src/traced/probes/ftrace/ftrace_procfs.cc
+++ b/src/traced/probes/ftrace/ftrace_procfs.cc
@@ -25,9 +25,9 @@
 #include <sstream>
 #include <string>
 
-#include "perfetto/base/file_utils.h"
 #include "perfetto/base/logging.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/utils.h"
 
 namespace perfetto {
 
diff --git a/src/traced/probes/ftrace/ftrace_procfs.h b/src/traced/probes/ftrace/ftrace_procfs.h
index 2860eae..6066858 100644
--- a/src/traced/probes/ftrace/ftrace_procfs.h
+++ b/src/traced/probes/ftrace/ftrace_procfs.h
@@ -21,7 +21,7 @@
 #include <set>
 #include <string>
 
-#include "perfetto/base/scoped_file.h"
+#include "perfetto/ext/base/scoped_file.h"
 
 namespace perfetto {
 
diff --git a/src/traced/probes/ftrace/ftrace_procfs_integrationtest.cc b/src/traced/probes/ftrace/ftrace_procfs_integrationtest.cc
index b63bd98..022190a 100644
--- a/src/traced/probes/ftrace/ftrace_procfs_integrationtest.cc
+++ b/src/traced/probes/ftrace/ftrace_procfs_integrationtest.cc
@@ -19,9 +19,9 @@
 #include <sstream>
 #include <string>
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
-#include "perfetto/base/file_utils.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include "perfetto/ext/base/file_utils.h"
 #include "src/traced/probes/ftrace/ftrace_controller.h"
 #include "src/traced/probes/ftrace/ftrace_procfs.h"
 
diff --git a/src/traced/probes/ftrace/ftrace_procfs_unittest.cc b/src/traced/probes/ftrace/ftrace_procfs_unittest.cc
index cac3360..4a10854 100644
--- a/src/traced/probes/ftrace/ftrace_procfs_unittest.cc
+++ b/src/traced/probes/ftrace/ftrace_procfs_unittest.cc
@@ -16,8 +16,8 @@
 
 #include "src/traced/probes/ftrace/ftrace_procfs.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 using testing::AnyNumber;
 using testing::IsEmpty;
diff --git a/src/traced/probes/ftrace/ftrace_thread_sync.h b/src/traced/probes/ftrace/ftrace_thread_sync.h
index b2c4a9a..fbfa3fd 100644
--- a/src/traced/probes/ftrace/ftrace_thread_sync.h
+++ b/src/traced/probes/ftrace/ftrace_thread_sync.h
@@ -23,8 +23,8 @@
 #include <condition_variable>
 #include <mutex>
 
-#include "perfetto/base/utils.h"
-#include "perfetto/base/weak_ptr.h"
+#include "perfetto/ext/base/utils.h"
+#include "perfetto/ext/base/weak_ptr.h"
 
 namespace perfetto {
 
diff --git a/src/traced/probes/ftrace/page_pool.h b/src/traced/probes/ftrace/page_pool.h
index e558d85..b0b5fc3 100644
--- a/src/traced/probes/ftrace/page_pool.h
+++ b/src/traced/probes/ftrace/page_pool.h
@@ -23,10 +23,10 @@
 #include <vector>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/optional.h"
-#include "perfetto/base/paged_memory.h"
-#include "perfetto/base/thread_checker.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/optional.h"
+#include "perfetto/ext/base/paged_memory.h"
+#include "perfetto/ext/base/thread_checker.h"
+#include "perfetto/ext/base/utils.h"
 
 namespace perfetto {
 
diff --git a/src/traced/probes/ftrace/page_pool_unittest.cc b/src/traced/probes/ftrace/page_pool_unittest.cc
index 3e7fbcb..e99b7cb 100644
--- a/src/traced/probes/ftrace/page_pool_unittest.cc
+++ b/src/traced/probes/ftrace/page_pool_unittest.cc
@@ -22,7 +22,7 @@
 #include <thread>
 #include <vector>
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace {
diff --git a/src/traced/probes/ftrace/proto_translation_table.cc b/src/traced/probes/ftrace/proto_translation_table.cc
index 16b87fd..9c2b8a6 100644
--- a/src/traced/probes/ftrace/proto_translation_table.cc
+++ b/src/traced/probes/ftrace/proto_translation_table.cc
@@ -21,7 +21,7 @@
 
 #include <algorithm>
 
-#include "perfetto/base/string_utils.h"
+#include "perfetto/ext/base/string_utils.h"
 #include "perfetto/protozero/proto_utils.h"
 #include "src/traced/probes/ftrace/event_info.h"
 #include "src/traced/probes/ftrace/ftrace_procfs.h"
@@ -34,8 +34,8 @@
 
 namespace {
 
-using protozero::proto_utils::ProtoSchemaType;
 using protos::pbzero::GenericFtraceEvent;
+using protozero::proto_utils::ProtoSchemaType;
 
 ProtoTranslationTable::FtracePageHeaderSpec MakeFtracePageHeaderSpec(
     const std::vector<FtraceEvent::Field>& fields) {
@@ -74,8 +74,9 @@
   if (commit_size < 8 && uname(&sysinfo) == 0) {
     // Arm returns armv# for its machine type. The first (and only currently)
     // arm processor that supports 64bit is the armv8 series.
-    commit_size = strstr(sysinfo.machine, "64") ||
-                  strstr(sysinfo.machine, "armv8") ? 8 : 4;
+    commit_size =
+        strstr(sysinfo.machine, "64") || strstr(sysinfo.machine, "armv8") ? 8
+                                                                          : 4;
   }
 #endif
 
diff --git a/src/traced/probes/ftrace/proto_translation_table.h b/src/traced/probes/ftrace/proto_translation_table.h
index fe4abde..ea5ff90 100644
--- a/src/traced/probes/ftrace/proto_translation_table.h
+++ b/src/traced/probes/ftrace/proto_translation_table.h
@@ -25,7 +25,7 @@
 #include <string>
 #include <vector>
 
-#include "perfetto/base/scoped_file.h"
+#include "perfetto/ext/base/scoped_file.h"
 #include "src/traced/probes/ftrace/event_info.h"
 #include "src/traced/probes/ftrace/format_parser.h"
 
diff --git a/src/traced/probes/ftrace/proto_translation_table_unittest.cc b/src/traced/probes/ftrace/proto_translation_table_unittest.cc
index 89d6c67..249e0ac 100644
--- a/src/traced/probes/ftrace/proto_translation_table_unittest.cc
+++ b/src/traced/probes/ftrace/proto_translation_table_unittest.cc
@@ -16,8 +16,8 @@
 
 #include "src/traced/probes/ftrace/proto_translation_table.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 #include "perfetto/trace/ftrace/ftrace_event.pbzero.h"
 #include "perfetto/trace/ftrace/generic.pbzero.h"
 #include "src/base/test/gtest_test_suite.h"
@@ -172,7 +172,6 @@
 	field:u32 field_e;	offset:32;	size:4;	signed:0;
 
 print fmt: "some format")"));
-  ;
 
   EXPECT_CALL(ftrace, ReadPageHeaderFormat()).Times(AnyNumber());
   EXPECT_CALL(ftrace, ReadEventFormat(_, _)).Times(AnyNumber());
diff --git a/src/traced/probes/ftrace/test/cpu_reader_support.cc b/src/traced/probes/ftrace/test/cpu_reader_support.cc
index 4d1ce03..1481b16 100644
--- a/src/traced/probes/ftrace/test/cpu_reader_support.cc
+++ b/src/traced/probes/ftrace/test/cpu_reader_support.cc
@@ -16,7 +16,7 @@
 
 #include "src/traced/probes/ftrace/test/cpu_reader_support.h"
 
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/utils.h"
 #include "src/traced/probes/ftrace/ftrace_procfs.h"
 
 #include <string.h>
diff --git a/src/traced/probes/main.cc b/src/traced/probes/main.cc
index 71b9d4e..a91a6b6 100644
--- a/src/traced/probes/main.cc
+++ b/src/traced/probes/main.cc
@@ -15,7 +15,7 @@
  */
 
 #include <stdio.h>
-#include "perfetto/traced/traced.h"
+#include "perfetto/ext/traced/traced.h"
 
 int main(int argc, char** argv) {
   return perfetto::ProbesMain(argc, argv);
diff --git a/src/traced/probes/packages_list/BUILD.gn b/src/traced/probes/packages_list/BUILD.gn
index d896aef..1a9653b 100644
--- a/src/traced/probes/packages_list/BUILD.gn
+++ b/src/traced/probes/packages_list/BUILD.gn
@@ -19,7 +19,7 @@
   deps = [
     "..:data_source",
     "../../../../gn:default_deps",
-    "../../../../include/perfetto/traced",
+    "../../../../include/perfetto/ext/traced",
     "../../../../protos/perfetto/common:zero",
     "../../../../protos/perfetto/trace/android:zero",
     "../../../base",
diff --git a/src/traced/probes/packages_list/packages_list_data_source.cc b/src/traced/probes/packages_list/packages_list_data_source.cc
index 493fdae..d420dea 100644
--- a/src/traced/probes/packages_list/packages_list_data_source.cc
+++ b/src/traced/probes/packages_list/packages_list_data_source.cc
@@ -16,11 +16,11 @@
 
 #include "src/traced/probes/packages_list/packages_list_data_source.h"
 
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/base/string_splitter.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/string_splitter.h"
 
+#include "perfetto/ext/tracing/core/trace_writer.h"
 #include "perfetto/trace/trace_packet.pbzero.h"
-#include "perfetto/tracing/core/trace_writer.h"
 
 namespace perfetto {
 
diff --git a/src/traced/probes/packages_list/packages_list_data_source.h b/src/traced/probes/packages_list/packages_list_data_source.h
index e6026ae..430d433 100644
--- a/src/traced/probes/packages_list/packages_list_data_source.h
+++ b/src/traced/probes/packages_list/packages_list_data_source.h
@@ -22,9 +22,9 @@
 
 #include "perfetto/base/task_runner.h"
 
+#include "perfetto/ext/tracing/core/basic_types.h"
+#include "perfetto/ext/tracing/core/data_source_config.h"
 #include "perfetto/trace/android/packages_list.pbzero.h"
-#include "perfetto/tracing/core/basic_types.h"
-#include "perfetto/tracing/core/data_source_config.h"
 
 #include "src/traced/probes/probes_data_source.h"
 
diff --git a/src/traced/probes/power/BUILD.gn b/src/traced/probes/power/BUILD.gn
index e8dc445..bfdb35c 100644
--- a/src/traced/probes/power/BUILD.gn
+++ b/src/traced/probes/power/BUILD.gn
@@ -20,7 +20,7 @@
   deps = [
     "..:data_source",
     "../../../../gn:default_deps",
-    "../../../../include/perfetto/traced",
+    "../../../../include/perfetto/ext/traced",
     "../../../../protos/perfetto/config:zero",
     "../../../../protos/perfetto/trace/power:zero",
     "../../../android_internal:headers",
diff --git a/src/traced/probes/power/android_power_data_source.cc b/src/traced/probes/power/android_power_data_source.cc
index a1899f5..b1f8197 100644
--- a/src/traced/probes/power/android_power_data_source.cc
+++ b/src/traced/probes/power/android_power_data_source.cc
@@ -21,13 +21,13 @@
 #include <vector>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/optional.h"
-#include "perfetto/base/scoped_file.h"
 #include "perfetto/base/task_runner.h"
-#include "perfetto/base/time.h"
-#include "perfetto/tracing/core/data_source_config.h"
-#include "perfetto/tracing/core/trace_packet.h"
-#include "perfetto/tracing/core/trace_writer.h"
+#include "perfetto/ext/base/optional.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/time.h"
+#include "perfetto/ext/tracing/core/data_source_config.h"
+#include "perfetto/ext/tracing/core/trace_packet.h"
+#include "perfetto/ext/tracing/core/trace_writer.h"
 #include "src/android_internal/health_hal.h"
 #include "src/android_internal/power_stats_hal.h"
 
diff --git a/src/traced/probes/power/android_power_data_source.h b/src/traced/probes/power/android_power_data_source.h
index b3b45e8..65e4910 100644
--- a/src/traced/probes/power/android_power_data_source.h
+++ b/src/traced/probes/power/android_power_data_source.h
@@ -20,9 +20,9 @@
 #include <bitset>
 #include <memory>
 
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/base/weak_ptr.h"
-#include "perfetto/tracing/core/data_source_config.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/weak_ptr.h"
+#include "perfetto/ext/tracing/core/data_source_config.h"
 #include "src/traced/probes/probes_data_source.h"
 
 namespace perfetto {
diff --git a/src/traced/probes/probes.cc b/src/traced/probes/probes.cc
index 4920138..0d941b4 100644
--- a/src/traced/probes/probes.cc
+++ b/src/traced/probes/probes.cc
@@ -20,8 +20,8 @@
 #include <unistd.h>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/unix_task_runner.h"
-#include "perfetto/traced/traced.h"
+#include "perfetto/ext/base/unix_task_runner.h"
+#include "perfetto/ext/traced/traced.h"
 
 #include "src/traced/probes/ftrace/ftrace_procfs.h"
 #include "src/traced/probes/probes_producer.h"
diff --git a/src/traced/probes/probes_data_source.h b/src/traced/probes/probes_data_source.h
index 7c92ede..ef410c7 100644
--- a/src/traced/probes/probes_data_source.h
+++ b/src/traced/probes/probes_data_source.h
@@ -20,7 +20,7 @@
 #include <functional>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/tracing/core/basic_types.h"
+#include "perfetto/ext/tracing/core/basic_types.h"
 
 namespace perfetto {
 
diff --git a/src/traced/probes/probes_producer.cc b/src/traced/probes/probes_producer.cc
index 87e688d..9e4596c 100644
--- a/src/traced/probes/probes_producer.cc
+++ b/src/traced/probes/probes_producer.cc
@@ -24,14 +24,14 @@
 #include <string>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/utils.h"
-#include "perfetto/base/weak_ptr.h"
-#include "perfetto/traced/traced.h"
-#include "perfetto/tracing/core/data_source_config.h"
-#include "perfetto/tracing/core/data_source_descriptor.h"
-#include "perfetto/tracing/core/trace_config.h"
-#include "perfetto/tracing/core/trace_packet.h"
-#include "perfetto/tracing/ipc/producer_ipc_client.h"
+#include "perfetto/ext/base/utils.h"
+#include "perfetto/ext/base/weak_ptr.h"
+#include "perfetto/ext/traced/traced.h"
+#include "perfetto/ext/tracing/core/data_source_config.h"
+#include "perfetto/ext/tracing/core/data_source_descriptor.h"
+#include "perfetto/ext/tracing/core/trace_config.h"
+#include "perfetto/ext/tracing/core/trace_packet.h"
+#include "perfetto/ext/tracing/ipc/producer_ipc_client.h"
 #include "src/traced/probes/android_log/android_log_data_source.h"
 #include "src/traced/probes/filesystem/inode_file_data_source.h"
 #include "src/traced/probes/ftrace/ftrace_config.h"
diff --git a/src/traced/probes/probes_producer.h b/src/traced/probes/probes_producer.h
index 2184830..9d28c8a 100644
--- a/src/traced/probes/probes_producer.h
+++ b/src/traced/probes/probes_producer.h
@@ -22,11 +22,11 @@
 #include <utility>
 
 #include "perfetto/base/task_runner.h"
-#include "perfetto/base/watchdog.h"
-#include "perfetto/base/weak_ptr.h"
-#include "perfetto/tracing/core/producer.h"
-#include "perfetto/tracing/core/trace_writer.h"
-#include "perfetto/tracing/core/tracing_service.h"
+#include "perfetto/ext/base/watchdog.h"
+#include "perfetto/ext/base/weak_ptr.h"
+#include "perfetto/ext/tracing/core/producer.h"
+#include "perfetto/ext/tracing/core/trace_writer.h"
+#include "perfetto/ext/tracing/core/tracing_service.h"
 #include "src/traced/probes/filesystem/inode_file_data_source.h"
 #include "src/traced/probes/ftrace/ftrace_controller.h"
 #include "src/traced/probes/ftrace/ftrace_metadata.h"
diff --git a/src/traced/probes/ps/BUILD.gn b/src/traced/probes/ps/BUILD.gn
index 9be871a..fa35b43 100644
--- a/src/traced/probes/ps/BUILD.gn
+++ b/src/traced/probes/ps/BUILD.gn
@@ -19,7 +19,7 @@
   deps = [
     "..:data_source",
     "../../../../gn:default_deps",
-    "../../../../include/perfetto/traced",
+    "../../../../include/perfetto/ext/traced",
     "../../../../protos/perfetto/config:zero",
     "../../../../protos/perfetto/trace/ps:zero",
     "../../../base",
diff --git a/src/traced/probes/ps/process_stats_data_source.cc b/src/traced/probes/ps/process_stats_data_source.cc
index ec18775..86265ed 100644
--- a/src/traced/probes/ps/process_stats_data_source.cc
+++ b/src/traced/probes/ps/process_stats_data_source.cc
@@ -21,13 +21,13 @@
 #include <algorithm>
 #include <utility>
 
-#include "perfetto/base/file_utils.h"
-#include "perfetto/base/metatrace.h"
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/base/string_splitter.h"
 #include "perfetto/base/task_runner.h"
-#include "perfetto/base/time.h"
-#include "perfetto/tracing/core/data_source_config.h"
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/metatrace.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/string_splitter.h"
+#include "perfetto/ext/base/time.h"
+#include "perfetto/ext/tracing/core/data_source_config.h"
 
 #include "perfetto/config/process_stats/process_stats_config.pbzero.h"
 #include "perfetto/trace/ps/process_stats.pbzero.h"
@@ -140,6 +140,9 @@
 void ProcessStatsDataSource::WriteAllProcesses() {
   PERFETTO_METATRACE("WriteAllProcesses", 0);
   PERFETTO_DCHECK(!cur_ps_tree_);
+
+  CacheProcFsScanStartTimestamp();
+
   base::ScopedDir proc_dir = OpenProcDir();
   if (!proc_dir)
     return;
@@ -203,6 +206,9 @@
 }
 
 void ProcessStatsDataSource::WriteProcessOrThread(int32_t pid) {
+  // In case we're called from outside WriteAllProcesses()
+  CacheProcFsScanStartTimestamp();
+
   std::string proc_status = ReadProcPidFile(pid, "status");
   if (proc_status.empty())
     return;
@@ -284,8 +290,7 @@
   if (cur_packet_)
     return;
   cur_packet_ = writer_->NewTracePacket();
-  uint64_t now = static_cast<uint64_t>(base::GetBootTimeNs().count());
-  cur_packet_->set_timestamp(now);
+  cur_packet_->set_timestamp(CacheProcFsScanStartTimestamp());
 
   if (did_clear_incremental_state_) {
     cur_packet_->set_incremental_state_cleared(true);
@@ -323,9 +328,17 @@
 void ProcessStatsDataSource::FinalizeCurPacket() {
   PERFETTO_DCHECK(!cur_ps_tree_ || cur_packet_);
   PERFETTO_DCHECK(!cur_ps_stats_ || cur_packet_);
-  cur_ps_tree_ = nullptr;
-  cur_ps_stats_ = nullptr;
+  uint64_t now = static_cast<uint64_t>(base::GetBootTimeNs().count());
+  if (cur_ps_tree_) {
+    cur_ps_tree_->set_collection_end_timestamp(now);
+    cur_ps_tree_ = nullptr;
+  }
+  if (cur_ps_stats_) {
+    cur_ps_stats_->set_collection_end_timestamp(now);
+    cur_ps_stats_ = nullptr;
+  }
   cur_ps_stats_process_ = nullptr;
+  cur_procfs_scan_start_timestamp_ = 0;
   cur_packet_ = TraceWriter::TracePacketHandle{};
 }
 
@@ -353,6 +366,7 @@
   // TODO(primiano): Have a pid cache to avoid wasting cycles reading kthreads
   // proc files over and over. Same for non-whitelist processes (see above).
 
+  CacheProcFsScanStartTimestamp();
   PERFETTO_METATRACE("WriteAllProcessStats", 0);
   base::ScopedDir proc_dir = OpenProcDir();
   if (!proc_dir)
@@ -509,6 +523,13 @@
   return proc_status_has_mem_counters;
 }
 
+uint64_t ProcessStatsDataSource::CacheProcFsScanStartTimestamp() {
+  if (!cur_procfs_scan_start_timestamp_)
+    cur_procfs_scan_start_timestamp_ =
+        static_cast<uint64_t>(base::GetBootTimeNs().count());
+  return cur_procfs_scan_start_timestamp_;
+}
+
 void ProcessStatsDataSource::ClearIncrementalState() {
   PERFETTO_DLOG("ProcessStatsDataSource clearing incremental state.");
   seen_pids_.clear();
diff --git a/src/traced/probes/ps/process_stats_data_source.h b/src/traced/probes/ps/process_stats_data_source.h
index 4566ee1..b2fa51c 100644
--- a/src/traced/probes/ps/process_stats_data_source.h
+++ b/src/traced/probes/ps/process_stats_data_source.h
@@ -23,10 +23,10 @@
 #include <unordered_map>
 #include <vector>
 
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/base/weak_ptr.h"
-#include "perfetto/tracing/core/basic_types.h"
-#include "perfetto/tracing/core/trace_writer.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/weak_ptr.h"
+#include "perfetto/ext/tracing/core/basic_types.h"
+#include "perfetto/ext/tracing/core/trace_writer.h"
 #include "src/traced/probes/probes_data_source.h"
 
 namespace perfetto {
@@ -105,11 +105,26 @@
   void WriteAllProcessStats();
   bool WriteMemCounters(int32_t pid, const std::string& proc_status);
 
+  // Read and "latch" the current procfs scan-start timestamp, which
+  // we reset only in FinalizeCurPacket.
+  uint64_t CacheProcFsScanStartTimestamp();
+
   // Common fields used for both process/tree relationships and stats/counters.
   base::TaskRunner* const task_runner_;
   std::unique_ptr<TraceWriter> writer_;
   TraceWriter::TracePacketHandle cur_packet_;
 
+  // Cached before-scan timestamp; zero means cached time is absent.
+  // By the time we create the trace packet into which we dump procfs
+  // scan results, we've already read at least one bit of data from
+  // procfs, and by that point, it's too late to snap a timestamp from
+  // before we started looking at procfs at all, which is what trace
+  // analysis wants.  To solve this problem, we record the scan-start
+  // timestamp here when we first open something in procfs and use
+  // that time when we create the packet.
+  // We reset this field after each FinalizeCurPacket().
+  uint64_t cur_procfs_scan_start_timestamp_ = 0;
+
   // Fields for keeping track of the state of process/tree relationships.
   protos::pbzero::ProcessTree* cur_ps_tree_ = nullptr;
   bool record_thread_names_ = false;
diff --git a/src/traced/probes/ps/process_stats_data_source_unittest.cc b/src/traced/probes/ps/process_stats_data_source_unittest.cc
index 7ef9e12..2ece128 100644
--- a/src/traced/probes/ps/process_stats_data_source_unittest.cc
+++ b/src/traced/probes/ps/process_stats_data_source_unittest.cc
@@ -18,11 +18,11 @@
 
 #include <dirent.h>
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
-#include "perfetto/base/temp_file.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include "perfetto/ext/base/temp_file.h"
+#include "perfetto/ext/tracing/core/data_source_config.h"
 #include "perfetto/protozero/scattered_heap_buffer.h"
-#include "perfetto/tracing/core/data_source_config.h"
 #include "src/base/test/test_task_runner.h"
 #include "src/tracing/core/trace_writer_for_testing.h"
 
diff --git a/src/traced/probes/sys_stats/BUILD.gn b/src/traced/probes/sys_stats/BUILD.gn
index ee6d4d4..2267e73 100644
--- a/src/traced/probes/sys_stats/BUILD.gn
+++ b/src/traced/probes/sys_stats/BUILD.gn
@@ -19,8 +19,8 @@
   deps = [
     "..:data_source",
     "../../../../gn:default_deps",
-    "../../../../include/perfetto/traced",
-    "../../../../include/perfetto/traced:sys_stats_counters",
+    "../../../../include/perfetto/ext/traced",
+    "../../../../include/perfetto/ext/traced:sys_stats_counters",
     "../../../../protos/perfetto/common:zero",
     "../../../../protos/perfetto/config:zero",
     "../../../../protos/perfetto/trace/sys_stats:zero",
diff --git a/src/traced/probes/sys_stats/sys_stats_data_source.cc b/src/traced/probes/sys_stats/sys_stats_data_source.cc
index 3c60854..ee0de79 100644
--- a/src/traced/probes/sys_stats/sys_stats_data_source.cc
+++ b/src/traced/probes/sys_stats/sys_stats_data_source.cc
@@ -24,14 +24,14 @@
 #include <limits>
 #include <utility>
 
-#include "perfetto/base/file_utils.h"
-#include "perfetto/base/metatrace.h"
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/base/string_splitter.h"
 #include "perfetto/base/task_runner.h"
-#include "perfetto/base/time.h"
-#include "perfetto/base/utils.h"
-#include "perfetto/traced/sys_stats_counters.h"
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/metatrace.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/string_splitter.h"
+#include "perfetto/ext/base/time.h"
+#include "perfetto/ext/base/utils.h"
+#include "perfetto/ext/traced/sys_stats_counters.h"
 
 #include "perfetto/common/sys_stats_counters.pbzero.h"
 #include "perfetto/config/sys_stats/sys_stats_config.pbzero.h"
@@ -175,6 +175,9 @@
   if (stat_ticks_ && tick_ % stat_ticks_ == 0)
     ReadStat(sys_stats);
 
+  sys_stats->set_collection_end_timestamp(
+      static_cast<uint64_t>(base::GetBootTimeNs().count()));
+
   tick_++;
 }
 
diff --git a/src/traced/probes/sys_stats/sys_stats_data_source.h b/src/traced/probes/sys_stats/sys_stats_data_source.h
index 0fa085c..7510228 100644
--- a/src/traced/probes/sys_stats/sys_stats_data_source.h
+++ b/src/traced/probes/sys_stats/sys_stats_data_source.h
@@ -23,12 +23,12 @@
 #include <memory>
 #include <string>
 
-#include "perfetto/base/paged_memory.h"
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/base/weak_ptr.h"
-#include "perfetto/tracing/core/basic_types.h"
-#include "perfetto/tracing/core/data_source_config.h"
-#include "perfetto/tracing/core/trace_writer.h"
+#include "perfetto/ext/base/paged_memory.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/weak_ptr.h"
+#include "perfetto/ext/tracing/core/basic_types.h"
+#include "perfetto/ext/tracing/core/data_source_config.h"
+#include "perfetto/ext/tracing/core/trace_writer.h"
 #include "src/traced/probes/probes_data_source.h"
 
 namespace perfetto {
diff --git a/src/traced/probes/sys_stats/sys_stats_data_source_unittest.cc b/src/traced/probes/sys_stats/sys_stats_data_source_unittest.cc
index fef5393..59de74e 100644
--- a/src/traced/probes/sys_stats/sys_stats_data_source_unittest.cc
+++ b/src/traced/probes/sys_stats/sys_stats_data_source_unittest.cc
@@ -16,9 +16,9 @@
 
 #include <unistd.h>
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
-#include "perfetto/base/temp_file.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include "perfetto/ext/base/temp_file.h"
 #include "perfetto/protozero/scattered_heap_buffer.h"
 #include "src/base/test/test_task_runner.h"
 #include "src/traced/probes/sys_stats/sys_stats_data_source.h"
diff --git a/src/traced/service/BUILD.gn b/src/traced/service/BUILD.gn
index f351f0e..e19801a 100644
--- a/src/traced/service/BUILD.gn
+++ b/src/traced/service/BUILD.gn
@@ -14,7 +14,7 @@
 
 source_set("service") {
   public_deps = [
-    "../../../include/perfetto/traced",
+    "../../../include/perfetto/ext/traced",
   ]
   deps = [
     "../../../gn:default_deps",
diff --git a/src/traced/service/lazy_producer.cc b/src/traced/service/lazy_producer.cc
index d63bdd4..e040bc0 100644
--- a/src/traced/service/lazy_producer.cc
+++ b/src/traced/service/lazy_producer.cc
@@ -18,8 +18,8 @@
 
 #include "perfetto/base/build_config.h"
 
-#include "perfetto/tracing/core/data_source_config.h"
-#include "perfetto/tracing/core/data_source_descriptor.h"
+#include "perfetto/ext/tracing/core/data_source_config.h"
+#include "perfetto/ext/tracing/core/data_source_descriptor.h"
 
 #if PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
 #include <sys/system_properties.h>
diff --git a/src/traced/service/lazy_producer.h b/src/traced/service/lazy_producer.h
index 541b5ba..200e7fa 100644
--- a/src/traced/service/lazy_producer.h
+++ b/src/traced/service/lazy_producer.h
@@ -21,11 +21,11 @@
 #include <string>
 
 #include "perfetto/base/task_runner.h"
-#include "perfetto/base/weak_ptr.h"
+#include "perfetto/ext/base/weak_ptr.h"
 
-#include "perfetto/tracing/core/basic_types.h"
-#include "perfetto/tracing/core/producer.h"
-#include "perfetto/tracing/core/tracing_service.h"
+#include "perfetto/ext/tracing/core/basic_types.h"
+#include "perfetto/ext/tracing/core/producer.h"
+#include "perfetto/ext/tracing/core/tracing_service.h"
 
 namespace perfetto {
 
diff --git a/src/traced/service/lazy_producer_unittest.cc b/src/traced/service/lazy_producer_unittest.cc
index 7707a99..69e6342 100644
--- a/src/traced/service/lazy_producer_unittest.cc
+++ b/src/traced/service/lazy_producer_unittest.cc
@@ -18,10 +18,10 @@
 
 #include "src/base/test/test_task_runner.h"
 
-#include "perfetto/tracing/core/data_source_config.h"
+#include "perfetto/ext/tracing/core/data_source_config.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace {
diff --git a/src/traced/service/main.cc b/src/traced/service/main.cc
index 552ae6b..fe81b4b 100644
--- a/src/traced/service/main.cc
+++ b/src/traced/service/main.cc
@@ -15,7 +15,7 @@
  */
 
 #include <stdio.h>
-#include "perfetto/traced/traced.h"
+#include "perfetto/ext/traced/traced.h"
 
 int main(int argc, char** argv) {
   return perfetto::ServiceMain(argc, argv);
diff --git a/src/traced/service/service.cc b/src/traced/service/service.cc
index c52b246..b894fdd 100644
--- a/src/traced/service/service.cc
+++ b/src/traced/service/service.cc
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-#include "perfetto/base/unix_task_runner.h"
-#include "perfetto/base/watchdog.h"
-#include "perfetto/traced/traced.h"
-#include "perfetto/tracing/ipc/service_ipc_host.h"
+#include "perfetto/ext/base/unix_task_runner.h"
+#include "perfetto/ext/base/watchdog.h"
+#include "perfetto/ext/traced/traced.h"
+#include "perfetto/ext/tracing/ipc/service_ipc_host.h"
 #include "src/traced/service/lazy_producer.h"
 #include "src/tracing/ipc/default_socket.h"
 
diff --git a/src/tracing/BUILD.gn b/src/tracing/BUILD.gn
index 61aab98..0ac05d4 100644
--- a/src/tracing/BUILD.gn
+++ b/src/tracing/BUILD.gn
@@ -18,17 +18,16 @@
 # Core tracing library, platform independent, no transport layer.
 source_set("tracing") {
   public_deps = [
-    "../../include/perfetto/tracing/core",
+    ":common",
+    "../../include/perfetto/ext/tracing/core",
     "../../protos/perfetto/common:lite",
     "../../protos/perfetto/trace:minimal_lite",
     "../../protos/perfetto/trace:trusted_lite",
     "../../protos/perfetto/trace:zero",
-    "../public:common",
   ]
   deps = [
     "../../gn:default_deps",
-    "../../gn:gtest_prod_config",
-    "../../include/perfetto/public",
+    "../../include/perfetto/tracing",
     "../../protos/perfetto/config:lite",
     "../base",
     "../protozero",
@@ -128,7 +127,7 @@
 source_set("test_support") {
   testonly = true
   public_deps = [
-    "../../include/perfetto/tracing/core",
+    "../../include/perfetto/ext/tracing/core",
     "../../protos/perfetto/trace:lite",
     "../../protos/perfetto/trace:zero",
     "../protozero",
@@ -142,8 +141,9 @@
 if (perfetto_build_standalone || perfetto_build_with_android) {
   executable("consumer_api_test") {
     deps = [
-      ":api",
+      ":consumer_api_deprecated",
       "../../gn:default_deps",
+      "../../include/perfetto/public",
       "../../protos/perfetto/config:lite",
       "../../protos/perfetto/trace:lite",
       "../base",
@@ -166,11 +166,14 @@
 
   # Imlementation of the public-facing consumer API in libperfetto.so (only for
   # Android builds).
-  source_set("api") {
+  # TODO(primiano): remove this. This is a legacy and deprecated API. The only
+  # uses should be moved to the perfetto Client API.
+  source_set("consumer_api_deprecated") {
     deps = [
       ":ipc",
       ":tracing",
       "../../gn:default_deps",
+      "../../include/perfetto/public",
       "../../protos/perfetto/config:lite",
       "../base",
     ]
@@ -185,8 +188,8 @@
   # Provides an IPC transport over a UNIX domain socket.
   static_library("ipc") {
     public_deps = [
-      "../../include/perfetto/tracing/core",
-      "../../include/perfetto/tracing/ipc",
+      "../../include/perfetto/ext/tracing/core",
+      "../../include/perfetto/ext/tracing/ipc",
     ]
     sources = [
       "ipc/consumer/consumer_ipc_client_impl.cc",
@@ -213,3 +216,83 @@
     ]
   }
 }
+
+if (perfetto_build_with_ipc_layer) {
+  source_set("client_api") {
+    deps = [
+      ":common",
+      "../../gn:default_deps",
+      "../base",
+      "../tracing",
+    ]
+    public_deps = [
+      "../../include/perfetto/tracing",
+    ]
+    sources = [
+      "data_source.cc",
+      "internal/in_process_tracing_backend.cc",
+      "internal/in_process_tracing_backend.h",
+      "internal/tracing_muxer_impl.cc",
+      "platform.cc",
+      "tracing.cc",
+      "virtual_destructors.cc",
+    ]
+
+    # TODO there should be an option to compile this out. This pulls IPC
+    # dependencies and bloats binary size.
+    deps += [ "../tracing:ipc" ]
+    sources += [
+      "internal/system_tracing_backend.cc",
+      "internal/system_tracing_backend.h",
+    ]
+  }
+}
+
+# Separate target because the embedder might not want this (e.g. on Windows).
+if (is_linux || is_mac || is_android) {
+  source_set("platform_posix") {
+    deps = [
+      "../../gn:default_deps",
+      "../../include/perfetto/tracing",
+      "../base",
+    ]
+    sources = [
+      "platform_posix.cc",
+    ]
+  }
+}
+
+# Code that both public headers and other non-public sources (e.g.
+# src/tracing/core) need to depend on. It cannot be in the root :tracing target
+# otherwise there would be a cyclic dependency because public itself needs to
+# depend on tracing.
+source_set("common") {
+  deps = [
+    "../../gn:default_deps",
+    "../../include/perfetto/tracing",
+  ]
+  sources = [
+    "trace_writer_base.cc",
+  ]
+}
+
+if (!perfetto_build_with_embedder) {
+  source_set("client_api_integrationtests") {
+    testonly = true
+    deps = [
+      ":client_api",
+      ":platform_posix",
+      "../../gn:default_deps",
+      "../../gn:gtest_deps",
+      "../../protos/perfetto/trace:lite",
+      "../../protos/perfetto/trace:zero",
+      "../base",
+
+      # TODO(primiano): move DataSourceConfig to /include/ and remove this.
+      "../../include/perfetto/ext/tracing/core",
+    ]
+    sources = [
+      "api_integrationtest.cc",
+    ]
+  }
+}
diff --git a/src/tracing/api_impl/consumer_api.cc b/src/tracing/api_impl/consumer_api.cc
index 286b6b4..2436b4f 100644
--- a/src/tracing/api_impl/consumer_api.cc
+++ b/src/tracing/api_impl/consumer_api.cc
@@ -27,21 +27,22 @@
 #include <unistd.h>
 
 #include <atomic>
+#include <condition_variable>
 #include <memory>
 #include <mutex>
 #include <thread>
 
 #include "perfetto/base/build_config.h"
-#include "perfetto/base/event.h"
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/base/temp_file.h"
-#include "perfetto/base/thread_checker.h"
-#include "perfetto/base/unix_task_runner.h"
-#include "perfetto/base/utils.h"
-#include "perfetto/tracing/core/consumer.h"
-#include "perfetto/tracing/core/trace_config.h"
-#include "perfetto/tracing/core/trace_packet.h"
-#include "perfetto/tracing/ipc/consumer_ipc_client.h"
+#include "perfetto/ext/base/event.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/temp_file.h"
+#include "perfetto/ext/base/thread_checker.h"
+#include "perfetto/ext/base/unix_task_runner.h"
+#include "perfetto/ext/base/utils.h"
+#include "perfetto/ext/tracing/core/consumer.h"
+#include "perfetto/ext/tracing/core/trace_config.h"
+#include "perfetto/ext/tracing/core/trace_packet.h"
+#include "perfetto/ext/tracing/ipc/consumer_ipc_client.h"
 #include "src/tracing/ipc/default_socket.h"
 
 #if PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
@@ -350,7 +351,7 @@
   if (it == sessions_.end()) {
     PERFETTO_ELOG("StartTracing(): Invalid tracing session handle");
     return;
-  };
+  }
   TracingSession* session = it->second.get();
   task_runner_->PostTask([session] { session->StartTracing(); });
 }
diff --git a/src/public/api_integrationtest.cc b/src/tracing/api_integrationtest.cc
similarity index 97%
rename from src/public/api_integrationtest.cc
rename to src/tracing/api_integrationtest.cc
index 95986da..d484140 100644
--- a/src/public/api_integrationtest.cc
+++ b/src/tracing/api_integrationtest.cc
@@ -21,29 +21,29 @@
 #include <mutex>
 #include <vector>
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
-#include "perfetto/public/tracing.h"
 #include "perfetto/trace/test_event.pbzero.h"
 #include "perfetto/trace/trace.pb.h"
 #include "perfetto/trace/trace_packet.pbzero.h"
+#include "perfetto/tracing.h"
 
 // Deliberately not pulling any non-public perfetto header to spot accidental
 // header public -> non-public dependency while building this file.
 
 // TODO(primiano): move these generated classes to /public/.
-#include "perfetto/tracing/core/data_source_descriptor.h"
-#include "perfetto/tracing/core/trace_config.h"
+#include "perfetto/ext/tracing/core/data_source_descriptor.h"
+#include "perfetto/ext/tracing/core/trace_config.h"
 
 namespace {
 
 using ::testing::_;
-using ::testing::StrEq;
-using ::testing::Property;
-using ::testing::NiceMock;
 using ::testing::Invoke;
 using ::testing::InvokeWithoutArgs;
+using ::testing::NiceMock;
+using ::testing::Property;
+using ::testing::StrEq;
 
 // ------------------------------
 // Declarations of helper classes
diff --git a/src/tracing/core/chrome_config.cc b/src/tracing/core/chrome_config.cc
index 2603ffc..ba03651 100644
--- a/src/tracing/core/chrome_config.cc
+++ b/src/tracing/core/chrome_config.cc
@@ -25,7 +25,7 @@
  * ./tools/gen_tracing_cpp_headers_from_protos
  */
 
-#include "perfetto/tracing/core/chrome_config.h"
+#include "perfetto/ext/tracing/core/chrome_config.h"
 
 #include "perfetto/config/chrome/chrome_config.pb.h"
 
diff --git a/src/tracing/core/commit_data_request.cc b/src/tracing/core/commit_data_request.cc
index d83cefa..5c123f7 100644
--- a/src/tracing/core/commit_data_request.cc
+++ b/src/tracing/core/commit_data_request.cc
@@ -25,7 +25,7 @@
  * ./tools/gen_tracing_cpp_headers_from_protos
  */
 
-#include "perfetto/tracing/core/commit_data_request.h"
+#include "perfetto/ext/tracing/core/commit_data_request.h"
 
 #include "perfetto/common/commit_data_request.pb.h"
 
diff --git a/src/tracing/core/data_source_config.cc b/src/tracing/core/data_source_config.cc
index d5f20dd..d71ddba 100644
--- a/src/tracing/core/data_source_config.cc
+++ b/src/tracing/core/data_source_config.cc
@@ -25,7 +25,7 @@
  * ./tools/gen_tracing_cpp_headers_from_protos
  */
 
-#include "perfetto/tracing/core/data_source_config.h"
+#include "perfetto/ext/tracing/core/data_source_config.h"
 
 #include "perfetto/config/chrome/chrome_config.pb.h"
 #include "perfetto/config/data_source_config.pb.h"
diff --git a/src/tracing/core/data_source_descriptor.cc b/src/tracing/core/data_source_descriptor.cc
index 23edcbc..9c2ccb2 100644
--- a/src/tracing/core/data_source_descriptor.cc
+++ b/src/tracing/core/data_source_descriptor.cc
@@ -25,7 +25,7 @@
  * ./tools/gen_tracing_cpp_headers_from_protos
  */
 
-#include "perfetto/tracing/core/data_source_descriptor.h"
+#include "perfetto/ext/tracing/core/data_source_descriptor.h"
 
 #include "perfetto/config/data_source_descriptor.pb.h"
 
diff --git a/src/tracing/core/id_allocator_unittest.cc b/src/tracing/core/id_allocator_unittest.cc
index 53b8034..1eac8a2 100644
--- a/src/tracing/core/id_allocator_unittest.cc
+++ b/src/tracing/core/id_allocator_unittest.cc
@@ -16,7 +16,7 @@
 
 #include "src/tracing/core/id_allocator.h"
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace {
diff --git a/src/tracing/core/null_trace_writer.cc b/src/tracing/core/null_trace_writer.cc
index 5ca2e71..0573fca 100644
--- a/src/tracing/core/null_trace_writer.cc
+++ b/src/tracing/core/null_trace_writer.cc
@@ -17,7 +17,7 @@
 #include "src/tracing/core/null_trace_writer.h"
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/utils.h"
 
 #include "perfetto/protozero/message.h"
 
diff --git a/src/tracing/core/null_trace_writer.h b/src/tracing/core/null_trace_writer.h
index a6a81e2..fabbca7 100644
--- a/src/tracing/core/null_trace_writer.h
+++ b/src/tracing/core/null_trace_writer.h
@@ -17,9 +17,9 @@
 #ifndef SRC_TRACING_CORE_NULL_TRACE_WRITER_H_
 #define SRC_TRACING_CORE_NULL_TRACE_WRITER_H_
 
+#include "perfetto/ext/tracing/core/trace_writer.h"
 #include "perfetto/protozero/message_handle.h"
 #include "perfetto/protozero/scattered_stream_null_delegate.h"
-#include "perfetto/tracing/core/trace_writer.h"
 
 namespace perfetto {
 
diff --git a/src/tracing/core/null_trace_writer_unittest.cc b/src/tracing/core/null_trace_writer_unittest.cc
index f2d2f54..b63c54d 100644
--- a/src/tracing/core/null_trace_writer_unittest.cc
+++ b/src/tracing/core/null_trace_writer_unittest.cc
@@ -16,10 +16,10 @@
 
 #include "src/tracing/core/null_trace_writer.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
-#include "perfetto/base/utils.h"
-#include "perfetto/tracing/core/trace_writer.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include "perfetto/ext/base/utils.h"
+#include "perfetto/ext/tracing/core/trace_writer.h"
 
 #include "perfetto/trace/test_event.pbzero.h"
 #include "perfetto/trace/trace_packet.pbzero.h"
diff --git a/src/tracing/core/observable_events.cc b/src/tracing/core/observable_events.cc
index e43489e..82bc5b2 100644
--- a/src/tracing/core/observable_events.cc
+++ b/src/tracing/core/observable_events.cc
@@ -25,7 +25,7 @@
  * ./tools/gen_tracing_cpp_headers_from_protos
  */
 
-#include "perfetto/tracing/core/observable_events.h"
+#include "perfetto/ext/tracing/core/observable_events.h"
 
 #include "perfetto/common/observable_events.pb.h"
 
diff --git a/src/tracing/core/packet_stream_validator_unittest.cc b/src/tracing/core/packet_stream_validator_unittest.cc
index 03f15f4..d1ff038 100644
--- a/src/tracing/core/packet_stream_validator_unittest.cc
+++ b/src/tracing/core/packet_stream_validator_unittest.cc
@@ -18,7 +18,7 @@
 
 #include <string>
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 
 #include "perfetto/trace/trace_packet.pb.h"
 
diff --git a/src/tracing/core/patch_list.h b/src/tracing/core/patch_list.h
index c356006..f4a1618 100644
--- a/src/tracing/core/patch_list.h
+++ b/src/tracing/core/patch_list.h
@@ -21,8 +21,8 @@
 #include <forward_list>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/tracing/core/basic_types.h"
-#include "perfetto/tracing/core/shared_memory_abi.h"
+#include "perfetto/ext/tracing/core/basic_types.h"
+#include "perfetto/ext/tracing/core/shared_memory_abi.h"
 
 namespace perfetto {
 
diff --git a/src/tracing/core/patch_list_unittest.cc b/src/tracing/core/patch_list_unittest.cc
index 99609b2..7112740 100644
--- a/src/tracing/core/patch_list_unittest.cc
+++ b/src/tracing/core/patch_list_unittest.cc
@@ -18,8 +18,8 @@
 
 #include <ostream>
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 using testing::ElementsAre;
 
diff --git a/src/tracing/core/shared_memory_abi.cc b/src/tracing/core/shared_memory_abi.cc
index 0b82dfc..df3a631 100644
--- a/src/tracing/core/shared_memory_abi.cc
+++ b/src/tracing/core/shared_memory_abi.cc
@@ -13,17 +13,17 @@
  * express or implied. See the License for the specific language
  * governing permissions and limitations under the License.
  */
-#include "perfetto/tracing/core/shared_memory_abi.h"
+#include "perfetto/ext/tracing/core/shared_memory_abi.h"
 
 #include "perfetto/base/build_config.h"
-#include "perfetto/base/time.h"
+#include "perfetto/ext/base/time.h"
 
 #if !PERFETTO_BUILDFLAG(PERFETTO_OS_WIN)
 #include <sys/mman.h>
 #endif
 
-#include "perfetto/base/utils.h"
-#include "perfetto/tracing/core/basic_types.h"
+#include "perfetto/ext/base/utils.h"
+#include "perfetto/ext/tracing/core/basic_types.h"
 
 namespace perfetto {
 
diff --git a/src/tracing/core/shared_memory_abi_unittest.cc b/src/tracing/core/shared_memory_abi_unittest.cc
index 0ce7a02..baa09f9 100644
--- a/src/tracing/core/shared_memory_abi_unittest.cc
+++ b/src/tracing/core/shared_memory_abi_unittest.cc
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-#include "perfetto/tracing/core/shared_memory_abi.h"
+#include "perfetto/ext/tracing/core/shared_memory_abi.h"
 
-#include "gtest/gtest.h"
-#include "perfetto/tracing/core/basic_types.h"
+#include <gtest/gtest.h>
+#include "perfetto/ext/tracing/core/basic_types.h"
 #include "src/base/test/gtest_test_suite.h"
 #include "src/tracing/test/aligned_buffer_test.h"
 
diff --git a/src/tracing/core/shared_memory_arbiter_impl.cc b/src/tracing/core/shared_memory_arbiter_impl.cc
index 0131097..8766894 100644
--- a/src/tracing/core/shared_memory_arbiter_impl.cc
+++ b/src/tracing/core/shared_memory_arbiter_impl.cc
@@ -18,10 +18,10 @@
 
 #include "perfetto/base/logging.h"
 #include "perfetto/base/task_runner.h"
-#include "perfetto/base/time.h"
-#include "perfetto/tracing/core/commit_data_request.h"
-#include "perfetto/tracing/core/shared_memory.h"
-#include "perfetto/tracing/core/startup_trace_writer_registry.h"
+#include "perfetto/ext/base/time.h"
+#include "perfetto/ext/tracing/core/commit_data_request.h"
+#include "perfetto/ext/tracing/core/shared_memory.h"
+#include "perfetto/ext/tracing/core/startup_trace_writer_registry.h"
 #include "src/tracing/core/null_trace_writer.h"
 #include "src/tracing/core/trace_writer_impl.h"
 
diff --git a/src/tracing/core/shared_memory_arbiter_impl.h b/src/tracing/core/shared_memory_arbiter_impl.h
index c92b887..391e37c 100644
--- a/src/tracing/core/shared_memory_arbiter_impl.h
+++ b/src/tracing/core/shared_memory_arbiter_impl.h
@@ -24,11 +24,11 @@
 #include <mutex>
 #include <vector>
 
-#include "perfetto/base/weak_ptr.h"
-#include "perfetto/tracing/core/basic_types.h"
-#include "perfetto/tracing/core/shared_memory_abi.h"
-#include "perfetto/tracing/core/shared_memory_arbiter.h"
-#include "perfetto/tracing/core/startup_trace_writer_registry.h"
+#include "perfetto/ext/base/weak_ptr.h"
+#include "perfetto/ext/tracing/core/basic_types.h"
+#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 "src/tracing/core/id_allocator.h"
 
 namespace perfetto {
diff --git a/src/tracing/core/shared_memory_arbiter_impl_unittest.cc b/src/tracing/core/shared_memory_arbiter_impl_unittest.cc
index 90682dc..a5de044 100644
--- a/src/tracing/core/shared_memory_arbiter_impl_unittest.cc
+++ b/src/tracing/core/shared_memory_arbiter_impl_unittest.cc
@@ -16,13 +16,13 @@
 
 #include "src/tracing/core/shared_memory_arbiter_impl.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
-#include "perfetto/base/utils.h"
-#include "perfetto/tracing/core/basic_types.h"
-#include "perfetto/tracing/core/commit_data_request.h"
-#include "perfetto/tracing/core/shared_memory_abi.h"
-#include "perfetto/tracing/core/trace_writer.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include "perfetto/ext/base/utils.h"
+#include "perfetto/ext/tracing/core/basic_types.h"
+#include "perfetto/ext/tracing/core/commit_data_request.h"
+#include "perfetto/ext/tracing/core/shared_memory_abi.h"
+#include "perfetto/ext/tracing/core/trace_writer.h"
 #include "src/base/test/gtest_test_suite.h"
 #include "src/base/test/test_task_runner.h"
 #include "src/tracing/core/patch_list.h"
diff --git a/src/tracing/core/sliced_protobuf_input_stream.h b/src/tracing/core/sliced_protobuf_input_stream.h
index 9399528..9e80966 100644
--- a/src/tracing/core/sliced_protobuf_input_stream.h
+++ b/src/tracing/core/sliced_protobuf_input_stream.h
@@ -17,7 +17,7 @@
 #ifndef SRC_TRACING_CORE_SLICED_PROTOBUF_INPUT_STREAM_H_
 #define SRC_TRACING_CORE_SLICED_PROTOBUF_INPUT_STREAM_H_
 
-#include "perfetto/tracing/core/slice.h"
+#include "perfetto/ext/tracing/core/slice.h"
 
 #include <stdint.h>
 
diff --git a/src/tracing/core/sliced_protobuf_input_stream_unittest.cc b/src/tracing/core/sliced_protobuf_input_stream_unittest.cc
index 076afc1..c7ae94c 100644
--- a/src/tracing/core/sliced_protobuf_input_stream_unittest.cc
+++ b/src/tracing/core/sliced_protobuf_input_stream_unittest.cc
@@ -16,8 +16,8 @@
 
 #include "src/tracing/core/sliced_protobuf_input_stream.h"
 
-#include "gtest/gtest.h"
-#include "perfetto/base/utils.h"
+#include <gtest/gtest.h>
+#include "perfetto/ext/base/utils.h"
 
 namespace perfetto {
 namespace {
diff --git a/src/tracing/core/startup_trace_writer.cc b/src/tracing/core/startup_trace_writer.cc
index e1c841c..ff5f8fd 100644
--- a/src/tracing/core/startup_trace_writer.cc
+++ b/src/tracing/core/startup_trace_writer.cc
@@ -14,15 +14,15 @@
  * limitations under the License.
  */
 
-#include "perfetto/tracing/core/startup_trace_writer.h"
+#include "perfetto/ext/tracing/core/startup_trace_writer.h"
 
 #include <numeric>
 
 #include "perfetto/base/logging.h"
+#include "perfetto/ext/tracing/core/shared_memory_abi.h"
+#include "perfetto/ext/tracing/core/startup_trace_writer_registry.h"
 #include "perfetto/protozero/proto_utils.h"
 #include "perfetto/trace/trace_packet.pbzero.h"
-#include "perfetto/tracing/core/shared_memory_abi.h"
-#include "perfetto/tracing/core/startup_trace_writer_registry.h"
 #include "src/tracing/core/patch_list.h"
 #include "src/tracing/core/shared_memory_arbiter_impl.h"
 
diff --git a/src/tracing/core/startup_trace_writer_registry.cc b/src/tracing/core/startup_trace_writer_registry.cc
index 30d904f..dd85768 100644
--- a/src/tracing/core/startup_trace_writer_registry.cc
+++ b/src/tracing/core/startup_trace_writer_registry.cc
@@ -14,13 +14,13 @@
  * limitations under the License.
  */
 
-#include "perfetto/tracing/core/startup_trace_writer_registry.h"
+#include "perfetto/ext/tracing/core/startup_trace_writer_registry.h"
 
 #include <functional>
 
 #include "perfetto/base/logging.h"
 #include "perfetto/base/task_runner.h"
-#include "perfetto/tracing/core/startup_trace_writer.h"
+#include "perfetto/ext/tracing/core/startup_trace_writer.h"
 #include "src/tracing/core/shared_memory_arbiter_impl.h"
 
 using ChunkHeader = perfetto::SharedMemoryABI::ChunkHeader;
diff --git a/src/tracing/core/startup_trace_writer_unittest.cc b/src/tracing/core/startup_trace_writer_unittest.cc
index 48cdef7..2a3476a 100644
--- a/src/tracing/core/startup_trace_writer_unittest.cc
+++ b/src/tracing/core/startup_trace_writer_unittest.cc
@@ -14,12 +14,12 @@
  * limitations under the License.
  */
 
-#include "perfetto/tracing/core/startup_trace_writer.h"
+#include "perfetto/ext/tracing/core/startup_trace_writer.h"
 
-#include "gtest/gtest.h"
-#include "perfetto/tracing/core/startup_trace_writer_registry.h"
-#include "perfetto/tracing/core/trace_packet.h"
-#include "perfetto/tracing/core/tracing_service.h"
+#include <gtest/gtest.h>
+#include "perfetto/ext/tracing/core/startup_trace_writer_registry.h"
+#include "perfetto/ext/tracing/core/trace_packet.h"
+#include "perfetto/ext/tracing/core/tracing_service.h"
 #include "src/base/test/gtest_test_suite.h"
 #include "src/base/test/test_task_runner.h"
 #include "src/tracing/core/shared_memory_arbiter_impl.h"
diff --git a/src/tracing/core/test_config.cc b/src/tracing/core/test_config.cc
index 02ba732..ee5e7ac 100644
--- a/src/tracing/core/test_config.cc
+++ b/src/tracing/core/test_config.cc
@@ -25,7 +25,7 @@
  * ./tools/gen_tracing_cpp_headers_from_protos
  */
 
-#include "perfetto/tracing/core/test_config.h"
+#include "perfetto/ext/tracing/core/test_config.h"
 
 #include "perfetto/config/test_config.pb.h"
 
diff --git a/src/tracing/core/trace_buffer.cc b/src/tracing/core/trace_buffer.cc
index 4af9b6d..10282d8 100644
--- a/src/tracing/core/trace_buffer.cc
+++ b/src/tracing/core/trace_buffer.cc
@@ -19,9 +19,10 @@
 #include <limits>
 
 #include "perfetto/base/logging.h"
+#include "perfetto/ext/base/utils.h"
+#include "perfetto/ext/tracing/core/shared_memory_abi.h"
+#include "perfetto/ext/tracing/core/trace_packet.h"
 #include "perfetto/protozero/proto_utils.h"
-#include "perfetto/tracing/core/shared_memory_abi.h"
-#include "perfetto/tracing/core/trace_packet.h"
 
 #define TRACE_BUFFER_VERBOSE_LOGGING() 0  // Set to 1 when debugging unittests.
 #if TRACE_BUFFER_VERBOSE_LOGGING()
diff --git a/src/tracing/core/trace_buffer.h b/src/tracing/core/trace_buffer.h
index 35bd5fb..3d90b7e 100644
--- a/src/tracing/core/trace_buffer.h
+++ b/src/tracing/core/trace_buffer.h
@@ -26,11 +26,12 @@
 #include <tuple>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/paged_memory.h"
-#include "perfetto/base/thread_annotations.h"
-#include "perfetto/tracing/core/basic_types.h"
-#include "perfetto/tracing/core/slice.h"
-#include "perfetto/tracing/core/trace_stats.h"
+#include "perfetto/ext/base/paged_memory.h"
+#include "perfetto/ext/base/thread_annotations.h"
+#include "perfetto/ext/base/utils.h"
+#include "perfetto/ext/tracing/core/basic_types.h"
+#include "perfetto/ext/tracing/core/slice.h"
+#include "perfetto/ext/tracing/core/trace_stats.h"
 
 namespace perfetto {
 
@@ -596,7 +597,7 @@
       // to read (assuming a well-behaving client), but the risk of introducing
       // a bug that way outweighs the benefit.
       PERFETTO_ANNOTATE_BENIGN_RACE_SIZED(
-          src, size, "Benign race when copying chunk from shared memory.");
+          src, size, "Benign race when copying chunk from shared memory.")
       memcpy(wptr + sizeof(record), src, size);
     } else {
       PERFETTO_DCHECK(size == record.size - sizeof(record));
diff --git a/src/tracing/core/trace_buffer_unittest.cc b/src/tracing/core/trace_buffer_unittest.cc
index b1f60ca..b715b49 100644
--- a/src/tracing/core/trace_buffer_unittest.cc
+++ b/src/tracing/core/trace_buffer_unittest.cc
@@ -21,15 +21,16 @@
 #include <sstream>
 #include <vector>
 
+#include "perfetto/ext/base/utils.h"
+#include "perfetto/ext/tracing/core/basic_types.h"
+#include "perfetto/ext/tracing/core/shared_memory_abi.h"
+#include "perfetto/ext/tracing/core/trace_packet.h"
 #include "perfetto/protozero/proto_utils.h"
-#include "perfetto/tracing/core/basic_types.h"
-#include "perfetto/tracing/core/shared_memory_abi.h"
-#include "perfetto/tracing/core/trace_packet.h"
 #include "src/tracing/core/trace_buffer.h"
 #include "src/tracing/test/fake_packet.h"
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 namespace perfetto {
 
diff --git a/src/tracing/core/trace_config.cc b/src/tracing/core/trace_config.cc
index d44feb9..0b3e829 100644
--- a/src/tracing/core/trace_config.cc
+++ b/src/tracing/core/trace_config.cc
@@ -25,7 +25,7 @@
  * ./tools/gen_tracing_cpp_headers_from_protos
  */
 
-#include "perfetto/tracing/core/trace_config.h"
+#include "perfetto/ext/tracing/core/trace_config.h"
 
 #include "perfetto/config/data_source_config.pb.h"
 #include "perfetto/config/trace_config.pb.h"
diff --git a/src/tracing/core/trace_packet.cc b/src/tracing/core/trace_packet.cc
index ffe6f1a..c3891c5 100644
--- a/src/tracing/core/trace_packet.cc
+++ b/src/tracing/core/trace_packet.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "perfetto/tracing/core/trace_packet.h"
+#include "perfetto/ext/tracing/core/trace_packet.h"
 
 #include "perfetto/base/logging.h"
 #include "perfetto/protozero/proto_utils.h"
diff --git a/src/tracing/core/trace_packet_unittest.cc b/src/tracing/core/trace_packet_unittest.cc
index 61bc001..ad95e7c 100644
--- a/src/tracing/core/trace_packet_unittest.cc
+++ b/src/tracing/core/trace_packet_unittest.cc
@@ -14,11 +14,11 @@
  * limitations under the License.
  */
 
-#include "perfetto/tracing/core/trace_packet.h"
+#include "perfetto/ext/tracing/core/trace_packet.h"
 
 #include <string>
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 
 #include "perfetto/trace/trace.pb.h"
 #include "perfetto/trace/trace_packet.pb.h"
diff --git a/src/tracing/core/trace_stats.cc b/src/tracing/core/trace_stats.cc
index 911e27c..3937e57 100644
--- a/src/tracing/core/trace_stats.cc
+++ b/src/tracing/core/trace_stats.cc
@@ -25,7 +25,7 @@
  * ./tools/gen_tracing_cpp_headers_from_protos
  */
 
-#include "perfetto/tracing/core/trace_stats.h"
+#include "perfetto/ext/tracing/core/trace_stats.h"
 
 #include "perfetto/common/trace_stats.pb.h"
 
diff --git a/src/tracing/core/trace_writer_for_testing.cc b/src/tracing/core/trace_writer_for_testing.cc
index 6cfb559..b4daf0a 100644
--- a/src/tracing/core/trace_writer_for_testing.cc
+++ b/src/tracing/core/trace_writer_for_testing.cc
@@ -17,7 +17,7 @@
 #include "src/tracing/core/trace_writer_for_testing.h"
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/utils.h"
 #include "perfetto/protozero/message.h"
 #include "perfetto/trace/trace.pb.h"
 #include "perfetto/trace/trace.pbzero.h"
diff --git a/src/tracing/core/trace_writer_for_testing.h b/src/tracing/core/trace_writer_for_testing.h
index f7a1a88..4353d9f 100644
--- a/src/tracing/core/trace_writer_for_testing.h
+++ b/src/tracing/core/trace_writer_for_testing.h
@@ -18,10 +18,10 @@
 
 #include <vector>
 
+#include "perfetto/ext/tracing/core/trace_writer.h"
 #include "perfetto/protozero/message_handle.h"
 #include "perfetto/protozero/scattered_heap_buffer.h"
 #include "perfetto/trace/trace_packet.pb.h"
-#include "perfetto/tracing/core/trace_writer.h"
 
 namespace perfetto {
 
diff --git a/src/tracing/core/trace_writer_impl.h b/src/tracing/core/trace_writer_impl.h
index 4bc1df9..ee3a98e 100644
--- a/src/tracing/core/trace_writer_impl.h
+++ b/src/tracing/core/trace_writer_impl.h
@@ -17,11 +17,11 @@
 #ifndef SRC_TRACING_CORE_TRACE_WRITER_IMPL_H_
 #define SRC_TRACING_CORE_TRACE_WRITER_IMPL_H_
 
+#include "perfetto/ext/tracing/core/basic_types.h"
+#include "perfetto/ext/tracing/core/shared_memory_abi.h"
+#include "perfetto/ext/tracing/core/trace_writer.h"
 #include "perfetto/protozero/message_handle.h"
 #include "perfetto/protozero/scattered_stream_writer.h"
-#include "perfetto/tracing/core/basic_types.h"
-#include "perfetto/tracing/core/shared_memory_abi.h"
-#include "perfetto/tracing/core/trace_writer.h"
 #include "src/tracing/core/patch_list.h"
 
 namespace perfetto {
diff --git a/src/tracing/core/trace_writer_impl_unittest.cc b/src/tracing/core/trace_writer_impl_unittest.cc
index 2f01eec..ba2acd9 100644
--- a/src/tracing/core/trace_writer_impl_unittest.cc
+++ b/src/tracing/core/trace_writer_impl_unittest.cc
@@ -16,11 +16,11 @@
 
 #include "src/tracing/core/trace_writer_impl.h"
 
-#include "gtest/gtest.h"
-#include "perfetto/base/utils.h"
-#include "perfetto/tracing/core/commit_data_request.h"
-#include "perfetto/tracing/core/trace_writer.h"
-#include "perfetto/tracing/core/tracing_service.h"
+#include <gtest/gtest.h>
+#include "perfetto/ext/base/utils.h"
+#include "perfetto/ext/tracing/core/commit_data_request.h"
+#include "perfetto/ext/tracing/core/trace_writer.h"
+#include "perfetto/ext/tracing/core/tracing_service.h"
 #include "src/base/test/gtest_test_suite.h"
 #include "src/base/test/test_task_runner.h"
 #include "src/tracing/core/shared_memory_arbiter_impl.h"
diff --git a/src/tracing/core/tracing_service_impl.cc b/src/tracing/core/tracing_service_impl.cc
index db27f46..083e759 100644
--- a/src/tracing/core/tracing_service_impl.cc
+++ b/src/tracing/core/tracing_service_impl.cc
@@ -38,16 +38,17 @@
 #include <algorithm>
 
 #include "perfetto/base/build_config.h"
-#include "perfetto/base/file_utils.h"
 #include "perfetto/base/task_runner.h"
-#include "perfetto/base/utils.h"
-#include "perfetto/tracing/core/consumer.h"
-#include "perfetto/tracing/core/data_source_config.h"
-#include "perfetto/tracing/core/producer.h"
-#include "perfetto/tracing/core/shared_memory.h"
-#include "perfetto/tracing/core/shared_memory_abi.h"
-#include "perfetto/tracing/core/trace_packet.h"
-#include "perfetto/tracing/core/trace_writer.h"
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/utils.h"
+#include "perfetto/ext/base/watchdog.h"
+#include "perfetto/ext/tracing/core/consumer.h"
+#include "perfetto/ext/tracing/core/data_source_config.h"
+#include "perfetto/ext/tracing/core/producer.h"
+#include "perfetto/ext/tracing/core/shared_memory.h"
+#include "perfetto/ext/tracing/core/shared_memory_abi.h"
+#include "perfetto/ext/tracing/core/trace_packet.h"
+#include "perfetto/ext/tracing/core/trace_writer.h"
 #include "src/tracing/core/packet_stream_validator.h"
 #include "src/tracing/core/shared_memory_arbiter_impl.h"
 #include "src/tracing/core/trace_buffer.h"
@@ -2095,7 +2096,7 @@
     PERFETTO_CHECK(packet.SerializeToArray(dst, size_left));
     sync_marker_packet_size_ += static_cast<size_t>(packet.ByteSize());
     PERFETTO_CHECK(sync_marker_packet_size_ <= sizeof(sync_marker_packet_));
-  };
+  }
   packets->emplace_back();
   packets->back().AddSlice(&sync_marker_packet_[0], sync_marker_packet_size_);
 }
@@ -2141,7 +2142,7 @@
         clock.type == protos::ClockSnapshot::Clock::BOOTTIME) {
       packet.set_timestamp(
           static_cast<uint64_t>(base::FromPosixTimespec(clock.ts).count()));
-    };
+    }
     protos::ClockSnapshot::Clock* c = clock_snapshot->add_clocks();
     c->set_type(clock.type);
     c->set_timestamp(
diff --git a/src/tracing/core/tracing_service_impl.h b/src/tracing/core/tracing_service_impl.h
index 10ca797..3d734cd 100644
--- a/src/tracing/core/tracing_service_impl.h
+++ b/src/tracing/core/tracing_service_impl.h
@@ -24,19 +24,18 @@
 #include <set>
 #include <vector>
 
-#include "perfetto/base/gtest_prod_util.h"
 #include "perfetto/base/logging.h"
-#include "perfetto/base/optional.h"
-#include "perfetto/base/time.h"
-#include "perfetto/base/weak_ptr.h"
-#include "perfetto/tracing/core/basic_types.h"
-#include "perfetto/tracing/core/commit_data_request.h"
-#include "perfetto/tracing/core/data_source_descriptor.h"
-#include "perfetto/tracing/core/observable_events.h"
-#include "perfetto/tracing/core/shared_memory_abi.h"
-#include "perfetto/tracing/core/trace_config.h"
-#include "perfetto/tracing/core/trace_stats.h"
-#include "perfetto/tracing/core/tracing_service.h"
+#include "perfetto/ext/base/optional.h"
+#include "perfetto/ext/base/time.h"
+#include "perfetto/ext/base/weak_ptr.h"
+#include "perfetto/ext/tracing/core/basic_types.h"
+#include "perfetto/ext/tracing/core/commit_data_request.h"
+#include "perfetto/ext/tracing/core/data_source_descriptor.h"
+#include "perfetto/ext/tracing/core/observable_events.h"
+#include "perfetto/ext/tracing/core/shared_memory_abi.h"
+#include "perfetto/ext/tracing/core/trace_config.h"
+#include "perfetto/ext/tracing/core/trace_stats.h"
+#include "perfetto/ext/tracing/core/tracing_service.h"
 #include "src/tracing/core/id_allocator.h"
 
 namespace perfetto {
diff --git a/src/tracing/core/tracing_service_impl_unittest.cc b/src/tracing/core/tracing_service_impl_unittest.cc
index 74eeacf..c96d097 100644
--- a/src/tracing/core/tracing_service_impl_unittest.cc
+++ b/src/tracing/core/tracing_service_impl_unittest.cc
@@ -18,18 +18,18 @@
 
 #include <string.h>
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
-#include "perfetto/base/file_utils.h"
-#include "perfetto/base/temp_file.h"
-#include "perfetto/base/utils.h"
-#include "perfetto/tracing/core/consumer.h"
-#include "perfetto/tracing/core/data_source_config.h"
-#include "perfetto/tracing/core/data_source_descriptor.h"
-#include "perfetto/tracing/core/producer.h"
-#include "perfetto/tracing/core/shared_memory.h"
-#include "perfetto/tracing/core/trace_packet.h"
-#include "perfetto/tracing/core/trace_writer.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/temp_file.h"
+#include "perfetto/ext/base/utils.h"
+#include "perfetto/ext/tracing/core/consumer.h"
+#include "perfetto/ext/tracing/core/data_source_config.h"
+#include "perfetto/ext/tracing/core/data_source_descriptor.h"
+#include "perfetto/ext/tracing/core/producer.h"
+#include "perfetto/ext/tracing/core/shared_memory.h"
+#include "perfetto/ext/tracing/core/trace_packet.h"
+#include "perfetto/ext/tracing/core/trace_writer.h"
 #include "src/base/test/test_task_runner.h"
 #include "src/tracing/core/shared_memory_arbiter_impl.h"
 #include "src/tracing/core/trace_writer_impl.h"
diff --git a/src/tracing/core/virtual_destructors.cc b/src/tracing/core/virtual_destructors.cc
index aa73453..75fc806 100644
--- a/src/tracing/core/virtual_destructors.cc
+++ b/src/tracing/core/virtual_destructors.cc
@@ -14,11 +14,11 @@
  * limitations under the License.
  */
 
-#include "perfetto/tracing/core/consumer.h"
-#include "perfetto/tracing/core/producer.h"
-#include "perfetto/tracing/core/shared_memory.h"
-#include "perfetto/tracing/core/shared_memory_arbiter.h"
-#include "perfetto/tracing/core/tracing_service.h"
+#include "perfetto/ext/tracing/core/consumer.h"
+#include "perfetto/ext/tracing/core/producer.h"
+#include "perfetto/ext/tracing/core/shared_memory.h"
+#include "perfetto/ext/tracing/core/shared_memory_arbiter.h"
+#include "perfetto/ext/tracing/core/tracing_service.h"
 
 // This translation unit contains the definitions for the destructor of pure
 // virtual interfaces for the current build target. The alternative would be
diff --git a/src/public/data_source.cc b/src/tracing/data_source.cc
similarity index 94%
rename from src/public/data_source.cc
rename to src/tracing/data_source.cc
index 19eb17d..edb00fd 100644
--- a/src/public/data_source.cc
+++ b/src/tracing/data_source.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "perfetto/public/data_source.h"
+#include "perfetto/tracing/data_source.h"
 
 namespace perfetto {
 
diff --git a/src/public/internal/in_process_tracing_backend.cc b/src/tracing/internal/in_process_tracing_backend.cc
similarity index 94%
rename from src/public/internal/in_process_tracing_backend.cc
rename to src/tracing/internal/in_process_tracing_backend.cc
index 4e09473..6f500c1 100644
--- a/src/public/internal/in_process_tracing_backend.cc
+++ b/src/tracing/internal/in_process_tracing_backend.cc
@@ -14,13 +14,13 @@
  * limitations under the License.
  */
 
-#include "src/public/internal/in_process_tracing_backend.h"
+#include "src/tracing/internal/in_process_tracing_backend.h"
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/paged_memory.h"
 #include "perfetto/base/task_runner.h"
-#include "perfetto/tracing/core/shared_memory.h"
-#include "perfetto/tracing/core/tracing_service.h"
+#include "perfetto/ext/base/paged_memory.h"
+#include "perfetto/ext/tracing/core/shared_memory.h"
+#include "perfetto/ext/tracing/core/tracing_service.h"
 
 // TODO(primiano): When the in-process backend is used, we should never end up
 // in a situation where the thread where the TracingService and Producer live
diff --git a/src/public/internal/in_process_tracing_backend.h b/src/tracing/internal/in_process_tracing_backend.h
similarity index 86%
rename from src/public/internal/in_process_tracing_backend.h
rename to src/tracing/internal/in_process_tracing_backend.h
index d843207..8d07ae7 100644
--- a/src/public/internal/in_process_tracing_backend.h
+++ b/src/tracing/internal/in_process_tracing_backend.h
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-#ifndef SRC_PUBLIC_INTERNAL_IN_PROCESS_TRACING_BACKEND_H_
-#define SRC_PUBLIC_INTERNAL_IN_PROCESS_TRACING_BACKEND_H_
+#ifndef SRC_TRACING_INTERNAL_IN_PROCESS_TRACING_BACKEND_H_
+#define SRC_TRACING_INTERNAL_IN_PROCESS_TRACING_BACKEND_H_
 
-#include "perfetto/public/tracing_backend.h"
+#include "perfetto/tracing/tracing_backend.h"
 
 namespace perfetto {
 
@@ -54,4 +54,4 @@
 }  // namespace internal
 }  // namespace perfetto
 
-#endif  // SRC_PUBLIC_INTERNAL_IN_PROCESS_TRACING_BACKEND_H_
+#endif  // SRC_TRACING_INTERNAL_IN_PROCESS_TRACING_BACKEND_H_
diff --git a/src/public/internal/system_tracing_backend.cc b/src/tracing/internal/system_tracing_backend.cc
similarity index 90%
rename from src/public/internal/system_tracing_backend.cc
rename to src/tracing/internal/system_tracing_backend.cc
index bbf4222..66ec4fd 100644
--- a/src/public/internal/system_tracing_backend.cc
+++ b/src/tracing/internal/system_tracing_backend.cc
@@ -14,12 +14,12 @@
  * limitations under the License.
  */
 
-#include "src/public/internal/system_tracing_backend.h"
+#include "src/tracing/internal/system_tracing_backend.h"
 
 #include "perfetto/base/logging.h"
 #include "perfetto/base/task_runner.h"
-#include "perfetto/tracing/core/tracing_service.h"
-#include "perfetto/tracing/ipc/producer_ipc_client.h"
+#include "perfetto/ext/tracing/core/tracing_service.h"
+#include "perfetto/ext/tracing/ipc/producer_ipc_client.h"
 #include "src/tracing/ipc/default_socket.h"
 
 namespace perfetto {
diff --git a/src/public/internal/system_tracing_backend.h b/src/tracing/internal/system_tracing_backend.h
similarity index 87%
rename from src/public/internal/system_tracing_backend.h
rename to src/tracing/internal/system_tracing_backend.h
index a4219ac..ca70242 100644
--- a/src/public/internal/system_tracing_backend.h
+++ b/src/tracing/internal/system_tracing_backend.h
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-#ifndef SRC_PUBLIC_INTERNAL_SYSTEM_TRACING_BACKEND_H_
-#define SRC_PUBLIC_INTERNAL_SYSTEM_TRACING_BACKEND_H_
+#ifndef SRC_TRACING_INTERNAL_SYSTEM_TRACING_BACKEND_H_
+#define SRC_TRACING_INTERNAL_SYSTEM_TRACING_BACKEND_H_
 
-#include "perfetto/public/tracing_backend.h"
+#include "perfetto/tracing/tracing_backend.h"
 
 namespace perfetto {
 
@@ -51,4 +51,4 @@
 }  // namespace internal
 }  // namespace perfetto
 
-#endif  // SRC_PUBLIC_INTERNAL_SYSTEM_TRACING_BACKEND_H_
+#endif  // SRC_TRACING_INTERNAL_SYSTEM_TRACING_BACKEND_H_
diff --git a/src/public/internal/tracing_muxer_impl.cc b/src/tracing/internal/tracing_muxer_impl.cc
similarity index 96%
rename from src/public/internal/tracing_muxer_impl.cc
rename to src/tracing/internal/tracing_muxer_impl.cc
index aa04cab..bbb6557 100644
--- a/src/public/internal/tracing_muxer_impl.cc
+++ b/src/tracing/internal/tracing_muxer_impl.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "src/public/internal/tracing_muxer_impl.h"
+#include "src/tracing/internal/tracing_muxer_impl.h"
 
 #include <algorithm>
 #include <atomic>
@@ -22,18 +22,18 @@
 
 #include "perfetto/base/logging.h"
 #include "perfetto/base/task_runner.h"
-#include "perfetto/base/thread_checker.h"
-#include "perfetto/public/data_source.h"
-#include "perfetto/public/internal/data_source_internal.h"
-#include "perfetto/public/trace_writer_base.h"
-#include "perfetto/public/tracing.h"
-#include "perfetto/public/tracing_backend.h"
-#include "perfetto/tracing/core/data_source_config.h"
-#include "perfetto/tracing/core/trace_packet.h"
-#include "perfetto/tracing/core/trace_writer.h"
-#include "perfetto/tracing/core/tracing_service.h"
-#include "src/public/internal/in_process_tracing_backend.h"
-#include "src/public/internal/system_tracing_backend.h"
+#include "perfetto/ext/base/thread_checker.h"
+#include "perfetto/ext/tracing/core/data_source_config.h"
+#include "perfetto/ext/tracing/core/trace_packet.h"
+#include "perfetto/ext/tracing/core/trace_writer.h"
+#include "perfetto/ext/tracing/core/tracing_service.h"
+#include "perfetto/tracing/data_source.h"
+#include "perfetto/tracing/internal/data_source_internal.h"
+#include "perfetto/tracing/trace_writer_base.h"
+#include "perfetto/tracing/tracing.h"
+#include "perfetto/tracing/tracing_backend.h"
+#include "src/tracing/internal/in_process_tracing_backend.h"
+#include "src/tracing/internal/system_tracing_backend.h"
 
 namespace perfetto {
 namespace internal {
diff --git a/src/public/internal/tracing_muxer_impl.h b/src/tracing/internal/tracing_muxer_impl.h
similarity index 94%
rename from src/public/internal/tracing_muxer_impl.h
rename to src/tracing/internal/tracing_muxer_impl.h
index 87f54f6..c4de1be 100644
--- a/src/public/internal/tracing_muxer_impl.h
+++ b/src/tracing/internal/tracing_muxer_impl.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef SRC_PUBLIC_INTERNAL_TRACING_MUXER_IMPL_H_
-#define SRC_PUBLIC_INTERNAL_TRACING_MUXER_IMPL_H_
+#ifndef SRC_TRACING_INTERNAL_TRACING_MUXER_IMPL_H_
+#define SRC_TRACING_INTERNAL_TRACING_MUXER_IMPL_H_
 
 #include <stddef.h>
 #include <stdint.h>
@@ -26,15 +26,15 @@
 #include <memory>
 #include <vector>
 
-#include "perfetto/base/thread_checker.h"
-#include "perfetto/public/internal/basic_types.h"
-#include "perfetto/public/internal/tracing_muxer.h"
-#include "perfetto/public/tracing.h"
-#include "perfetto/tracing/core/basic_types.h"
-#include "perfetto/tracing/core/consumer.h"
-#include "perfetto/tracing/core/data_source_descriptor.h"
-#include "perfetto/tracing/core/producer.h"
-#include "perfetto/tracing/core/trace_config.h"
+#include "perfetto/ext/base/thread_checker.h"
+#include "perfetto/ext/tracing/core/basic_types.h"
+#include "perfetto/ext/tracing/core/consumer.h"
+#include "perfetto/ext/tracing/core/data_source_descriptor.h"
+#include "perfetto/ext/tracing/core/producer.h"
+#include "perfetto/ext/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 {
 
@@ -264,4 +264,4 @@
 }  // namespace internal
 }  // namespace perfetto
 
-#endif  // SRC_PUBLIC_INTERNAL_TRACING_MUXER_IMPL_H_
+#endif  // SRC_TRACING_INTERNAL_TRACING_MUXER_IMPL_H_
diff --git a/src/tracing/ipc/consumer/consumer_ipc_client_impl.cc b/src/tracing/ipc/consumer/consumer_ipc_client_impl.cc
index 26f4917..b38e2ba 100644
--- a/src/tracing/ipc/consumer/consumer_ipc_client_impl.cc
+++ b/src/tracing/ipc/consumer/consumer_ipc_client_impl.cc
@@ -20,11 +20,11 @@
 #include <string.h>
 
 #include "perfetto/base/task_runner.h"
-#include "perfetto/ipc/client.h"
-#include "perfetto/tracing/core/consumer.h"
-#include "perfetto/tracing/core/observable_events.h"
-#include "perfetto/tracing/core/trace_config.h"
-#include "perfetto/tracing/core/trace_stats.h"
+#include "perfetto/ext/ipc/client.h"
+#include "perfetto/ext/tracing/core/consumer.h"
+#include "perfetto/ext/tracing/core/observable_events.h"
+#include "perfetto/ext/tracing/core/trace_config.h"
+#include "perfetto/ext/tracing/core/trace_stats.h"
 
 // TODO(fmayer): Add a test to check to what happens when ConsumerIPCClientImpl
 // gets destroyed w.r.t. the Consumer pointer. Also think to lifetime of the
diff --git a/src/tracing/ipc/consumer/consumer_ipc_client_impl.h b/src/tracing/ipc/consumer/consumer_ipc_client_impl.h
index e930cee..320e5c0 100644
--- a/src/tracing/ipc/consumer/consumer_ipc_client_impl.h
+++ b/src/tracing/ipc/consumer/consumer_ipc_client_impl.h
@@ -21,13 +21,13 @@
 
 #include <vector>
 
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/base/weak_ptr.h"
-#include "perfetto/ipc/service_proxy.h"
-#include "perfetto/tracing/core/basic_types.h"
-#include "perfetto/tracing/core/trace_packet.h"
-#include "perfetto/tracing/core/tracing_service.h"
-#include "perfetto/tracing/ipc/consumer_ipc_client.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/weak_ptr.h"
+#include "perfetto/ext/ipc/service_proxy.h"
+#include "perfetto/ext/tracing/core/basic_types.h"
+#include "perfetto/ext/tracing/core/trace_packet.h"
+#include "perfetto/ext/tracing/core/tracing_service.h"
+#include "perfetto/ext/tracing/ipc/consumer_ipc_client.h"
 
 #include "perfetto/ipc/consumer_port.ipc.h"
 
diff --git a/src/tracing/ipc/default_socket.cc b/src/tracing/ipc/default_socket.cc
index 7234cb4..5647308 100644
--- a/src/tracing/ipc/default_socket.cc
+++ b/src/tracing/ipc/default_socket.cc
@@ -17,8 +17,8 @@
 #include "src/tracing/ipc/default_socket.h"
 
 #include "perfetto/base/build_config.h"
-#include "perfetto/ipc/basic_types.h"
-#include "perfetto/tracing/core/basic_types.h"
+#include "perfetto/ext/ipc/basic_types.h"
+#include "perfetto/ext/tracing/core/basic_types.h"
 
 #include <stdlib.h>
 
diff --git a/src/tracing/ipc/posix_shared_memory.cc b/src/tracing/ipc/posix_shared_memory.cc
index 714284d..d7f0904 100644
--- a/src/tracing/ipc/posix_shared_memory.cc
+++ b/src/tracing/ipc/posix_shared_memory.cc
@@ -29,7 +29,7 @@
 
 #include "perfetto/base/build_config.h"
 #include "perfetto/base/logging.h"
-#include "perfetto/base/temp_file.h"
+#include "perfetto/ext/base/temp_file.h"
 
 #if PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
 #include <linux/memfd.h>
diff --git a/src/tracing/ipc/posix_shared_memory.h b/src/tracing/ipc/posix_shared_memory.h
index 88f410c..4bb3baf 100644
--- a/src/tracing/ipc/posix_shared_memory.h
+++ b/src/tracing/ipc/posix_shared_memory.h
@@ -21,8 +21,8 @@
 
 #include <memory>
 
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/tracing/core/shared_memory.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/tracing/core/shared_memory.h"
 
 namespace perfetto {
 
diff --git a/src/tracing/ipc/posix_shared_memory_unittest.cc b/src/tracing/ipc/posix_shared_memory_unittest.cc
index e6739bf..2bb9aee 100644
--- a/src/tracing/ipc/posix_shared_memory_unittest.cc
+++ b/src/tracing/ipc/posix_shared_memory_unittest.cc
@@ -23,12 +23,12 @@
 #include <sys/stat.h>
 #include <unistd.h>
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 #include "perfetto/base/build_config.h"
-#include "perfetto/base/file_utils.h"
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/base/temp_file.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/base/temp_file.h"
+#include "perfetto/ext/base/utils.h"
 #include "src/base/test/test_task_runner.h"
 #include "src/base/test/vm_test_utils.h"
 
diff --git a/src/tracing/ipc/producer/producer_ipc_client_impl.cc b/src/tracing/ipc/producer/producer_ipc_client_impl.cc
index bf6e1b0..fa7924a 100644
--- a/src/tracing/ipc/producer/producer_ipc_client_impl.cc
+++ b/src/tracing/ipc/producer/producer_ipc_client_impl.cc
@@ -20,14 +20,14 @@
 #include <string.h>
 
 #include "perfetto/base/task_runner.h"
-#include "perfetto/ipc/client.h"
-#include "perfetto/tracing/core/commit_data_request.h"
-#include "perfetto/tracing/core/data_source_config.h"
-#include "perfetto/tracing/core/data_source_descriptor.h"
-#include "perfetto/tracing/core/producer.h"
-#include "perfetto/tracing/core/shared_memory_arbiter.h"
-#include "perfetto/tracing/core/trace_config.h"
-#include "perfetto/tracing/core/trace_writer.h"
+#include "perfetto/ext/ipc/client.h"
+#include "perfetto/ext/tracing/core/commit_data_request.h"
+#include "perfetto/ext/tracing/core/data_source_config.h"
+#include "perfetto/ext/tracing/core/data_source_descriptor.h"
+#include "perfetto/ext/tracing/core/producer.h"
+#include "perfetto/ext/tracing/core/shared_memory_arbiter.h"
+#include "perfetto/ext/tracing/core/trace_config.h"
+#include "perfetto/ext/tracing/core/trace_writer.h"
 #include "src/tracing/ipc/posix_shared_memory.h"
 
 // TODO(fmayer): think to what happens when ProducerIPCClientImpl gets destroyed
diff --git a/src/tracing/ipc/producer/producer_ipc_client_impl.h b/src/tracing/ipc/producer/producer_ipc_client_impl.h
index ba43421..70387b4 100644
--- a/src/tracing/ipc/producer/producer_ipc_client_impl.h
+++ b/src/tracing/ipc/producer/producer_ipc_client_impl.h
@@ -22,12 +22,12 @@
 #include <set>
 #include <vector>
 
-#include "perfetto/base/thread_checker.h"
-#include "perfetto/ipc/service_proxy.h"
-#include "perfetto/tracing/core/basic_types.h"
-#include "perfetto/tracing/core/shared_memory.h"
-#include "perfetto/tracing/core/tracing_service.h"
-#include "perfetto/tracing/ipc/producer_ipc_client.h"
+#include "perfetto/ext/base/thread_checker.h"
+#include "perfetto/ext/ipc/service_proxy.h"
+#include "perfetto/ext/tracing/core/basic_types.h"
+#include "perfetto/ext/tracing/core/shared_memory.h"
+#include "perfetto/ext/tracing/core/tracing_service.h"
+#include "perfetto/ext/tracing/ipc/producer_ipc_client.h"
 
 #include "perfetto/ipc/producer_port.ipc.h"
 
diff --git a/src/tracing/ipc/service/consumer_ipc_service.cc b/src/tracing/ipc/service/consumer_ipc_service.cc
index 4e5afc9..0d10c3e 100644
--- a/src/tracing/ipc/service/consumer_ipc_service.cc
+++ b/src/tracing/ipc/service/consumer_ipc_service.cc
@@ -19,16 +19,16 @@
 #include <inttypes.h>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/scoped_file.h"
 #include "perfetto/base/task_runner.h"
-#include "perfetto/ipc/basic_types.h"
-#include "perfetto/ipc/host.h"
-#include "perfetto/tracing/core/shared_memory_abi.h"
-#include "perfetto/tracing/core/slice.h"
-#include "perfetto/tracing/core/trace_config.h"
-#include "perfetto/tracing/core/trace_packet.h"
-#include "perfetto/tracing/core/trace_stats.h"
-#include "perfetto/tracing/core/tracing_service.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/ipc/basic_types.h"
+#include "perfetto/ext/ipc/host.h"
+#include "perfetto/ext/tracing/core/shared_memory_abi.h"
+#include "perfetto/ext/tracing/core/slice.h"
+#include "perfetto/ext/tracing/core/trace_config.h"
+#include "perfetto/ext/tracing/core/trace_packet.h"
+#include "perfetto/ext/tracing/core/trace_stats.h"
+#include "perfetto/ext/tracing/core/tracing_service.h"
 
 namespace perfetto {
 
diff --git a/src/tracing/ipc/service/consumer_ipc_service.h b/src/tracing/ipc/service/consumer_ipc_service.h
index 2752fb3..22957a9 100644
--- a/src/tracing/ipc/service/consumer_ipc_service.h
+++ b/src/tracing/ipc/service/consumer_ipc_service.h
@@ -22,10 +22,10 @@
 #include <memory>
 #include <string>
 
-#include "perfetto/base/weak_ptr.h"
-#include "perfetto/ipc/basic_types.h"
-#include "perfetto/tracing/core/consumer.h"
-#include "perfetto/tracing/core/tracing_service.h"
+#include "perfetto/ext/base/weak_ptr.h"
+#include "perfetto/ext/ipc/basic_types.h"
+#include "perfetto/ext/tracing/core/consumer.h"
+#include "perfetto/ext/tracing/core/tracing_service.h"
 
 #include "perfetto/ipc/consumer_port.ipc.h"
 
diff --git a/src/tracing/ipc/service/producer_ipc_service.cc b/src/tracing/ipc/service/producer_ipc_service.cc
index 15f7808..5e2214e 100644
--- a/src/tracing/ipc/service/producer_ipc_service.cc
+++ b/src/tracing/ipc/service/producer_ipc_service.cc
@@ -20,11 +20,11 @@
 
 #include "perfetto/base/logging.h"
 #include "perfetto/base/task_runner.h"
-#include "perfetto/ipc/host.h"
-#include "perfetto/tracing/core/commit_data_request.h"
-#include "perfetto/tracing/core/data_source_config.h"
-#include "perfetto/tracing/core/data_source_descriptor.h"
-#include "perfetto/tracing/core/tracing_service.h"
+#include "perfetto/ext/ipc/host.h"
+#include "perfetto/ext/tracing/core/commit_data_request.h"
+#include "perfetto/ext/tracing/core/data_source_config.h"
+#include "perfetto/ext/tracing/core/data_source_descriptor.h"
+#include "perfetto/ext/tracing/core/tracing_service.h"
 #include "src/tracing/ipc/posix_shared_memory.h"
 
 // The remote Producer(s) are not trusted. All the methods from the ProducerPort
diff --git a/src/tracing/ipc/service/producer_ipc_service.h b/src/tracing/ipc/service/producer_ipc_service.h
index 5954680..200972e 100644
--- a/src/tracing/ipc/service/producer_ipc_service.h
+++ b/src/tracing/ipc/service/producer_ipc_service.h
@@ -21,10 +21,10 @@
 #include <memory>
 #include <string>
 
-#include "perfetto/base/weak_ptr.h"
-#include "perfetto/ipc/basic_types.h"
-#include "perfetto/tracing/core/producer.h"
-#include "perfetto/tracing/core/tracing_service.h"
+#include "perfetto/ext/base/weak_ptr.h"
+#include "perfetto/ext/ipc/basic_types.h"
+#include "perfetto/ext/tracing/core/producer.h"
+#include "perfetto/ext/tracing/core/tracing_service.h"
 
 #include "perfetto/ipc/producer_port.ipc.h"
 
diff --git a/src/tracing/ipc/service/service_ipc_host_impl.cc b/src/tracing/ipc/service/service_ipc_host_impl.cc
index 9c185ac..ad6f9ef 100644
--- a/src/tracing/ipc/service/service_ipc_host_impl.cc
+++ b/src/tracing/ipc/service/service_ipc_host_impl.cc
@@ -18,8 +18,8 @@
 
 #include "perfetto/base/logging.h"
 #include "perfetto/base/task_runner.h"
-#include "perfetto/ipc/host.h"
-#include "perfetto/tracing/core/tracing_service.h"
+#include "perfetto/ext/ipc/host.h"
+#include "perfetto/ext/tracing/core/tracing_service.h"
 #include "src/tracing/ipc/posix_shared_memory.h"
 #include "src/tracing/ipc/service/consumer_ipc_service.h"
 #include "src/tracing/ipc/service/producer_ipc_service.h"
diff --git a/src/tracing/ipc/service/service_ipc_host_impl.h b/src/tracing/ipc/service/service_ipc_host_impl.h
index e7f5cdd..d06ef60 100644
--- a/src/tracing/ipc/service/service_ipc_host_impl.h
+++ b/src/tracing/ipc/service/service_ipc_host_impl.h
@@ -19,7 +19,7 @@
 
 #include <memory>
 
-#include "perfetto/tracing/ipc/service_ipc_host.h"
+#include "perfetto/ext/tracing/ipc/service_ipc_host.h"
 
 namespace perfetto {
 
diff --git a/src/public/platform.cc b/src/tracing/platform.cc
similarity index 87%
rename from src/public/platform.cc
rename to src/tracing/platform.cc
index 50e0ab8..e6865cd 100644
--- a/src/public/platform.cc
+++ b/src/tracing/platform.cc
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-#include "perfetto/public/platform.h"
-#include "perfetto/public/internal/tracing_tls.h"
-#include "perfetto/public/trace_writer_base.h"
+#include "perfetto/tracing/platform.h"
+#include "perfetto/tracing/internal/tracing_tls.h"
+#include "perfetto/tracing/trace_writer_base.h"
 
 namespace perfetto {
 
diff --git a/src/public/platform_posix.cc b/src/tracing/platform_posix.cc
similarity index 94%
rename from src/public/platform_posix.cc
rename to src/tracing/platform_posix.cc
index dc078bc..75551fc 100644
--- a/src/public/platform_posix.cc
+++ b/src/tracing/platform_posix.cc
@@ -15,11 +15,11 @@
  */
 
 #include "perfetto/base/build_config.h"
-#include "perfetto/base/file_utils.h"
-#include "perfetto/base/thread_task_runner.h"
-#include "perfetto/public/internal/tracing_tls.h"
-#include "perfetto/public/platform.h"
-#include "perfetto/public/trace_writer_base.h"
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/thread_task_runner.h"
+#include "perfetto/tracing/internal/tracing_tls.h"
+#include "perfetto/tracing/platform.h"
+#include "perfetto/tracing/trace_writer_base.h"
 
 #include <pthread.h>
 #include <stdlib.h>
diff --git a/src/tracing/test/aligned_buffer_test.h b/src/tracing/test/aligned_buffer_test.h
index 23c8b1c..f9d9932 100644
--- a/src/tracing/test/aligned_buffer_test.h
+++ b/src/tracing/test/aligned_buffer_test.h
@@ -21,8 +21,8 @@
 
 #include <memory>
 
-#include "gtest/gtest.h"
-#include "perfetto/base/utils.h"
+#include <gtest/gtest.h>
+#include "perfetto/ext/base/utils.h"
 #include "src/tracing/test/test_shared_memory.h"
 
 namespace perfetto {
diff --git a/src/tracing/test/fake_packet.cc b/src/tracing/test/fake_packet.cc
index 210f5fa..785933f 100644
--- a/src/tracing/test/fake_packet.cc
+++ b/src/tracing/test/fake_packet.cc
@@ -19,8 +19,8 @@
 #include <ostream>
 
 #include "perfetto/base/logging.h"
+#include "perfetto/ext/tracing/core/shared_memory_abi.h"
 #include "perfetto/protozero/proto_utils.h"
-#include "perfetto/tracing/core/shared_memory_abi.h"
 #include "src/tracing/core/trace_buffer.h"
 
 using protozero::proto_utils::ParseVarInt;
diff --git a/src/tracing/test/fake_packet.h b/src/tracing/test/fake_packet.h
index 6f24408..2e4c494 100644
--- a/src/tracing/test/fake_packet.h
+++ b/src/tracing/test/fake_packet.h
@@ -24,7 +24,7 @@
 #include <string>
 #include <vector>
 
-#include "perfetto/tracing/core/basic_types.h"
+#include "perfetto/ext/tracing/core/basic_types.h"
 
 namespace perfetto {
 
diff --git a/src/tracing/test/fake_producer_endpoint.h b/src/tracing/test/fake_producer_endpoint.h
index 29183b1..8cacf38 100644
--- a/src/tracing/test/fake_producer_endpoint.h
+++ b/src/tracing/test/fake_producer_endpoint.h
@@ -17,8 +17,8 @@
 #ifndef SRC_TRACING_TEST_FAKE_PRODUCER_ENDPOINT_H_
 #define SRC_TRACING_TEST_FAKE_PRODUCER_ENDPOINT_H_
 
-#include "perfetto/tracing/core/commit_data_request.h"
-#include "perfetto/tracing/core/tracing_service.h"
+#include "perfetto/ext/tracing/core/commit_data_request.h"
+#include "perfetto/ext/tracing/core/tracing_service.h"
 
 namespace perfetto {
 
diff --git a/src/tracing/test/hello_world_benchmark.cc b/src/tracing/test/hello_world_benchmark.cc
index c554de9..81ea9ac 100644
--- a/src/tracing/test/hello_world_benchmark.cc
+++ b/src/tracing/test/hello_world_benchmark.cc
@@ -1,4 +1,4 @@
-#include "benchmark/benchmark.h"
+#include <benchmark/benchmark.h>
 
 static void BM_StringCreation(benchmark::State& state) {
   while (state.KeepRunning())
diff --git a/src/tracing/test/mock_consumer.cc b/src/tracing/test/mock_consumer.cc
index 15c1400..137ef4e 100644
--- a/src/tracing/test/mock_consumer.cc
+++ b/src/tracing/test/mock_consumer.cc
@@ -16,8 +16,8 @@
 
 #include "src/tracing/test/mock_consumer.h"
 
-#include "perfetto/tracing/core/trace_config.h"
-#include "perfetto/tracing/core/trace_stats.h"
+#include "perfetto/ext/tracing/core/trace_config.h"
+#include "perfetto/ext/tracing/core/trace_stats.h"
 #include "src/base/test/test_task_runner.h"
 
 using ::testing::_;
diff --git a/src/tracing/test/mock_consumer.h b/src/tracing/test/mock_consumer.h
index a297042..53b789f 100644
--- a/src/tracing/test/mock_consumer.h
+++ b/src/tracing/test/mock_consumer.h
@@ -19,10 +19,10 @@
 
 #include <memory>
 
-#include "gmock/gmock.h"
-#include "perfetto/tracing/core/consumer.h"
-#include "perfetto/tracing/core/trace_packet.h"
-#include "perfetto/tracing/core/tracing_service.h"
+#include <gmock/gmock.h>
+#include "perfetto/ext/tracing/core/consumer.h"
+#include "perfetto/ext/tracing/core/trace_packet.h"
+#include "perfetto/ext/tracing/core/tracing_service.h"
 
 #include "perfetto/trace/trace_packet.pb.h"
 
diff --git a/src/tracing/test/mock_producer.cc b/src/tracing/test/mock_producer.cc
index 02c33ba..b55f518 100644
--- a/src/tracing/test/mock_producer.cc
+++ b/src/tracing/test/mock_producer.cc
@@ -16,9 +16,9 @@
 
 #include "src/tracing/test/mock_producer.h"
 
-#include "perfetto/tracing/core/data_source_config.h"
-#include "perfetto/tracing/core/data_source_descriptor.h"
-#include "perfetto/tracing/core/trace_writer.h"
+#include "perfetto/ext/tracing/core/data_source_config.h"
+#include "perfetto/ext/tracing/core/data_source_descriptor.h"
+#include "perfetto/ext/tracing/core/trace_writer.h"
 #include "src/base/test/test_task_runner.h"
 
 using ::testing::_;
diff --git a/src/tracing/test/mock_producer.h b/src/tracing/test/mock_producer.h
index 3094678..6d9fa33 100644
--- a/src/tracing/test/mock_producer.h
+++ b/src/tracing/test/mock_producer.h
@@ -21,10 +21,10 @@
 #include <memory>
 #include <string>
 
-#include "gmock/gmock.h"
-#include "perfetto/tracing/core/producer.h"
-#include "perfetto/tracing/core/trace_writer.h"
-#include "perfetto/tracing/core/tracing_service.h"
+#include <gmock/gmock.h>
+#include "perfetto/ext/tracing/core/producer.h"
+#include "perfetto/ext/tracing/core/trace_writer.h"
+#include "perfetto/ext/tracing/core/tracing_service.h"
 
 namespace perfetto {
 
diff --git a/src/tracing/test/test_shared_memory.h b/src/tracing/test/test_shared_memory.h
index 4b11b92..9db6bcb 100644
--- a/src/tracing/test/test_shared_memory.h
+++ b/src/tracing/test/test_shared_memory.h
@@ -21,8 +21,8 @@
 
 #include <memory>
 
-#include "perfetto/base/paged_memory.h"
-#include "perfetto/tracing/core/shared_memory.h"
+#include "perfetto/ext/base/paged_memory.h"
+#include "perfetto/ext/tracing/core/shared_memory.h"
 
 namespace perfetto {
 
diff --git a/src/tracing/test/tracing_integration_test.cc b/src/tracing/test/tracing_integration_test.cc
index 2ce17ec..0fbc746 100644
--- a/src/tracing/test/tracing_integration_test.cc
+++ b/src/tracing/test/tracing_integration_test.cc
@@ -17,20 +17,20 @@
 #include <inttypes.h>
 #include <unistd.h>
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
-#include "perfetto/base/temp_file.h"
-#include "perfetto/tracing/core/consumer.h"
-#include "perfetto/tracing/core/data_source_config.h"
-#include "perfetto/tracing/core/data_source_descriptor.h"
-#include "perfetto/tracing/core/producer.h"
-#include "perfetto/tracing/core/trace_config.h"
-#include "perfetto/tracing/core/trace_packet.h"
-#include "perfetto/tracing/core/trace_stats.h"
-#include "perfetto/tracing/core/trace_writer.h"
-#include "perfetto/tracing/ipc/consumer_ipc_client.h"
-#include "perfetto/tracing/ipc/producer_ipc_client.h"
-#include "perfetto/tracing/ipc/service_ipc_host.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include "perfetto/ext/base/temp_file.h"
+#include "perfetto/ext/tracing/core/consumer.h"
+#include "perfetto/ext/tracing/core/data_source_config.h"
+#include "perfetto/ext/tracing/core/data_source_descriptor.h"
+#include "perfetto/ext/tracing/core/producer.h"
+#include "perfetto/ext/tracing/core/trace_config.h"
+#include "perfetto/ext/tracing/core/trace_packet.h"
+#include "perfetto/ext/tracing/core/trace_stats.h"
+#include "perfetto/ext/tracing/core/trace_writer.h"
+#include "perfetto/ext/tracing/ipc/consumer_ipc_client.h"
+#include "perfetto/ext/tracing/ipc/producer_ipc_client.h"
+#include "perfetto/ext/tracing/ipc/service_ipc_host.h"
 #include "src/base/test/test_task_runner.h"
 #include "src/ipc/test/test_socket.h"
 #include "src/tracing/core/tracing_service_impl.h"
diff --git a/src/public/trace_writer_base.cc b/src/tracing/trace_writer_base.cc
similarity index 95%
rename from src/public/trace_writer_base.cc
rename to src/tracing/trace_writer_base.cc
index 11c3da7..b1e63c4 100644
--- a/src/public/trace_writer_base.cc
+++ b/src/tracing/trace_writer_base.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "perfetto/public/trace_writer_base.h"
+#include "perfetto/tracing/trace_writer_base.h"
 
 namespace perfetto {
 
diff --git a/src/public/tracing.cc b/src/tracing/tracing.cc
similarity index 94%
rename from src/public/tracing.cc
rename to src/tracing/tracing.cc
index b1bfc1f..769eb70 100644
--- a/src/public/tracing.cc
+++ b/src/tracing/tracing.cc
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#include "perfetto/public/tracing.h"
-#include "src/public/internal/tracing_muxer_impl.h"
+#include "perfetto/tracing/tracing.h"
+#include "src/tracing/internal/tracing_muxer_impl.h"
 
 #include <condition_variable>
 #include <mutex>
diff --git a/src/public/virtual_destructors.cc b/src/tracing/virtual_destructors.cc
similarity index 89%
rename from src/public/virtual_destructors.cc
rename to src/tracing/virtual_destructors.cc
index 7697252..d548c8e 100644
--- a/src/public/virtual_destructors.cc
+++ b/src/tracing/virtual_destructors.cc
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-#include "perfetto/public/internal/tracing_tls.h"
-#include "perfetto/public/tracing.h"
-#include "perfetto/public/tracing_backend.h"
+#include "perfetto/tracing/internal/tracing_tls.h"
+#include "perfetto/tracing/tracing.h"
+#include "perfetto/tracing/tracing_backend.h"
 
 // This translation unit contains the definitions for the destructor of pure
 // virtual interfaces for the src/public:public target. The alternative would be
diff --git a/test/BUILD.gn b/test/BUILD.gn
index a9518e3..48b9ee3 100644
--- a/test/BUILD.gn
+++ b/test/BUILD.gn
@@ -12,9 +12,9 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+import("//build_overrides/build.gni")
 import("../gn/fuzzer.gni")
 import("../gn/perfetto.gni")
-import("//build_overrides/build.gni")
 
 source_set("end_to_end_integrationtests") {
   testonly = true
@@ -24,8 +24,8 @@
     ":test_helper",
     "../gn:default_deps",
     "../gn:gtest_deps",
+    "../include/perfetto/ext/traced",
     "../include/perfetto/protozero",
-    "../include/perfetto/traced",
     "../protos/perfetto/config:zero",
     "../protos/perfetto/trace:lite",
     "../protos/perfetto/trace:zero",
@@ -36,7 +36,8 @@
   sources = [
     "end_to_end_integrationtest.cc",
   ]
-  if (is_android && (perfetto_build_standalone || perfetto_build_with_android)) {
+  if (is_android &&
+      (perfetto_build_standalone || perfetto_build_with_android)) {
     deps += [ "../src/base:android_task_runner" ]
   }
   if (start_daemons_for_testing) {
@@ -88,7 +89,7 @@
   deps = [
     ":task_runner_thread",
     "../gn:default_deps",
-    "../include/perfetto/traced",
+    "../include/perfetto/ext/traced",
     "../src/base:test_support",
     "../src/traced/probes:probes_src",
     "../src/tracing:ipc",
@@ -109,7 +110,7 @@
     ":task_runner_thread",
     ":task_runner_thread_delegates",
     "../gn:default_deps",
-    "../include/perfetto/traced",
+    "../include/perfetto/ext/traced",
     "../protos/perfetto/trace:lite",
     "../protos/perfetto/trace:zero",
     "../src/base:test_support",
@@ -130,10 +131,10 @@
       ":task_runner_thread",
       ":task_runner_thread_delegates",
       ":test_helper",
-      "../../gn:default_deps",
       "../buildtools:benchmark",
+      "../gn:default_deps",
       "../gn:gtest_deps",
-      "../include/perfetto/traced",
+      "../include/perfetto/ext/traced",
       "../protos/perfetto/trace:lite",
       "../protos/perfetto/trace:zero",
       "../src/base:test_support",
@@ -152,8 +153,8 @@
   source_set("benchmark_main") {
     testonly = true
     deps = [
-      "../../gn:default_deps",
       "../buildtools:benchmark",
+      "../gn:default_deps",
     ]
     sources = [
       "benchmark_main.cc",
diff --git a/test/benchmark_main.cc b/test/benchmark_main.cc
index f904cfc..e410e52 100644
--- a/test/benchmark_main.cc
+++ b/test/benchmark_main.cc
@@ -12,6 +12,6 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "benchmark/benchmark.h"
+#include <benchmark/benchmark.h>
 
 BENCHMARK_MAIN();
diff --git a/test/cts/device_feature_test_cts.cc b/test/cts/device_feature_test_cts.cc
index 3664476..eb57888 100644
--- a/test/cts/device_feature_test_cts.cc
+++ b/test/cts/device_feature_test_cts.cc
@@ -16,7 +16,7 @@
 
 #include <sys/sysinfo.h>
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 
 namespace perfetto {
 
diff --git a/test/cts/end_to_end_integrationtest_cts.cc b/test/cts/end_to_end_integrationtest_cts.cc
index d40d92f..d6d5eda 100644
--- a/test/cts/end_to_end_integrationtest_cts.cc
+++ b/test/cts/end_to_end_integrationtest_cts.cc
@@ -17,12 +17,12 @@
 #include <random>
 #include <sys/system_properties.h>
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
+#include "perfetto/ext/traced/traced.h"
+#include "perfetto/ext/tracing/core/trace_packet.h"
 #include "perfetto/trace/test_event.pbzero.h"
 #include "perfetto/trace/trace_packet.pb.h"
 #include "perfetto/trace/trace_packet.pbzero.h"
-#include "perfetto/traced/traced.h"
-#include "perfetto/tracing/core/trace_packet.h"
 #include "src/base/test/test_task_runner.h"
 #include "test/test_helper.h"
 
diff --git a/test/cts/heapprofd_test_cts.cc b/test/cts/heapprofd_test_cts.cc
index 9c856a0..76de7f8 100644
--- a/test/cts/heapprofd_test_cts.cc
+++ b/test/cts/heapprofd_test_cts.cc
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
+#include <gtest/gtest.h>
 #include <stdlib.h>
+#include <sys/system_properties.h>
 #include <sys/types.h>
 #include <sys/wait.h>
-#include <sys/system_properties.h>
 
-#include "gtest/gtest.h"
 #include "perfetto/base/logging.h"
 #include "src/base/test/test_task_runner.h"
 #include "test/test_helper.h"
diff --git a/test/cts/producer/jni/fake_producer_jni.cc b/test/cts/producer/jni/fake_producer_jni.cc
index cbeafe2..f45ed0a 100644
--- a/test/cts/producer/jni/fake_producer_jni.cc
+++ b/test/cts/producer/jni/fake_producer_jni.cc
@@ -16,7 +16,7 @@
 
 #include <jni.h>
 
-#include "perfetto/traced/traced.h"
+#include "perfetto/ext/traced/traced.h"
 
 #include "src/base/test/test_task_runner.h"
 #include "src/tracing/ipc/default_socket.h"
diff --git a/test/end_to_end_benchmark.cc b/test/end_to_end_benchmark.cc
index fd1fd3e..f98eee8 100644
--- a/test/end_to_end_benchmark.cc
+++ b/test/end_to_end_benchmark.cc
@@ -12,14 +12,15 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include <gtest/gtest.h>
 #include <random>
 
-#include "benchmark/benchmark.h"
-#include "perfetto/base/time.h"
-#include "perfetto/traced/traced.h"
-#include "perfetto/tracing/core/trace_config.h"
-#include "perfetto/tracing/core/trace_packet.h"
+#include <benchmark/benchmark.h>
+#include <gtest/gtest.h>
+
+#include "perfetto/ext/base/time.h"
+#include "perfetto/ext/traced/traced.h"
+#include "perfetto/ext/tracing/core/trace_config.h"
+#include "perfetto/ext/tracing/core/trace_packet.h"
 #include "src/base/test/test_task_runner.h"
 #include "test/task_runner_thread.h"
 #include "test/task_runner_thread_delegates.h"
diff --git a/test/end_to_end_integrationtest.cc b/test/end_to_end_integrationtest.cc
index d44229c..7d77e58 100644
--- a/test/end_to_end_integrationtest.cc
+++ b/test/end_to_end_integrationtest.cc
@@ -23,17 +23,17 @@
 #include <random>
 #include <thread>
 
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 #include "perfetto/base/build_config.h"
-#include "perfetto/base/file_utils.h"
 #include "perfetto/base/logging.h"
-#include "perfetto/base/pipe.h"
-#include "perfetto/base/temp_file.h"
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/pipe.h"
+#include "perfetto/ext/base/temp_file.h"
+#include "perfetto/ext/traced/traced.h"
+#include "perfetto/ext/tracing/core/trace_config.h"
+#include "perfetto/ext/tracing/core/trace_packet.h"
 #include "perfetto/protozero/scattered_heap_buffer.h"
-#include "perfetto/traced/traced.h"
-#include "perfetto/tracing/core/trace_config.h"
-#include "perfetto/tracing/core/trace_packet.h"
 #include "src/base/test/test_task_runner.h"
 #include "src/traced/probes/ftrace/ftrace_controller.h"
 #include "src/traced/probes/ftrace/ftrace_procfs.h"
diff --git a/test/end_to_end_shared_memory_fuzzer.cc b/test/end_to_end_shared_memory_fuzzer.cc
index 5006afb..bb6d90e 100644
--- a/test/end_to_end_shared_memory_fuzzer.cc
+++ b/test/end_to_end_shared_memory_fuzzer.cc
@@ -20,14 +20,14 @@
 
 #include "perfetto/base/logging.h"
 #include "perfetto/base/task_runner.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/utils.h"
+#include "perfetto/ext/tracing/core/data_source_config.h"
+#include "perfetto/ext/tracing/core/data_source_descriptor.h"
+#include "perfetto/ext/tracing/core/producer.h"
+#include "perfetto/ext/tracing/core/trace_writer.h"
+#include "perfetto/ext/tracing/ipc/producer_ipc_client.h"
+#include "perfetto/ext/tracing/ipc/service_ipc_host.h"
 #include "perfetto/trace/test_event.pbzero.h"
-#include "perfetto/tracing/core/data_source_config.h"
-#include "perfetto/tracing/core/data_source_descriptor.h"
-#include "perfetto/tracing/core/producer.h"
-#include "perfetto/tracing/core/trace_writer.h"
-#include "perfetto/tracing/ipc/producer_ipc_client.h"
-#include "perfetto/tracing/ipc/service_ipc_host.h"
 #include "src/base/test/test_task_runner.h"
 #include "src/tracing/ipc/default_socket.h"
 #include "test/task_runner_thread.h"
diff --git a/test/fake_producer.cc b/test/fake_producer.cc
index 0ae52a1..993012c 100644
--- a/test/fake_producer.cc
+++ b/test/fake_producer.cc
@@ -19,15 +19,15 @@
 #include <condition_variable>
 #include <mutex>
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 #include "perfetto/base/logging.h"
-#include "perfetto/base/time.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/time.h"
+#include "perfetto/ext/base/utils.h"
+#include "perfetto/ext/traced/traced.h"
+#include "perfetto/ext/tracing/core/trace_packet.h"
+#include "perfetto/ext/tracing/core/trace_writer.h"
 #include "perfetto/trace/test_event.pbzero.h"
 #include "perfetto/trace/trace_packet.pbzero.h"
-#include "perfetto/traced/traced.h"
-#include "perfetto/tracing/core/trace_packet.h"
-#include "perfetto/tracing/core/trace_writer.h"
 
 namespace perfetto {
 
diff --git a/test/fake_producer.h b/test/fake_producer.h
index 460d88c..4fddb8e 100644
--- a/test/fake_producer.h
+++ b/test/fake_producer.h
@@ -21,11 +21,11 @@
 #include <random>
 #include <string>
 
-#include "perfetto/base/thread_checker.h"
-#include "perfetto/tracing/core/data_source_descriptor.h"
-#include "perfetto/tracing/core/producer.h"
-#include "perfetto/tracing/core/trace_config.h"
-#include "perfetto/tracing/ipc/producer_ipc_client.h"
+#include "perfetto/ext/base/thread_checker.h"
+#include "perfetto/ext/tracing/core/data_source_descriptor.h"
+#include "perfetto/ext/tracing/core/producer.h"
+#include "perfetto/ext/tracing/core/trace_config.h"
+#include "perfetto/ext/tracing/ipc/producer_ipc_client.h"
 #include "src/base/test/test_task_runner.h"
 
 namespace perfetto {
diff --git a/test/metrics/android_startup.out b/test/metrics/android_startup.out
index 222a8fa..5e60861 100644
--- a/test/metrics/android_startup.out
+++ b/test/metrics/android_startup.out
@@ -14,6 +14,10 @@
         interruptible_sleep_dur_ns: 10
       }
       other_processes_spawned_count: 1
+      time_activity_manager {
+        dur_ns: 8
+      }
+      other_process_to_activity_cpu_ratio: 0.975609756098
     }
   }
 }
diff --git a/test/metrics/android_startup.py b/test/metrics/android_startup.py
index a4c7d98..3da85bf 100644
--- a/test/metrics/android_startup.py
+++ b/test/metrics/android_startup.py
@@ -74,4 +74,8 @@
 trace.add_atrace_async_end(ts=510, tid=2, pid=2,
     buf='launching: com.google.android.apps.nexuslauncher')
 
+trace.add_ftrace_packet(cpu=1)
+trace.add_sched(ts=160, prev_pid=0, next_pid=1)
+trace.add_sched(ts=200, prev_pid=1, next_pid=0)
+
 print(trace.trace.SerializeToString())
diff --git a/test/metrics/android_startup_breakdown.out b/test/metrics/android_startup_breakdown.out
new file mode 100644
index 0000000..2dc19cd
--- /dev/null
+++ b/test/metrics/android_startup_breakdown.out
@@ -0,0 +1,31 @@
+android_startup {
+  startup {
+    startup_id: 1
+    package_name: "com.google.android.calendar"
+    process_name: "com.google.android.calendar"
+    zygote_new_process: true
+    to_first_frame {
+      dur_ns: 108
+      main_thread_by_task_state {
+        running_dur_ns: 0
+        runnable_dur_ns: 0
+        uninterruptible_sleep_dur_ns: 0
+        interruptible_sleep_dur_ns: 0
+      }
+      other_processes_spawned_count: 0
+      time_activity_manager {
+        dur_ns: 8
+      }
+      time_bind_application {
+        dur_ns: 10
+      }
+      time_before_start_process {
+        dur_ns: 18
+      }
+      time_during_start_process {
+        dur_ns: 35
+      }
+    }
+    activity_hosting_process_count: 1
+  }
+}
diff --git a/test/metrics/android_startup_breakdown.py b/test/metrics/android_startup_breakdown.py
new file mode 100644
index 0000000..86aa893
--- /dev/null
+++ b/test/metrics/android_startup_breakdown.py
@@ -0,0 +1,54 @@
+#!/usr/bin/python
+# 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.
+
+from os import sys, path
+
+sys.path.append(path.dirname(path.dirname(path.abspath(__file__))))
+import synth_common
+
+trace = synth_common.create_trace()
+trace.add_process_tree_packet()
+trace.add_process(1, 0, 'init')
+trace.add_process(2, 1, 'system_server')
+trace.add_process(3, 1, 'com.google.android.calendar')
+
+trace.add_ftrace_packet(cpu=0)
+
+# Start intent for a successful launch of calendar
+trace.add_atrace_begin(ts=102, tid=2, pid=2,
+    buf='MetricsLogger:launchObserverNotifyIntentStarted')
+trace.add_atrace_end(ts=103, tid=2, pid=2)
+
+trace.add_atrace_async_begin(ts=110, tid=2, pid=2,
+    buf='launching: com.google.android.calendar')
+
+trace.add_atrace_begin(ts=120, tid=2, pid=2,
+    buf='Start proc: com.google.android.calendar')
+trace.add_atrace_end(ts=155, tid=2, pid=2)
+
+# Unrelated process binding, ignored
+trace.add_atrace_begin(ts=125, tid=1, pid=1, buf='bindApplication')
+trace.add_atrace_end(ts=195, tid=1, pid=1)
+
+trace.add_atrace_begin(ts=185, tid=3, pid=3, buf='bindApplication')
+trace.add_atrace_end(ts=195, tid=3, pid=3)
+
+trace.add_atrace_async_end(ts=210, tid=2, pid=2,
+    buf='launching: com.google.android.calendar')
+trace.add_atrace_begin(ts=211, tid=2, pid=2,
+    buf='MetricsLogger:launchObserverNotifyActivityLaunchFinished')
+trace.add_atrace_end(ts=212, tid=2, pid=2)
+
+print(trace.trace.SerializeToString())
diff --git a/test/metrics/index b/test/metrics/index
index 297bd81..dc494c4 100644
--- a/test/metrics/index
+++ b/test/metrics/index
@@ -1,4 +1,5 @@
 ../data/lmk_userspace.pb android_mem android_mem_lmk.out
 ../data/memory_counters.pb android_mem android_mem_counters.out
 android_startup.py android_startup android_startup.out
+android_startup_breakdown.py android_startup android_startup_breakdown.out
 ../data/memory_counters.pb error_statistics error_statistics.out
\ No newline at end of file
diff --git a/test/task_runner_thread.cc b/test/task_runner_thread.cc
index dc9e4ac..37e29c9 100644
--- a/test/task_runner_thread.cc
+++ b/test/task_runner_thread.cc
@@ -23,9 +23,9 @@
 #include <condition_variable>
 #include <thread>
 
-#include "perfetto/base/file_utils.h"
-#include "perfetto/base/string_splitter.h"
-#include "perfetto/base/time.h"
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/string_splitter.h"
+#include "perfetto/ext/base/time.h"
 #include "test/task_runner_thread.h"
 
 namespace perfetto {
diff --git a/test/task_runner_thread_delegates.h b/test/task_runner_thread_delegates.h
index 8eecbba..dc19c0a 100644
--- a/test/task_runner_thread_delegates.h
+++ b/test/task_runner_thread_delegates.h
@@ -17,7 +17,7 @@
 #ifndef TEST_TASK_RUNNER_THREAD_DELEGATES_H_
 #define TEST_TASK_RUNNER_THREAD_DELEGATES_H_
 
-#include "perfetto/tracing/ipc/service_ipc_host.h"
+#include "perfetto/ext/tracing/ipc/service_ipc_host.h"
 #include "src/traced/probes/probes_producer.h"
 #include "test/fake_producer.h"
 #include "test/task_runner_thread.h"
diff --git a/test/test_helper.cc b/test/test_helper.cc
index bcacda3..409014a 100644
--- a/test/test_helper.cc
+++ b/test/test_helper.cc
@@ -16,9 +16,9 @@
 
 #include "test/test_helper.h"
 
-#include "gtest/gtest.h"
-#include "perfetto/traced/traced.h"
-#include "perfetto/tracing/core/trace_packet.h"
+#include <gtest/gtest.h>
+#include "perfetto/ext/traced/traced.h"
+#include "perfetto/ext/tracing/core/trace_packet.h"
 #include "test/task_runner_thread_delegates.h"
 
 #include "src/tracing/ipc/default_socket.h"
diff --git a/test/test_helper.h b/test/test_helper.h
index 8b2ae2d..4904db5 100644
--- a/test/test_helper.h
+++ b/test/test_helper.h
@@ -17,11 +17,11 @@
 #ifndef TEST_TEST_HELPER_H_
 #define TEST_TEST_HELPER_H_
 
-#include "perfetto/base/scoped_file.h"
-#include "perfetto/tracing/core/consumer.h"
-#include "perfetto/tracing/core/trace_config.h"
-#include "perfetto/tracing/core/trace_packet.h"
-#include "perfetto/tracing/ipc/consumer_ipc_client.h"
+#include "perfetto/ext/base/scoped_file.h"
+#include "perfetto/ext/tracing/core/consumer.h"
+#include "perfetto/ext/tracing/core/trace_config.h"
+#include "perfetto/ext/tracing/core/trace_packet.h"
+#include "perfetto/ext/tracing/ipc/consumer_ipc_client.h"
 #include "src/base/test/test_task_runner.h"
 #include "test/fake_producer.h"
 #include "test/task_runner_thread.h"
diff --git a/tools/busy_threads/busy_threads.cc b/tools/busy_threads/busy_threads.cc
index 82efcc9..b4f379b 100644
--- a/tools/busy_threads/busy_threads.cc
+++ b/tools/busy_threads/busy_threads.cc
@@ -22,7 +22,7 @@
 #include <thread>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/time.h"
+#include "perfetto/ext/base/time.h"
 
 // Spawns the requested number threads that alternate between busy-waiting and
 // sleeping.
diff --git a/tools/check_include_violations b/tools/check_include_violations
new file mode 100755
index 0000000..5e05b86
--- /dev/null
+++ b/tools/check_include_violations
@@ -0,0 +1,85 @@
+#!/usr/bin/env python
+# 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.
+
+# This tool checks for layering violations in the include/ directory.
+# It checks that:
+# - public includes don't end up depending on non-public /ext/ includes.
+# - public includes don't end up depending on private src/ headers.
+# - We use consistently <angle brackets> for other libraries.
+
+import os
+import re
+import subprocess
+import sys
+
+ROOT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+
+# TODO(primiano): fix violation from protozero -> base/logging.h .
+WHITELIST = [('include/perfetto/protozero/.*', 'perfetto/ext/base/logging.h')]
+
+
+def whitelisted(rel_path, incl):
+  for path_regex, incl_regex in WHITELIST:
+    if re.match(path_regex, rel_path) and re.match(incl_regex, incl):
+      return True
+  return False
+
+
+def main():
+  errors = 0
+  include_root = os.path.join(ROOT_DIR, 'include')
+  for root, _, files in os.walk(include_root):
+    for fname in files:
+      fpath = os.path.join(root, fname)
+      rel_path = os.path.relpath(fpath, ROOT_DIR)
+      if not os.path.isfile(fpath):
+        continue
+      if fpath.endswith('.cc'):
+        sys.stderr.write(
+            '.cc files not allowed in includes/ : ' + rel_path + '\n')
+        errors += 1
+        continue
+      if fpath.endswith('.h'):
+        with open(fpath) as f:
+          lines = f.readlines()
+        for line in lines:
+          m = re.findall(r'^#include "(.*\.h)"', line)
+          if not m:
+            continue
+          incl = m[0]
+
+          # Allow only #include "perfetto/..." and not "src/..." from include/.
+          if not incl.startswith('perfetto/'):
+            sys.stderr.write(
+                ('Public header %s is trying to include %s which is outside ' +
+                 'of include/. If you are trying to include a library use ' +
+                 ' <angle brackets> instead\n') % (rel_path, incl))
+            errors += 1
+            continue
+
+          # Public (non-/ext/) headers cannot include /ext/ headers.
+          if (not rel_path.startswith('include/perfetto/ext/') and
+                  incl.startswith('perfetto/ext/') and
+                  not whitelisted(rel_path, incl)):
+            sys.stderr.write(('Public header %s cannot include the non-public' +
+                              '/ext/ header %s.\n') % (rel_path, incl))
+            errors += 1
+            continue
+
+  return 0 if errors == 0 else 1
+
+
+if __name__ == '__main__':
+  sys.exit(main())
diff --git a/tools/diff_test_trace_processor.py b/tools/diff_test_trace_processor.py
index 08e15f5..14b0801 100755
--- a/tools/diff_test_trace_processor.py
+++ b/tools/diff_test_trace_processor.py
@@ -62,7 +62,13 @@
   with open(expected_path, "r") as expected_file:
     expected = expected_file.read()
 
-  cmd = [trace_processor_path, '--run-metrics', metric, gen_trace_path]
+  cmd = [
+    trace_processor_path,
+    '--run-metrics',
+    metric,
+    '--metrics-output=binary',
+    gen_trace_path,
+  ]
   actual = subprocess.check_output(cmd)
 
   # Expected will be in text proto format and we'll need to parse it to a real
@@ -144,7 +150,7 @@
   else:
     out_path = os.path.dirname(args.trace_processor)
     trace_protos_path = os.path.join(
-        out_path, "gcc_like_host", "gen", "protos", "trace")
+        out_path, "gen", "protos", "trace")
     trace_descriptor_path = os.path.join(trace_protos_path, "trace.descriptor")
 
   if args.metrics_descriptor:
@@ -152,7 +158,7 @@
   else:
     out_path = os.path.dirname(args.trace_processor)
     metrics_protos_path = os.path.join(
-        out_path, "gcc_like_host", "gen", "protos", "perfetto", "metrics")
+        out_path, "gen", "protos", "perfetto", "metrics")
     metrics_descriptor_path = os.path.join(metrics_protos_path,
                                            "metrics.descriptor")
 
diff --git a/tools/dump_ftrace_stats/main.cc b/tools/dump_ftrace_stats/main.cc
index 032aaa9..c28812d 100644
--- a/tools/dump_ftrace_stats/main.cc
+++ b/tools/dump_ftrace_stats/main.cc
@@ -16,12 +16,12 @@
 
 #include <signal.h>
 
-#include "perfetto/base/file_utils.h"
-#include "perfetto/base/string_splitter.h"
-#include "perfetto/base/string_utils.h"
-#include "perfetto/base/string_writer.h"
-#include "perfetto/base/unix_task_runner.h"
-#include "perfetto/base/utils.h"
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/string_splitter.h"
+#include "perfetto/ext/base/string_utils.h"
+#include "perfetto/ext/base/string_writer.h"
+#include "perfetto/ext/base/unix_task_runner.h"
+#include "perfetto/ext/base/utils.h"
 
 namespace perfetto {
 namespace {
diff --git a/tools/ftrace_proto_gen/ftrace_proto_gen.cc b/tools/ftrace_proto_gen/ftrace_proto_gen.cc
index 72dcbf8..1b7f7ed 100644
--- a/tools/ftrace_proto_gen/ftrace_proto_gen.cc
+++ b/tools/ftrace_proto_gen/ftrace_proto_gen.cc
@@ -23,11 +23,11 @@
 #include <fstream>
 #include <regex>
 
-#include "perfetto/base/file_utils.h"
 #include "perfetto/base/logging.h"
-#include "perfetto/base/pipe.h"
-#include "perfetto/base/string_splitter.h"
-#include "perfetto/base/string_utils.h"
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/pipe.h"
+#include "perfetto/ext/base/string_splitter.h"
+#include "perfetto/ext/base/string_utils.h"
 
 namespace perfetto {
 
diff --git a/tools/ftrace_proto_gen/ftrace_proto_gen_unittest.cc b/tools/ftrace_proto_gen/ftrace_proto_gen_unittest.cc
index 8943e7b..346cc94 100644
--- a/tools/ftrace_proto_gen/ftrace_proto_gen_unittest.cc
+++ b/tools/ftrace_proto_gen/ftrace_proto_gen_unittest.cc
@@ -15,7 +15,7 @@
  */
 
 #include "tools/ftrace_proto_gen/ftrace_proto_gen.h"
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace {
diff --git a/tools/ftrace_proto_gen/main.cc b/tools/ftrace_proto_gen/main.cc
index de15591..082acf5 100644
--- a/tools/ftrace_proto_gen/main.cc
+++ b/tools/ftrace_proto_gen/main.cc
@@ -27,8 +27,8 @@
 #include <google/protobuf/descriptor.h>
 #include <google/protobuf/descriptor.pb.h>
 
-#include "perfetto/base/file_utils.h"
 #include "perfetto/base/logging.h"
+#include "perfetto/ext/base/file_utils.h"
 #include "src/traced/probes/ftrace/format_parser.h"
 #include "tools/ftrace_proto_gen/ftrace_descriptor_gen.h"
 #include "tools/ftrace_proto_gen/ftrace_proto_gen.h"
diff --git a/tools/ftrace_proto_gen/proto_gen_utils.cc b/tools/ftrace_proto_gen/proto_gen_utils.cc
index 9e9f34e..79f0ea8 100644
--- a/tools/ftrace_proto_gen/proto_gen_utils.cc
+++ b/tools/ftrace_proto_gen/proto_gen_utils.cc
@@ -23,11 +23,11 @@
 #include <fstream>
 #include <regex>
 
-#include "perfetto/base/file_utils.h"
 #include "perfetto/base/logging.h"
-#include "perfetto/base/pipe.h"
-#include "perfetto/base/string_splitter.h"
-#include "perfetto/base/string_utils.h"
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/pipe.h"
+#include "perfetto/ext/base/string_splitter.h"
+#include "perfetto/ext/base/string_utils.h"
 
 namespace perfetto {
 
diff --git a/tools/gen_amalgamated b/tools/gen_amalgamated
index 20c64cb..77bc463 100755
--- a/tools/gen_amalgamated
+++ b/tools/gen_amalgamated
@@ -53,6 +53,12 @@
 # Includes which will be removed from the generated source.
 includes_to_remove = r'^(gtest).*$'
 
+default_cflags = [
+    # Since we're expanding header files into the generated source file, some
+    # constant may remain unused.
+    '-Wno-unused-const-variable'
+]
+
 # Build flags to satisfy a protobuf (lite or full) dependency.
 protobuf_cflags = [
     # Note that these point to the local copy of protobuf in buildtools. In
@@ -82,10 +88,6 @@
         'cflags': protobuf_cflags,
     },
     '//buildtools:protoc_lib': {'libs': ['protoc']},
-    # This prevents us from expanding the prod-only gtest header into a full
-    # gtest dependency. This also requires some patching in headers -- see
-    # AmalgamatedProject._patch_header() below.
-    '//gn:gtest_prod_config': {},
 }
 
 # ----------------------------------------------------------------------------
@@ -183,13 +185,15 @@
         self.source_deps = source_deps
         self.header = []
         self.source = []
-        self.cflags = set()  # Note that we don't support multi-arg flags.
+        # Note that we don't support multi-arg flags.
+        self.cflags = set(default_cflags)
         self.ldflags = set()
         self.defines = set()
         self.libs = set()
         self._dependency_tree = DependencyTree()
-        self._included_sources = set()
-        self._included_headers = set()
+        self._processed_sources = set()
+        self._processed_headers = set()
+        self._processed_source_headers = set()  # Header files included from .cc
         self._include_re = re.compile(r'#include "(.*)"')
 
     def add_target(self, target_name):
@@ -197,6 +201,7 @@
         self._dependency_tree.add_dependency(None, target_name)
         self._add_target_dependencies(target_name)
         self._add_target_flags(target_name)
+        self._add_target_headers(target_name)
 
     def _iterate_dep_edges(self, target_name):
         target = self.desc[target_name]
@@ -260,6 +265,15 @@
             self.defines.update(
                 apply_whitelist(define_whitelist, target.get('defines', [])))
 
+    def _add_target_headers(self, target_name):
+        target = self.desc[target_name]
+        if not 'sources' in target:
+            return
+        headers = [gn_utils.label_to_path(s)
+                   for s in target['sources'] if s.endswith('.h')]
+        for header in headers:
+            self._add_header(target_name, header)
+
     def _get_include_dirs(self, target_name):
         include_dirs = set()
         for target_name in self._iterate_target_and_deps(target_name):
@@ -269,28 +283,30 @@
                     [gn_utils.label_to_path(d) for d in target['include_dirs']])
         return include_dirs
 
-    def _add_header(self, include_dirs, allowed_files, header_name):
-        if header_name in self._included_headers:
+    def _add_source_included_header(
+            self, include_dirs, allowed_files, header_name):
+        if header_name in self._processed_source_headers:
             return
-        self._included_headers.add(header_name)
+        self._processed_source_headers.add(header_name)
         for include_dir in include_dirs:
             full_path = os.path.join(include_dir, header_name)
             if os.path.exists(full_path):
                 if not full_path in allowed_files:
                     return
                 with open(full_path) as f:
-                    self.header.append(
+                    self.source.append(
                         '// %s begin header: %s' % (tool_name, full_path))
-                    self.header.extend(self._patch_header(
-                        self._process_includes(include_dirs, allowed_files, f)))
+                    self.source.extend(
+                        self._process_source_includes(
+                            include_dirs, allowed_files, f))
                 return
         msg = 'Looked in %s' % ', '.join('"%s"' % d for d in include_dirs)
         raise Error('Header file %s not found. %s' % (header_name, msg))
 
     def _add_source(self, target_name, source_name):
-        if source_name in self._included_sources:
+        if source_name in self._processed_sources:
             return
-        self._included_sources.add(source_name)
+        self._processed_sources.add(source_name)
         include_dirs = self._get_include_dirs(target_name)
         deps = self.source_deps[source_name]
         if not os.path.exists(source_name):
@@ -300,20 +316,43 @@
                 '// %s begin source: %s' % (tool_name, source_name))
             try:
                 self.source.extend(self._patch_source(source_name,
-                    self._process_includes(include_dirs, deps, f)))
+                    self._process_source_includes(include_dirs, deps, f)))
             except Error as e:
                 raise Error(
                     'Failed adding source %s: %s' % (source_name, e.message))
 
-    def _patch_header(self, lines):
-        result = []
-        for line in lines:
-            # We don't want to propagate any gtest dependencies into the
-            # result, so remove any macros used from gtest_prod_util.h.
-            if 'FRIEND_TEST' in line:
-                continue
-            result.append(line)
-        return result
+    def _add_header_included_header(self, include_dirs, header_name):
+        if header_name in self._processed_headers:
+            return
+        self._processed_headers.add(header_name)
+        for include_dir in include_dirs:
+            full_path = os.path.join(include_dir, header_name)
+            if os.path.exists(full_path):
+                with open(full_path) as f:
+                    self.header.append(
+                        '// %s begin header: %s' % (tool_name, full_path))
+                    self.header.extend(
+                        self._process_header_includes(include_dirs, f))
+                return
+        msg = 'Looked in %s' % ', '.join('"%s"' % d for d in include_dirs)
+        raise Error('Header file %s not found. %s' % (header_name, msg))
+
+    def _add_header(self, target_name, header_name):
+        if header_name in self._processed_headers:
+            return
+        self._processed_headers.add(header_name)
+        include_dirs = self._get_include_dirs(target_name)
+        if not os.path.exists(header_name):
+            raise Error('Header file %s not found' % source_name)
+        with open(header_name) as f:
+            self.header.append(
+                '// %s begin header: %s' % (tool_name, header_name))
+            try:
+                self.header.extend(
+                    self._process_header_includes(include_dirs, f))
+            except Error as e:
+                raise Error(
+                    'Failed adding header %s: %s' % (header_name, e.message))
 
     def _patch_source(self, source_name, lines):
         result = []
@@ -327,7 +366,7 @@
             result.append(line)
         return result
 
-    def _process_includes(self, include_dirs, allowed_files, file):
+    def _process_source_includes(self, include_dirs, allowed_files, file):
         result = []
         for line in file:
             line = line.rstrip('\n')
@@ -339,7 +378,23 @@
                 result.append('// %s removed: %s' % (tool_name, line))
             else:
                 result.append('// %s expanded: %s' % (tool_name, line))
-                self._add_header(include_dirs, allowed_files, m.group(1))
+                self._add_source_included_header(
+                    include_dirs, allowed_files, m.group(1))
+        return result
+
+    def _process_header_includes(self, include_dirs, file):
+        result = []
+        for line in file:
+            line = line.rstrip('\n')
+            m = self._include_re.match(line)
+            if not m:
+                result.append(line)
+                continue
+            elif re.match(includes_to_remove, m.group(1)):
+                result.append('// %s removed: %s' % (tool_name, line))
+            else:
+                result.append('// %s expanded: %s' % (tool_name, line))
+                self._add_header_included_header(include_dirs, m.group(1))
         return result
 
     def generate(self):
diff --git a/tools/gen_android_bp b/tools/gen_android_bp
index b01a476..4118f94 100755
--- a/tools/gen_android_bp
+++ b/tools/gen_android_bp
@@ -164,7 +164,6 @@
 builtin_deps = {
     '//buildtools:gmock': enable_gmock,
     '//buildtools:gtest': enable_gtest,
-    '//gn:gtest_prod_config': enable_gtest_prod,
     '//buildtools:gtest_main': enable_gtest,
     '//buildtools:libunwind': enable_libunwind,
     '//buildtools:protobuf_full': enable_protobuf_full,
diff --git a/tools/gen_bazel b/tools/gen_bazel
index e83bd96..c430fbe 100755
--- a/tools/gen_bazel
+++ b/tools/gen_bazel
@@ -117,7 +117,6 @@
     '//buildtools:protoc': disable_module,
     '//buildtools:sqlite': enable_sqlite,
     '//gn:default_deps': disable_module,
-    '//gn:gtest_prod_config': enable_gtest_prod,
     '//gn:protoc_lib_deps': enable_protobuf_full,
     '//gn/standalone:gen_git_revision': enable_perfetto_version,
 }
@@ -226,7 +225,7 @@
     assert type in ('cc_binary', 'cc_library', 'cc_proto_library',
                     'proto_library', 'filegroup', 'alias',
                     'pbzero_cc_proto_library', 'genrule',
-                    'transitive_descriptor_set', )
+                    'transitive_descriptor_set', 'java_proto_library' )
     self.type = type
     self.name = name
     self.srcs = set()
@@ -369,7 +368,7 @@
         module_desc: JSON GN description of the module.
         visibility: Whether the module is visible with respect to the target.
     """
-    for src in module_desc['sources']:
+    for src in module_desc.get('sources', []):
       label = Label(gn_utils.label_to_path(src))
       if target.type == 'cc_library' and is_public_header(src):
         target.hdrs.add(label)
@@ -400,7 +399,8 @@
 
       # Any source set which has a source generated by an action doesn't need
       # to be depended on as we will depend on the action directly.
-      if any(src in self.action_generated_files for src in dep_desc['sources']):
+      sources = dep_desc.get('sources', [])
+      if any(src in self.action_generated_files for src in sources):
         return
 
       self.apply_module_sources_to_target(target, dep_desc)
@@ -536,6 +536,15 @@
           Label("//third_party/perfetto/protos:" + proto_target.name))
       self.proto_build.add_target(cc_target)
 
+      java_target_name = proto_target.name + "_java_proto"
+      java_target = Target('java_proto_library',
+                           java_target_name,
+                           gn_name=gn_target_name_no_toolchain)
+      java_target.visibility.add("//visibility:public")
+      java_target.deps.add(
+          Label("//third_party/perfetto/protos:" + proto_target.name))
+      self.proto_build.add_target(java_target)
+
     return (proto_target, cc_target)
 
 
diff --git a/tools/gen_merged_sql_metrics.py b/tools/gen_merged_sql_metrics.py
index 319d0d3..ba261b4 100755
--- a/tools/gen_merged_sql_metrics.py
+++ b/tools/gen_merged_sql_metrics.py
@@ -104,7 +104,8 @@
     for path in sql_outputs.keys():
       name = os.path.basename(path)
       variable = filename_to_variable(os.path.splitext(name)[0])
-      output.write('\n  {{"{}", {}}},\n'.format(path, variable))
+      path_escaped = path.encode('string_escape')
+      output.write('\n  {{"{}", {}}},\n'.format(path_escaped, variable))
     output.write("};\n")
 
     output.write(NAMESPACE_END)
diff --git a/tools/gen_tracing_cpp_headers_from_protos b/tools/gen_tracing_cpp_headers_from_protos
index 44187a7..e02c539 100755
--- a/tools/gen_tracing_cpp_headers_from_protos
+++ b/tools/gen_tracing_cpp_headers_from_protos
@@ -17,7 +17,7 @@
 import subprocess
 import sys
 
-CORE_H = 'include/perfetto/tracing/core'
+CORE_H = 'include/perfetto/ext/tracing/core'
 CORE_CPP = 'src/tracing/core'
 
 PROTOS = (
@@ -40,9 +40,9 @@
 )
 
 
-HEADER_PATH = 'include/perfetto/tracing/core'
+HEADER_PATH = 'include/perfetto/ext/tracing/core'
 CPP_PATH = 'src/tracing/core'
-INCLUDE_PATH = 'perfetto/tracing/core'
+INCLUDE_PATH = 'perfetto/ext/tracing/core'
 ROOT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 
 
diff --git a/tools/heap_profile b/tools/heap_profile
index 96681a3..7f9395a 100755
--- a/tools/heap_profile
+++ b/tools/heap_profile
@@ -137,6 +137,11 @@
                       "profile.")
   parser.add_argument("--no-versions", action="store_true",
                       help="Do not get version information about APKs.")
+  parser.add_argument("--no-running", action="store_true",
+                      help="Do not target already running processes.")
+  parser.add_argument("--no-startup", action="store_true",
+                      help="Do not target processes that start during "
+                      "the profile.")
   parser.add_argument("--shmem-size", help="Size of buffer between client and "
                       "heapprofd. Default 8MiB. Needs to be a power of two "
                       "multiple of 4096, at least 8192.", type=int,
@@ -183,6 +188,10 @@
     target_cfg += "block_client: true\n"
   if args.idle_allocations:
     target_cfg += "idle_allocations: true\n"
+  if args.no_startup:
+    target_cfg += "no_startup: true\n"
+  if args.no_running:
+    target_cfg += "no_running: true\n"
   if args.pid:
     for pid in args.pid.split(','):
       try:
diff --git a/tools/install-build-deps b/tools/install-build-deps
index f8c41dd..aa755e1 100755
--- a/tools/install-build-deps
+++ b/tools/install-build-deps
@@ -44,43 +44,43 @@
 BUILD_DEPS_HOST = [
   # GN
   ('buildtools/mac/gn',
-   'https://storage.googleapis.com/chromium-gn/9be792dd9010ce303a9c3a497a67bcc5ac8c7666',
-   '9be792dd9010ce303a9c3a497a67bcc5ac8c7666',
+   'https://storage.googleapis.com/perfetto/gn-mac-b5b65ca39d93a7cde9fa713be31b114755252f28',
+   'b5b65ca39d93a7cde9fa713be31b114755252f28',
    'darwin'
   ),
   ('buildtools/linux64/gn',
-   'https://storage.googleapis.com/chromium-gn/2f27ff0b6118e5886df976da5effa6003d19d1ce',
-   '2f27ff0b6118e5886df976da5effa6003d19d1ce',
+   'https://storage.googleapis.com/perfetto/gn-linux64-1370d9c5358868b7b66292821b6fe61950826870',
+   '1370d9c5358868b7b66292821b6fe61950826870',
    'linux2'
   ),
 
   # clang-format
   ('buildtools/mac/clang-format',
-   'https://storage.googleapis.com/chromium-clang-format/0679b295e2ce2fce7919d1e8d003e497475f24a3',
-   '0679b295e2ce2fce7919d1e8d003e497475f24a3',
+   'https://storage.googleapis.com/chromium-clang-format/025ca7c75f37ef4a40f3a67d81ddd11d7d0cdb9b',
+   '025ca7c75f37ef4a40f3a67d81ddd11d7d0cdb9b',
    'darwin'
   ),
   ('buildtools/linux64/clang-format',
-   'https://storage.googleapis.com/chromium-clang-format/5349d1954e17f6ccafb6e6663b0f13cdb2bb33c8',
-   '5349d1954e17f6ccafb6e6663b0f13cdb2bb33c8',
+   'https://storage.googleapis.com/chromium-clang-format/942fc8b1789144b8071d3fc03ff0fcbe1cf81ac8',
+   '942fc8b1789144b8071d3fc03ff0fcbe1cf81ac8',
    'linux2'
   ),
   # Keep the SHA1 in sync with |clang_format_rev| in chromium //buildtools/DEPS.
   ('buildtools/clang_format/script',
    'https://chromium.googlesource.com/chromium/llvm-project/cfe/tools/clang-format.git',
-   '0653eee0c81ea04715c635dd0885e8096ff6ba6d',
+   '96636aa0e9f047f17447f2d45a094d0b59ed7917',
    'all'
   ),
 
   # Ninja
   ('buildtools/mac/ninja',
-   'https://storage.googleapis.com/fuchsia-build/fuchsia/ninja/mac/a1db595e824c50cf565fbf0af2437fd91b7babf4',
-   'a1db595e824c50cf565fbf0af2437fd91b7babf4',
+   'https://storage.googleapis.com/perfetto/ninja-mac-c15b0698da038b2bd2e8970c14c75fadc06b1add',
+   'c15b0698da038b2bd2e8970c14c75fadc06b1add',
    'darwin'
   ),
   ('buildtools/linux64/ninja',
-   'https://storage.googleapis.com/fuchsia-build/fuchsia/ninja/linux64/d35b36c84a09f7e38b25947cafada10e8bf835bc',
-   'd35b36c84a09f7e38b25947cafada10e8bf835bc',
+   'https://storage.googleapis.com/perfetto/ninja-linux64-c866952bda50c29a669222477309287119bbb7e8',
+   'c866952bda50c29a669222477309287119bbb7e8',
    'linux2'
   ),
 
@@ -102,25 +102,25 @@
   # lib from sources. Keep the SHA1s in sync with Chrome's src/buildtools/DEPS.
   ('buildtools/libcxx',
    'https://chromium.googlesource.com/chromium/llvm-project/libcxx.git',
-   '2199647acb904b91eea0a5e045f5b227c87d6e85',
+   '5938e0582bac570a41edb3d6a2217c299adc1bc6',
    'all'
   ),
   ('buildtools/libcxxabi',
    'https://chromium.googlesource.com/chromium/llvm-project/libcxxabi.git',
-   'c3f4753f7139c73063304235781e4f7788a94c06',
+   '0d529660e32d77d9111912d73f2c74fc5fa2a858',
    'all'
   ),
   ('buildtools/libunwind',
    'https://chromium.googlesource.com/external/llvm.org/libunwind.git',
-   '317087cfd8e608bd24e53934d59b5b85e0a9ded6',
+   '69d9b84cca8354117b9fe9705a4430d789ee599b',
    'all'
   ),
 
-  # Keep the revision in sync with Chrome's CLANG_REVISION in
+  # Keep the revision in sync with Chrome's PACKAGE_VERSION in
   # tools/clang/scripts/update.py.
   ('buildtools/clang.tgz',
-   'https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/clang-346388-1.tgz',
-   'c2998d67a9c623fe12e01a33e8b7cf437b396099',
+   'https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/clang-361212-67510fac-4.tgz',
+   '5bdd995f13a8b67c98062394d0869c6a409e02b8',
    'linux2'
   ),
 
diff --git a/tools/sanitizers_unittests/sanitizers_unittest.cc b/tools/sanitizers_unittests/sanitizers_unittest.cc
index 5f61f2f..85de65c 100644
--- a/tools/sanitizers_unittests/sanitizers_unittest.cc
+++ b/tools/sanitizers_unittests/sanitizers_unittest.cc
@@ -21,7 +21,7 @@
 
 #include <memory>
 
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
 
 namespace perfetto {
 namespace {
diff --git a/tools/skippy/skippy.cc b/tools/skippy/skippy.cc
index 7c33ea8..f2e202f 100644
--- a/tools/skippy/skippy.cc
+++ b/tools/skippy/skippy.cc
@@ -20,7 +20,7 @@
 #include <unistd.h>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/time.h"
+#include "perfetto/ext/base/time.h"
 
 // Skippy is a program that produces a visually identifiable stepping pattern
 // in the systrace UI that is useful for debugging dropped or corrupted data.
diff --git a/tools/trace_processor b/tools/trace_processor
new file mode 100755
index 0000000..8301889
--- /dev/null
+++ b/tools/trace_processor
@@ -0,0 +1,82 @@
+#!/usr/bin/env python
+# 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.
+
+# This file should do the same thing when being invoked in any of these ways:
+# ./trace_processor
+# python trace_processor
+# bash trace_processor
+# cat ./trace_processor | bash
+# cat ./trace_processor | python -
+
+BASH_FALLBACK=""" "
+exec python - "$@" <<'#'EOF
+#"""
+
+import hashlib
+import os
+import sys
+import tempfile
+import urllib
+
+TRACE_PROCESSOR_SHELL_SHAS = {
+  'linux': 'c8208066d1b88f42abc59c3389acce62ae0e8773',
+  'mac': '66df2dc8c52c2c93569aa34d7997cdcd7bd09e3b',
+}
+TRACE_PROCESSOR_SHELL_PATH = tempfile.gettempdir()
+TRACE_PROCESSOR_SHELL_BASE_URL = (
+    'https://storage.googleapis.com/perfetto/')
+
+def check_hash(file_name, sha_value):
+  with open(file_name, 'rb') as fd:
+    file_hash = hashlib.sha1(fd.read()).hexdigest()
+    return file_hash == sha_value
+
+def load_trace_processor_shell(platform):
+  sha_value = TRACE_PROCESSOR_SHELL_SHAS[platform]
+  file_name = 'trace_processor_shell-' + platform + '-' + sha_value
+  local_file = os.path.join(TRACE_PROCESSOR_SHELL_PATH, file_name)
+
+  if os.path.exists(local_file):
+    if not check_hash(local_file, sha_value):
+      os.remove(local_file)
+    else:
+      return local_file
+
+  url = TRACE_PROCESSOR_SHELL_BASE_URL + file_name
+  urllib.urlretrieve(url, local_file)
+  if not check_hash(local_file, sha_value):
+    os.remove(local_file)
+    raise ValueError("Invalid signature.")
+  os.chmod(local_file, 0o755)
+  return local_file
+
+def main(argv):
+  platform = None
+  if sys.platform.startswith('linux'):
+    platform = 'linux'
+  elif sys.platform.startswith('darwin'):
+    platform = 'mac'
+  else:
+    print("Invalid platform: {}".format(sys.platform))
+    return 1
+
+  trace_processor_shell_binary = load_trace_processor_shell(platform)
+  os.execv(trace_processor_shell_binary,
+           [trace_processor_shell_binary] + argv[1:])
+
+if __name__ == '__main__':
+  sys.exit(main(sys.argv))
+
+#EOF
diff --git a/tools/trace_to_text/BUILD.gn b/tools/trace_to_text/BUILD.gn
index 94f1c06..82a2de7 100644
--- a/tools/trace_to_text/BUILD.gn
+++ b/tools/trace_to_text/BUILD.gn
@@ -22,8 +22,7 @@
   public_deps = [
     "../../gn:default_deps",
     "../../include/perfetto/base",
-    "../../include/perfetto/trace_processor:trace_processor",
-    "../../include/perfetto/traced:sys_stats_counters",
+    "../../include/perfetto/ext/traced:sys_stats_counters",
     "../../protos/perfetto/trace:lite",
     "../../protos/perfetto/trace/ftrace:lite",
     "../../protos/perfetto/trace/profiling:lite",
diff --git a/tools/trace_to_text/trace_to_profile.cc b/tools/trace_to_text/trace_to_profile.cc
index fce5f0b..1170a39 100644
--- a/tools/trace_to_text/trace_to_profile.cc
+++ b/tools/trace_to_text/trace_to_profile.cc
@@ -26,9 +26,10 @@
 
 #include "tools/trace_to_text/utils.h"
 
-#include "perfetto/base/file_utils.h"
 #include "perfetto/base/logging.h"
-#include "perfetto/base/temp_file.h"
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/temp_file.h"
+#include "perfetto/ext/base/utils.h"
 
 #include "perfetto/trace/profiling/profile_packet.pb.h"
 #include "perfetto/trace/trace.pb.h"
diff --git a/tools/trace_to_text/trace_to_systrace.cc b/tools/trace_to_text/trace_to_systrace.cc
index 0b5d793..ffb503e 100644
--- a/tools/trace_to_text/trace_to_systrace.cc
+++ b/tools/trace_to_text/trace_to_systrace.cc
@@ -27,8 +27,9 @@
 
 #include "perfetto/base/build_config.h"
 #include "perfetto/base/logging.h"
-#include "perfetto/base/paged_memory.h"
-#include "perfetto/base/string_writer.h"
+#include "perfetto/ext/base/paged_memory.h"
+#include "perfetto/ext/base/string_writer.h"
+#include "perfetto/ext/base/utils.h"
 #include "perfetto/trace_processor/trace_processor.h"
 
 // When running in Web Assembly, fflush() is a no-op and the stdio buffering
diff --git a/tools/trace_to_text/trace_to_text.cc b/tools/trace_to_text/trace_to_text.cc
index 872fe58..899192f 100644
--- a/tools/trace_to_text/trace_to_text.cc
+++ b/tools/trace_to_text/trace_to_text.cc
@@ -22,7 +22,7 @@
 #include <google/protobuf/text_format.h>
 
 #include "perfetto/base/logging.h"
-#include "perfetto/base/scoped_file.h"
+#include "perfetto/ext/base/scoped_file.h"
 #include "tools/trace_to_text/proto_full_utils.h"
 #include "tools/trace_to_text/utils.h"
 
diff --git a/tools/trace_to_text/utils.cc b/tools/trace_to_text/utils.cc
index 111f5d4..328d25e 100644
--- a/tools/trace_to_text/utils.cc
+++ b/tools/trace_to_text/utils.cc
@@ -24,8 +24,8 @@
 #include <utility>
 
 #include "perfetto/base/logging.h"
+#include "perfetto/ext/traced/sys_stats_counters.h"
 #include "perfetto/trace/ftrace/ftrace_stats.pb.h"
-#include "perfetto/traced/sys_stats_counters.h"
 
 #include "perfetto/trace/trace.pb.h"
 #include "perfetto/trace/trace_packet.pb.h"
diff --git a/tools/update_trace_processor b/tools/update_trace_processor
new file mode 100755
index 0000000..6601ca9
--- /dev/null
+++ b/tools/update_trace_processor
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+set -e
+
+DIR=$(mktemp -d out/perfetto.XXXXXX)
+
+function cleanup {
+  rm -rf "$DIR"
+  echo "Deleted temp working directory $DIR"
+}
+
+#trap cleanup EXIT
+
+function is_mac {
+  ! test -d /proc
+  return $?
+}
+
+tools/gn gen $DIR --args='is_clang=true is_debug=false'
+tools/ninja -C $DIR trace_processor_shell
+
+if which shasum; then
+  NEW_SHA=$(shasum $DIR/trace_processor_shell | cut -f1 -d' ') # Mac OS
+else
+  NEW_SHA=$(sha1sum $DIR/trace_processor_shell | cut -f1 -d' ') # Linux
+fi
+
+if is_mac; then
+  platform=mac
+else
+  platform=linux
+fi
+
+name=trace_processor_shell-$platform-$NEW_SHA
+
+gsutil cp $DIR/trace_processor_shell gs://perfetto/$name
+gsutil acl ch -u AllUsers:R gs://perfetto/$name
+
+echo 'Now run the following command to update tools/trace_processor:'
+echo "sed \"s/'$platform': '[^']*',/'$platform': '$NEW_SHA',/\" --in-place tools/trace_processor"
diff --git a/ui/src/common/actions.ts b/ui/src/common/actions.ts
index 2ae7a31..844448b 100644
--- a/ui/src/common/actions.ts
+++ b/ui/src/common/actions.ts
@@ -25,10 +25,19 @@
   State,
   Status,
   TraceTime,
+  TrackState,
 } from './state';
 
 type StateDraft = Draft<State>;
 
+export interface AddTrackArgs {
+  id?: string;
+  engineId: string;
+  kind: string;
+  name: string;
+  trackGroup?: string;
+  config: {};
+}
 
 function clearTraceState(state: StateDraft) {
   const nextId = state.nextId;
@@ -73,7 +82,20 @@
     state.route = `/viewer`;
   },
 
-  addTrack(state: StateDraft, args: {
+  addTracks(state: StateDraft, args: {tracks: AddTrackArgs[]}) {
+    args.tracks.forEach(track => {
+      const id = track.id === undefined ? `${state.nextId++}` : track.id;
+      track.id = id;
+      state.tracks[id] = track as TrackState;
+      if (track.trackGroup === SCROLLING_TRACK_GROUP) {
+        state.scrollingTracks.push(id);
+      } else if (track.trackGroup !== undefined) {
+        assertExists(state.trackGroups[track.trackGroup]).tracks.push(id);
+      }
+    });
+  },
+
+  addTrack(state: State, args: {
     id?: string; engineId: string; kind: string; name: string;
     trackGroup?: string;
     config: {};
diff --git a/ui/src/common/state.ts b/ui/src/common/state.ts
index 2f250c2..ee4a025 100644
--- a/ui/src/common/state.ts
+++ b/ui/src/common/state.ts
@@ -178,6 +178,7 @@
   cpuFreq: boolean;
   cpuCoarse: boolean;
   cpuCoarsePollMs: number;
+  cpuSyscall: boolean;
 
   ftrace: boolean;
   atrace: boolean;
@@ -220,6 +221,7 @@
     cpuSched: false,
     cpuLatency: false,
     cpuFreq: false,
+    cpuSyscall: false,
 
     ftrace: false,
     atrace: false,
diff --git a/ui/src/controller/record_controller.ts b/ui/src/controller/record_controller.ts
index 9d1bf84..7f62ba6 100644
--- a/ui/src/controller/record_controller.ts
+++ b/ui/src/controller/record_controller.ts
@@ -90,6 +90,11 @@
     ftraceEvents.add('power/suspend_resume');
   }
 
+  if (uiCfg.cpuSyscall) {
+    ftraceEvents.add('raw_syscalls/sys_enter');
+    ftraceEvents.add('raw_syscalls/sys_exit');
+  }
+
   if (procThreadAssociationFtrace) {
     ftraceEvents.add('sched/sched_process_exit');
     ftraceEvents.add('sched/sched_process_free');
diff --git a/ui/src/controller/trace_controller.ts b/ui/src/controller/trace_controller.ts
index dd3dc3f..937fb6a 100644
--- a/ui/src/controller/trace_controller.ts
+++ b/ui/src/controller/trace_controller.ts
@@ -19,6 +19,7 @@
 import {assertExists, assertTrue} from '../base/logging';
 import {
   Actions,
+  AddTrackArgs,
   DeferredAction,
 } from '../common/actions';
 import {Engine} from '../common/engine';
@@ -48,7 +49,6 @@
 
 type States = 'init'|'loading_trace'|'ready';
 
-
 declare interface FileReaderSync { readAsArrayBuffer(blob: Blob): ArrayBuffer; }
 
 declare var FileReaderSync:
@@ -221,8 +221,8 @@
     this.updateStatus('Loading tracks');
 
     const engine = assertExists<Engine>(this.engine);
-    const addToTrackActions: DeferredAction[] = [];
     const numCpus = await engine.getNumberOfCpus();
+    const tracksToAdd: AddTrackArgs[] = [];
 
     // TODO(hjd): Renable Vsync tracks when fixed.
     //// TODO(hjd): Move this code out of TraceController.
@@ -250,7 +250,7 @@
     `);
 
     for (let cpu = 0; cpu < numCpus; cpu++) {
-      addToTrackActions.push(Actions.addTrack({
+      tracksToAdd.push({
         engineId: this.engineId,
         kind: CPU_SLICE_TRACK_KIND,
         name: `Cpu ${cpu}`,
@@ -258,7 +258,7 @@
         config: {
           cpu,
         }
-      }));
+      });
     }
 
     for (let cpu = 0; cpu < numCpus; cpu++) {
@@ -273,7 +273,7 @@
         limit 1;
       `);
       if (freqExists.numRecords > 0) {
-        addToTrackActions.push(Actions.addTrack({
+        tracksToAdd.push({
           engineId: this.engineId,
           kind: CPU_FREQ_TRACK_KIND,
           name: `Cpu ${cpu} Frequency`,
@@ -282,42 +282,49 @@
             cpu,
             maximumValue: +maxFreq.columns[0].doubleValues![0],
           }
-        }));
+        });
       }
     }
 
     const counters = await engine.query(`
-      select name, ref, ref_type, count(ref_type)
+      select name, ref, ref_type
       from counter_definitions
       where ref is not null
       group by name, ref, ref_type
       order by ref_type desc
     `);
-    const counterUpids = new Set<number>();
-    const counterUtids = new Set<number>();
-    for (let i = 0; i < counters.numRecords; i++) {
-      const ref = +counters.columns[1].longValues![i];
-      const refType = counters.columns[2].stringValues![i];
-      if (refType === 'upid') counterUpids.add(ref);
-      if (refType === 'utid') counterUtids.add(ref);
+
+    interface CounterMap {
+      [index: number]: string[];
     }
 
-    // Add all the global counter tracks that are not bound to any pid/tid,
-    // the ones for which refType == NULL.
+    const counterUpids: CounterMap = new Array();
+    const counterUtids: CounterMap = new Array();
     for (let i = 0; i < counters.numRecords; i++) {
       const name = counters.columns[0].stringValues![i];
+      const ref = +counters.columns[1].longValues![i];
       const refType = counters.columns[2].stringValues![i];
-      if (refType !== '[NULL]') continue;
-      addToTrackActions.push(Actions.addTrack({
-        engineId: this.engineId,
-        kind: 'CounterTrack',
-        name,
-        trackGroup: SCROLLING_TRACK_GROUP,
-        config: {
+      if (refType === 'upid') {
+        const el = counterUpids[ref];
+        el === undefined ? counterUpids[ref] = [name] :
+                           counterUpids[ref].push(name);
+      } else if (refType === 'utid') {
+        const el = counterUtids[ref];
+        el === undefined ? counterUtids[ref] = [name] :
+                           counterUtids[ref].push(name);
+      } else if (refType === '[NULL]') {
+        // Add global counter tracks that are not bound to any pid/tid.
+        tracksToAdd.push({
+          engineId: this.engineId,
+          kind: 'CounterTrack',
           name,
-          ref: 0,
-        }
-      }));
+          trackGroup: SCROLLING_TRACK_GROUP,
+          config: {
+            name,
+            ref: 0,
+          }
+        });
+      }
     }
 
     // Local experiments shows getting maxDepth separately is ~2x faster than
@@ -357,7 +364,6 @@
 
     const upidToUuid = new Map<number, string>();
     const utidToUuid = new Map<number, string>();
-    const addSummaryTrackActions: DeferredAction[] = [];
     const addTrackGroupActions: DeferredAction[] = [];
 
     for (const row of rawQueryToRows(threadQuery, {
@@ -382,13 +388,14 @@
 
       const maxDepth = utid === null ? undefined : utidToMaxDepth.get(utid);
       if (maxDepth === undefined &&
-          (upid === null || !counterUpids.has(upid)) &&
-          !counterUtids.has(utid) && !threadHasSched) {
+          (upid === null || counterUpids[upid] === undefined) &&
+          counterUtids[utid] === undefined && !threadHasSched) {
         continue;
       }
 
       // Group by upid if present else by utid.
       let pUuid = upid === null ? utidToUuid.get(utid) : upidToUuid.get(upid);
+      // These should only happen once for each track group.
       if (pUuid === undefined) {
         pUuid = uuidv4();
         const summaryTrackId = uuidv4();
@@ -401,13 +408,14 @@
         const pidForColor = pid || tid || upid || utid || 0;
         const kind = hasSchedEvents ? PROCESS_SCHEDULING_TRACK_KIND :
                                       PROCESS_SUMMARY_TRACK;
-        addSummaryTrackActions.push(Actions.addTrack({
+
+        tracksToAdd.push({
           id: summaryTrackId,
           engineId: this.engineId,
           kind,
           name: `${upid === null ? tid : pid} summary`,
           config: {pidForColor, upid, utid},
-        }));
+        });
 
         addTrackGroupActions.push(Actions.addTrackGroup({
           engineId: this.engineId,
@@ -418,77 +426,73 @@
           collapsed: true,
         }));
 
-        for (let i = 0; i < counters.numRecords; i++) {
-          const name = counters.columns[0].stringValues![i];
-          const ref = counters.columns[1].longValues![i];
-          const refType = counters.columns[2].stringValues![i];
-          if (refType !== 'upid' || ref !== upid) continue;
-          addTrackGroupActions.push(Actions.addTrack({
-            engineId: this.engineId,
-            kind: 'CounterTrack',
-            name,
-            trackGroup: pUuid,
-            config: {
-              name,
-              ref,
-            }
-          }));
+        if (upid !== null) {
+          const counterNames = counterUpids[upid];
+          if (counterNames !== undefined) {
+            counterNames.forEach(element => {
+              tracksToAdd.push({
+                engineId: this.engineId,
+                kind: 'CounterTrack',
+                name: element,
+                trackGroup: pUuid,
+                config: {
+                  name: element,
+                  ref: upid,
+                }
+              });
+            });
+          }
         }
       }
-
-      for (let i = 0; i < counters.numRecords; i++) {
-        const name = counters.columns[0].stringValues![i];
-        const ref = counters.columns[1].longValues![i];
-        const refType = counters.columns[2].stringValues![i];
-
-        if (refType !== 'utid' || ref !== utid) continue;
-        addTrackGroupActions.push(Actions.addTrack({
-          engineId: this.engineId,
-          kind: 'CounterTrack',
-          name,
-          trackGroup: pUuid,
-          config: {
-            name,
-            ref,
-          }
-        }));
+      const counterThreadNames = counterUtids[utid];
+      if (counterThreadNames !== undefined) {
+        counterThreadNames.forEach(element => {
+          tracksToAdd.push({
+            engineId: this.engineId,
+            kind: 'CounterTrack',
+            name: element,
+            trackGroup: pUuid,
+            config: {
+              name: element,
+              ref: utid,
+            }
+          });
+        });
       }
-
       if (threadHasSched) {
-        addToTrackActions.push(Actions.addTrack({
+        tracksToAdd.push({
           engineId: this.engineId,
           kind: THREAD_STATE_TRACK_KIND,
           name: `${threadName} [${tid}]`,
           trackGroup: pUuid,
           config: {utid}
-        }));
+        });
       }
 
       if (maxDepth !== undefined) {
-        addToTrackActions.push(Actions.addTrack({
+        tracksToAdd.push({
           engineId: this.engineId,
           kind: SLICE_TRACK_KIND,
           name: `${threadName} [${tid}]`,
           trackGroup: pUuid,
           config: {upid, utid, maxDepth},
-        }));
+        });
       }
     }
 
     const logCount = await engine.query(`select count(1) from android_logs`);
     if (logCount.columns[0].longValues![0] > 0) {
-      addToTrackActions.push(Actions.addTrack({
+      tracksToAdd.push({
         engineId: this.engineId,
         kind: ANDROID_LOGS_TRACK_KIND,
         name: 'Android logs',
         trackGroup: SCROLLING_TRACK_GROUP,
         config: {}
-      }));
+      });
     }
 
-    const allActions =
-        addSummaryTrackActions.concat(addTrackGroupActions, addToTrackActions);
-    globals.dispatchMultiple(allActions);
+    addTrackGroupActions.push(Actions.addTracks({tracks: tracksToAdd}));
+    globals.dispatchMultiple(addTrackGroupActions);
   }
 
   private async listThreads() {
diff --git a/ui/src/frontend/record_page.ts b/ui/src/frontend/record_page.ts
index f2072ea..207b261 100644
--- a/ui/src/frontend/record_page.ts
+++ b/ui/src/frontend/record_page.ts
@@ -237,6 +237,12 @@
                 task Y that X's transition (e.g. posting a semaphore).`,
         setEnabled: (cfg, val) => cfg.cpuLatency = val,
         isEnabled: (cfg) => cfg.cpuLatency
+      } as ProbeAttrs),
+      m(Probe, {
+        title: 'Syscalls',
+        descr: `Tracks the enter and exit of all syscalls.`,
+        setEnabled: (cfg, val) => cfg.cpuSyscall = val,
+        isEnabled: (cfg) => cfg.cpuSyscall
       } as ProbeAttrs));
 }
 
