diff --git a/audio/test/pc_low_bandwidth_audio_test.cc b/audio/test/pc_low_bandwidth_audio_test.cc
index cb50bea..dbc2376 100644
--- a/audio/test/pc_low_bandwidth_audio_test.cc
+++ b/audio/test/pc_low_bandwidth_audio_test.cc
@@ -11,6 +11,7 @@
 #include <memory>
 
 #include "absl/flags/declare.h"
+#include "absl/flags/flag.h"
 #include "api/test/create_network_emulation_manager.h"
 #include "api/test/create_peerconnection_quality_test_fixture.h"
 #include "api/test/network_emulation_manager.h"
diff --git a/rtc_tools/BUILD.gn b/rtc_tools/BUILD.gn
index d833f0a..b8158f6 100644
--- a/rtc_tools/BUILD.gn
+++ b/rtc_tools/BUILD.gn
@@ -17,12 +17,12 @@
   deps = [
     ":frame_analyzer",
     ":video_file_reader",
-    ":video_quality_analysis",
   ]
   if (!build_with_chromium) {
     deps += [
       ":psnr_ssim_analyzer",
       ":rgba_to_i420_converter",
+      ":video_quality_analysis",
     ]
     if (rtc_enable_protobuf) {
       deps += [ ":chart_proto" ]
diff --git a/test/BUILD.gn b/test/BUILD.gn
index 793ca4f..974848b 100644
--- a/test/BUILD.gn
+++ b/test/BUILD.gn
@@ -22,13 +22,13 @@
     ":test_renderer",
     ":test_support",
     ":video_test_common",
-    "pc/e2e",
   ]
 
   if (rtc_include_tests) {
     deps += [
       ":test_main",
       ":test_support_unittests",
+      "pc/e2e",
     ]
   }
 }
@@ -234,10 +234,7 @@
     "../rtc_base:logging",
     "../rtc_base:rtc_numerics",
   ]
-  absl_deps = [
-    "//third_party/abseil-cpp/absl/flags:flag",
-    "//third_party/abseil-cpp/absl/types:optional",
-  ]
+  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
   if (rtc_enable_protobuf) {
     sources += [ "testsupport/perf_test_histogram_writer.cc" ]
     deps += [
@@ -375,6 +372,16 @@
 }
 
 if (rtc_include_tests) {
+  rtc_library("resources_dir_flag") {
+    testonly = true
+    visibility = [ "*" ]
+    sources = [
+      "testsupport/resources_dir_flag.cc",
+      "testsupport/resources_dir_flag.h",
+    ]
+    absl_deps = [ "//third_party/abseil-cpp/absl/flags:flag" ]
+  }
+
   rtc_library("test_main_lib") {
     visibility = [ "*" ]
     testonly = true
@@ -611,16 +618,6 @@
   }
 }
 
-rtc_library("resources_dir_flag") {
-  testonly = true
-  visibility = [ "*" ]
-  sources = [
-    "testsupport/resources_dir_flag.cc",
-    "testsupport/resources_dir_flag.h",
-  ]
-  absl_deps = [ "//third_party/abseil-cpp/absl/flags:flag" ]
-}
-
 # We separate header into own target to make it possible for downstream
 # projects to override implementation.
 rtc_source_set("fileutils_override_api") {
diff --git a/test/pc/e2e/BUILD.gn b/test/pc/e2e/BUILD.gn
index cb8a9bf..656be4b 100644
--- a/test/pc/e2e/BUILD.gn
+++ b/test/pc/e2e/BUILD.gn
@@ -8,314 +8,51 @@
 
 import("../../../webrtc.gni")
 
-group("e2e") {
-  testonly = true
-
-  deps = [
-    ":default_encoded_image_data_injector",
-    ":encoded_image_data_injector_api",
-    ":example_video_quality_analyzer",
-    ":id_generator",
-    ":quality_analyzing_video_decoder",
-    ":quality_analyzing_video_encoder",
-    ":single_process_encoded_image_data_injector",
-  ]
-  if (rtc_include_tests) {
-    deps += [
-      ":peerconnection_quality_test",
-      ":test_peer",
-      ":video_quality_analyzer_injection_helper",
-    ]
-  }
-}
-
-if (rtc_include_tests) {
-  group("e2e_unittests") {
+if (!build_with_chromium) {
+  group("e2e") {
     testonly = true
 
     deps = [
-      ":default_encoded_image_data_injector_unittest",
-      ":default_video_quality_analyzer_test",
-      ":multi_head_queue_test",
-      ":peer_connection_e2e_smoke_test",
-      ":single_process_encoded_image_data_injector_unittest",
-    ]
-  }
-}
-
-rtc_library("peer_connection_quality_test_params") {
-  visibility = [ "*" ]
-  testonly = true
-  sources = [ "peer_connection_quality_test_params.h" ]
-
-  deps = [
-    "../../../api:callfactory_api",
-    "../../../api:fec_controller_api",
-    "../../../api:libjingle_peerconnection_api",
-    "../../../api:packet_socket_factory",
-    "../../../api:peer_connection_quality_test_fixture_api",
-    "../../../api/rtc_event_log",
-    "../../../api/task_queue",
-    "../../../api/transport:network_control",
-    "../../../api/transport/media:media_transport_interface",
-    "../../../api/video_codecs:video_codecs_api",
-    "../../../rtc_base",
-  ]
-}
-
-rtc_library("encoded_image_data_injector_api") {
-  visibility = [ "*" ]
-  testonly = true
-  sources = [ "analyzer/video/encoded_image_data_injector.h" ]
-
-  deps = [ "../../../api/video:encoded_image" ]
-}
-
-rtc_library("default_encoded_image_data_injector") {
-  visibility = [ "*" ]
-  testonly = true
-  sources = [
-    "analyzer/video/default_encoded_image_data_injector.cc",
-    "analyzer/video/default_encoded_image_data_injector.h",
-  ]
-
-  deps = [
-    ":encoded_image_data_injector_api",
-    "../../../api/video:encoded_image",
-    "../../../rtc_base:checks",
-    "../../../rtc_base:criticalsection",
-  ]
-  absl_deps = [ "//third_party/abseil-cpp/absl/memory" ]
-}
-
-rtc_library("single_process_encoded_image_data_injector") {
-  visibility = [ "*" ]
-  testonly = true
-  sources = [
-    "analyzer/video/single_process_encoded_image_data_injector.cc",
-    "analyzer/video/single_process_encoded_image_data_injector.h",
-  ]
-
-  deps = [
-    ":encoded_image_data_injector_api",
-    "../../../api/video:encoded_image",
-    "../../../rtc_base:checks",
-    "../../../rtc_base:criticalsection",
-  ]
-  absl_deps = [ "//third_party/abseil-cpp/absl/memory" ]
-}
-
-rtc_library("id_generator") {
-  visibility = [ "*" ]
-  testonly = true
-  sources = [
-    "analyzer/video/id_generator.cc",
-    "analyzer/video/id_generator.h",
-  ]
-  deps = []
-}
-
-rtc_library("simulcast_dummy_buffer_helper") {
-  visibility = [ "*" ]
-  testonly = true
-  sources = [
-    "analyzer/video/simulcast_dummy_buffer_helper.cc",
-    "analyzer/video/simulcast_dummy_buffer_helper.h",
-  ]
-  deps = [
-    "../../../api/video:video_frame",
-    "../../../api/video:video_frame_i420",
-  ]
-}
-
-rtc_library("quality_analyzing_video_decoder") {
-  visibility = [ "*" ]
-  testonly = true
-  sources = [
-    "analyzer/video/quality_analyzing_video_decoder.cc",
-    "analyzer/video/quality_analyzing_video_decoder.h",
-  ]
-  deps = [
-    ":encoded_image_data_injector_api",
-    ":id_generator",
-    ":simulcast_dummy_buffer_helper",
-    "../../../api:video_quality_analyzer_api",
-    "../../../api/video:encoded_image",
-    "../../../api/video:video_frame",
-    "../../../api/video:video_frame_i420",
-    "../../../api/video:video_rtp_headers",
-    "../../../api/video_codecs:video_codecs_api",
-    "../../../modules/video_coding:video_codec_interface",
-    "../../../rtc_base:criticalsection",
-    "../../../rtc_base:logging",
-  ]
-  absl_deps = [
-    "//third_party/abseil-cpp/absl/strings",
-    "//third_party/abseil-cpp/absl/types:optional",
-  ]
-}
-
-rtc_library("quality_analyzing_video_encoder") {
-  visibility = [ "*" ]
-  testonly = true
-  sources = [
-    "analyzer/video/quality_analyzing_video_encoder.cc",
-    "analyzer/video/quality_analyzing_video_encoder.h",
-  ]
-  deps = [
-    ":encoded_image_data_injector_api",
-    ":id_generator",
-    "../../../api:video_quality_analyzer_api",
-    "../../../api/video:encoded_image",
-    "../../../api/video:video_frame",
-    "../../../api/video:video_rtp_headers",
-    "../../../api/video_codecs:video_codecs_api",
-    "../../../modules/video_coding:video_codec_interface",
-    "../../../rtc_base:criticalsection",
-    "../../../rtc_base:logging",
-  ]
-  absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
-}
-
-if (rtc_include_tests) {
-  rtc_library("video_quality_analyzer_injection_helper") {
-    visibility = [ "*" ]
-    testonly = true
-    sources = [
-      "analyzer/video/video_quality_analyzer_injection_helper.cc",
-      "analyzer/video/video_quality_analyzer_injection_helper.h",
-    ]
-    deps = [
+      ":default_encoded_image_data_injector",
       ":encoded_image_data_injector_api",
+      ":example_video_quality_analyzer",
       ":id_generator",
       ":quality_analyzing_video_decoder",
       ":quality_analyzing_video_encoder",
-      ":simulcast_dummy_buffer_helper",
-      "../..:test_renderer",
-      "../../../api:array_view",
-      "../../../api:peer_connection_quality_test_fixture_api",
-      "../../../api:stats_observer_interface",
-      "../../../api:video_quality_analyzer_api",
-      "../../../api/video:video_frame",
-      "../../../api/video:video_rtp_headers",
-      "../../../api/video_codecs:video_codecs_api",
-      "../../../rtc_base:criticalsection",
-      "../../../test:video_test_common",
-      "../../../test:video_test_support",
+      ":single_process_encoded_image_data_injector",
     ]
-    absl_deps = [
-      "//third_party/abseil-cpp/absl/memory",
-      "//third_party/abseil-cpp/absl/strings",
-    ]
+    if (rtc_include_tests) {
+      deps += [
+        ":peerconnection_quality_test",
+        ":test_peer",
+        ":video_quality_analyzer_injection_helper",
+      ]
+    }
   }
 
-  rtc_library("echo_emulation") {
-    visibility = [ "*" ]
-    testonly = true
-    sources = [
-      "echo/echo_emulation.cc",
-      "echo/echo_emulation.h",
-    ]
-    deps = [
-      "../../../api:peer_connection_quality_test_fixture_api",
-      "../../../modules/audio_device:audio_device_impl",
-      "../../../rtc_base:rtc_base_approved",
-    ]
+  if (rtc_include_tests) {
+    group("e2e_unittests") {
+      testonly = true
+
+      deps = [
+        ":default_encoded_image_data_injector_unittest",
+        ":default_video_quality_analyzer_test",
+        ":multi_head_queue_test",
+        ":peer_connection_e2e_smoke_test",
+        ":single_process_encoded_image_data_injector_unittest",
+      ]
+    }
   }
 
-  rtc_library("test_peer") {
+  rtc_library("peer_connection_quality_test_params") {
     visibility = [ "*" ]
     testonly = true
-    sources = [
-      "test_peer.cc",
-      "test_peer.h",
-    ]
-    deps = [
-      ":peer_configurer",
-      ":peer_connection_quality_test_params",
-      "../../../api:frame_generator_api",
-      "../../../api:peer_connection_quality_test_fixture_api",
-      "../../../api:scoped_refptr",
-      "../../../modules/audio_processing:api",
-      "../../../pc:peerconnection_wrapper",
-    ]
-    absl_deps = [
-      "//third_party/abseil-cpp/absl/memory",
-      "//third_party/abseil-cpp/absl/types:variant",
-    ]
-  }
+    sources = [ "peer_connection_quality_test_params.h" ]
 
-  rtc_library("test_peer_factory") {
-    visibility = [ "*" ]
-    testonly = true
-    sources = [
-      "test_peer_factory.cc",
-      "test_peer_factory.h",
-    ]
     deps = [
-      ":echo_emulation",
-      ":peer_configurer",
-      ":peer_connection_quality_test_params",
-      ":quality_analyzing_video_encoder",
-      ":test_peer",
-      ":video_quality_analyzer_injection_helper",
-      "../..:copy_to_file_audio_capturer",
-      "../../../api:peer_connection_quality_test_fixture_api",
-      "../../../api/rtc_event_log:rtc_event_log_factory",
-      "../../../api/task_queue:default_task_queue_factory",
-      "../../../api/video_codecs:builtin_video_decoder_factory",
-      "../../../api/video_codecs:builtin_video_encoder_factory",
-      "../../../media:rtc_audio_video",
-      "../../../media:rtc_media_engine_defaults",
-      "../../../modules/audio_device:audio_device_impl",
-      "../../../modules/audio_processing/aec_dump",
-      "../../../p2p:rtc_p2p",
-      "../../../rtc_base:rtc_task_queue",
-    ]
-    absl_deps = [
-      "//third_party/abseil-cpp/absl/memory",
-      "//third_party/abseil-cpp/absl/strings",
-    ]
-  }
-
-  rtc_library("media_helper") {
-    visibility = [ "*" ]
-    testonly = true
-    sources = [
-      "media/media_helper.cc",
-      "media/media_helper.h",
-      "media/test_video_capturer_video_track_source.h",
-    ]
-    deps = [
-      ":peer_configurer",
-      ":test_peer",
-      ":video_quality_analyzer_injection_helper",
-      "../..:fileutils",
-      "../..:platform_video_capturer",
-      "../..:video_test_common",
-      "../../../api:create_frame_generator",
-      "../../../api:frame_generator_api",
-      "../../../api:media_stream_interface",
-      "../../../api:peer_connection_quality_test_fixture_api",
-      "../../../api/video:video_frame",
-      "../../../pc:peerconnection",
-    ]
-    absl_deps = [ "//third_party/abseil-cpp/absl/types:variant" ]
-  }
-
-  rtc_library("peer_configurer") {
-    visibility = [ "*" ]
-    testonly = true
-    sources = [
-      "peer_configurer.cc",
-      "peer_configurer.h",
-    ]
-    deps = [
-      ":peer_connection_quality_test_params",
-      "../..:fileutils",
       "../../../api:callfactory_api",
-      "../../../api:create_peer_connection_quality_test_frame_generator",
       "../../../api:fec_controller_api",
+      "../../../api:libjingle_peerconnection_api",
       "../../../api:packet_socket_factory",
       "../../../api:peer_connection_quality_test_fixture_api",
       "../../../api/rtc_event_log",
@@ -325,353 +62,618 @@
       "../../../api/video_codecs:video_codecs_api",
       "../../../rtc_base",
     ]
-    absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
   }
 
-  rtc_library("test_activities_executor") {
+  rtc_library("encoded_image_data_injector_api") {
+    visibility = [ "*" ]
+    testonly = true
+    sources = [ "analyzer/video/encoded_image_data_injector.h" ]
+
+    deps = [ "../../../api/video:encoded_image" ]
+  }
+
+  rtc_library("default_encoded_image_data_injector") {
     visibility = [ "*" ]
     testonly = true
     sources = [
-      "test_activities_executor.cc",
-      "test_activities_executor.h",
+      "analyzer/video/default_encoded_image_data_injector.cc",
+      "analyzer/video/default_encoded_image_data_injector.h",
     ]
+
     deps = [
-      "../../../api/units:time_delta",
-      "../../../api/units:timestamp",
+      ":encoded_image_data_injector_api",
+      "../../../api/video:encoded_image",
       "../../../rtc_base:checks",
       "../../../rtc_base:criticalsection",
+    ]
+    absl_deps = [ "//third_party/abseil-cpp/absl/memory" ]
+  }
+
+  rtc_library("single_process_encoded_image_data_injector") {
+    visibility = [ "*" ]
+    testonly = true
+    sources = [
+      "analyzer/video/single_process_encoded_image_data_injector.cc",
+      "analyzer/video/single_process_encoded_image_data_injector.h",
+    ]
+
+    deps = [
+      ":encoded_image_data_injector_api",
+      "../../../api/video:encoded_image",
+      "../../../rtc_base:checks",
+      "../../../rtc_base:criticalsection",
+    ]
+    absl_deps = [ "//third_party/abseil-cpp/absl/memory" ]
+  }
+
+  rtc_library("id_generator") {
+    visibility = [ "*" ]
+    testonly = true
+    sources = [
+      "analyzer/video/id_generator.cc",
+      "analyzer/video/id_generator.h",
+    ]
+    deps = []
+  }
+
+  rtc_library("simulcast_dummy_buffer_helper") {
+    visibility = [ "*" ]
+    testonly = true
+    sources = [
+      "analyzer/video/simulcast_dummy_buffer_helper.cc",
+      "analyzer/video/simulcast_dummy_buffer_helper.h",
+    ]
+    deps = [
+      "../../../api/video:video_frame",
+      "../../../api/video:video_frame_i420",
+    ]
+  }
+
+  rtc_library("quality_analyzing_video_decoder") {
+    visibility = [ "*" ]
+    testonly = true
+    sources = [
+      "analyzer/video/quality_analyzing_video_decoder.cc",
+      "analyzer/video/quality_analyzing_video_decoder.h",
+    ]
+    deps = [
+      ":encoded_image_data_injector_api",
+      ":id_generator",
+      ":simulcast_dummy_buffer_helper",
+      "../../../api:video_quality_analyzer_api",
+      "../../../api/video:encoded_image",
+      "../../../api/video:video_frame",
+      "../../../api/video:video_frame_i420",
+      "../../../api/video:video_rtp_headers",
+      "../../../api/video_codecs:video_codecs_api",
+      "../../../modules/video_coding:video_codec_interface",
+      "../../../rtc_base:criticalsection",
       "../../../rtc_base:logging",
-      "../../../rtc_base:rtc_base_approved",
-      "../../../rtc_base:task_queue_for_test",
-      "../../../rtc_base/task_utils:repeating_task",
-      "../../../system_wrappers",
     ]
     absl_deps = [
-      "//third_party/abseil-cpp/absl/memory",
+      "//third_party/abseil-cpp/absl/strings",
       "//third_party/abseil-cpp/absl/types:optional",
     ]
   }
 
-  rtc_library("peerconnection_quality_test") {
+  rtc_library("quality_analyzing_video_encoder") {
     visibility = [ "*" ]
     testonly = true
-
     sources = [
-      "peer_connection_quality_test.cc",
-      "peer_connection_quality_test.h",
+      "analyzer/video/quality_analyzing_video_encoder.cc",
+      "analyzer/video/quality_analyzing_video_encoder.h",
     ]
     deps = [
-      ":analyzer_helper",
-      ":default_audio_quality_analyzer",
-      ":default_video_quality_analyzer",
-      ":media_helper",
-      ":peer_configurer",
-      ":peer_connection_quality_test_params",
-      ":sdp_changer",
-      ":single_process_encoded_image_data_injector",
-      ":stats_poller",
-      ":test_activities_executor",
-      ":test_peer",
-      ":test_peer_factory",
-      ":video_quality_analyzer_injection_helper",
-      ":video_quality_metrics_reporter",
-      "../..:field_trial",
-      "../..:fileutils",
-      "../..:perf_test",
-      "../../../api:audio_quality_analyzer_api",
-      "../../../api:libjingle_peerconnection_api",
-      "../../../api:media_stream_interface",
-      "../../../api:peer_connection_quality_test_fixture_api",
-      "../../../api:rtc_event_log_output_file",
-      "../../../api:scoped_refptr",
+      ":encoded_image_data_injector_api",
+      ":id_generator",
       "../../../api:video_quality_analyzer_api",
-      "../../../api/rtc_event_log",
-      "../../../api/task_queue",
-      "../../../api/task_queue:default_task_queue_factory",
-      "../../../api/units:time_delta",
-      "../../../api/units:timestamp",
-      "../../../pc:pc_test_utils",
-      "../../../pc:peerconnection",
-      "../../../rtc_base",
-      "../../../rtc_base:gunit_helpers",
-      "../../../rtc_base:macromagic",
-      "../../../rtc_base:rtc_base_approved",
-      "../../../rtc_base:safe_conversions",
-      "../../../rtc_base:task_queue_for_test",
-      "../../../system_wrappers",
-      "../../../system_wrappers:field_trial",
+      "../../../api/video:encoded_image",
+      "../../../api/video:video_frame",
+      "../../../api/video:video_rtp_headers",
+      "../../../api/video_codecs:video_codecs_api",
+      "../../../modules/video_coding:video_codec_interface",
+      "../../../rtc_base:criticalsection",
+      "../../../rtc_base:logging",
     ]
     absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
   }
 
-  rtc_library("single_process_encoded_image_data_injector_unittest") {
-    testonly = true
-    sources = [
-      "analyzer/video/single_process_encoded_image_data_injector_unittest.cc",
-    ]
-    deps = [
-      ":single_process_encoded_image_data_injector",
-      "../../../api/video:encoded_image",
-      "../../../rtc_base:rtc_base_approved",
-      "../../../test:test_support",
-    ]
-  }
-
-  rtc_library("default_encoded_image_data_injector_unittest") {
-    testonly = true
-    sources =
-        [ "analyzer/video/default_encoded_image_data_injector_unittest.cc" ]
-    deps = [
-      ":default_encoded_image_data_injector",
-      "../../../api/video:encoded_image",
-      "../../../rtc_base:rtc_base_approved",
-      "../../../test:test_support",
-    ]
-  }
-
-  peer_connection_e2e_smoke_test_resources = [
-    "../../../resources/pc_quality_smoke_test_alice_source.wav",
-    "../../../resources/pc_quality_smoke_test_bob_source.wav",
-  ]
-  if (is_ios) {
-    bundle_data("peer_connection_e2e_smoke_test_resources_bundle_data") {
+  if (rtc_include_tests) {
+    rtc_library("video_quality_analyzer_injection_helper") {
+      visibility = [ "*" ]
       testonly = true
-      sources = peer_connection_e2e_smoke_test_resources
-      outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ]
+      sources = [
+        "analyzer/video/video_quality_analyzer_injection_helper.cc",
+        "analyzer/video/video_quality_analyzer_injection_helper.h",
+      ]
+      deps = [
+        ":encoded_image_data_injector_api",
+        ":id_generator",
+        ":quality_analyzing_video_decoder",
+        ":quality_analyzing_video_encoder",
+        ":simulcast_dummy_buffer_helper",
+        "../..:test_renderer",
+        "../../../api:array_view",
+        "../../../api:peer_connection_quality_test_fixture_api",
+        "../../../api:stats_observer_interface",
+        "../../../api:video_quality_analyzer_api",
+        "../../../api/video:video_frame",
+        "../../../api/video:video_rtp_headers",
+        "../../../api/video_codecs:video_codecs_api",
+        "../../../rtc_base:criticalsection",
+        "../../../test:video_test_common",
+        "../../../test:video_test_support",
+      ]
+      absl_deps = [
+        "//third_party/abseil-cpp/absl/memory",
+        "//third_party/abseil-cpp/absl/strings",
+      ]
     }
-  }
 
-  rtc_library("peer_connection_e2e_smoke_test") {
-    testonly = true
+    rtc_library("echo_emulation") {
+      visibility = [ "*" ]
+      testonly = true
+      sources = [
+        "echo/echo_emulation.cc",
+        "echo/echo_emulation.h",
+      ]
+      deps = [
+        "../../../api:peer_connection_quality_test_fixture_api",
+        "../../../modules/audio_device:audio_device_impl",
+        "../../../rtc_base:rtc_base_approved",
+      ]
+    }
 
-    sources = [ "peer_connection_e2e_smoke_test.cc" ]
-    deps = [
-      ":default_audio_quality_analyzer",
-      ":default_video_quality_analyzer",
-      ":network_quality_metrics_reporter",
-      "../../../api:callfactory_api",
-      "../../../api:create_network_emulation_manager",
-      "../../../api:create_peer_connection_quality_test_frame_generator",
-      "../../../api:create_peerconnection_quality_test_fixture",
-      "../../../api:libjingle_peerconnection_api",
-      "../../../api:media_stream_interface",
-      "../../../api:network_emulation_manager_api",
-      "../../../api:peer_connection_quality_test_fixture_api",
-      "../../../api:scoped_refptr",
-      "../../../api:simulated_network_api",
-      "../../../api/audio_codecs:builtin_audio_decoder_factory",
-      "../../../api/audio_codecs:builtin_audio_encoder_factory",
-      "../../../api/video_codecs:builtin_video_decoder_factory",
-      "../../../api/video_codecs:builtin_video_encoder_factory",
-      "../../../call:simulated_network",
-      "../../../media:rtc_audio_video",
-      "../../../modules/audio_device:audio_device_impl",
-      "../../../p2p:rtc_p2p",
-      "../../../pc:pc_test_utils",
-      "../../../pc:peerconnection_wrapper",
-      "../../../rtc_base",
-      "../../../rtc_base:gunit_helpers",
-      "../../../rtc_base:logging",
-      "../../../rtc_base:rtc_event",
-      "../../../system_wrappers:field_trial",
-      "../../../test:field_trial",
-      "../../../test:fileutils",
-      "../../../test:test_support",
+    rtc_library("test_peer") {
+      visibility = [ "*" ]
+      testonly = true
+      sources = [
+        "test_peer.cc",
+        "test_peer.h",
+      ]
+      deps = [
+        ":peer_configurer",
+        ":peer_connection_quality_test_params",
+        "../../../api:frame_generator_api",
+        "../../../api:peer_connection_quality_test_fixture_api",
+        "../../../api:scoped_refptr",
+        "../../../modules/audio_processing:api",
+        "../../../pc:peerconnection_wrapper",
+      ]
+      absl_deps = [
+        "//third_party/abseil-cpp/absl/memory",
+        "//third_party/abseil-cpp/absl/types:variant",
+      ]
+    }
+
+    rtc_library("test_peer_factory") {
+      visibility = [ "*" ]
+      testonly = true
+      sources = [
+        "test_peer_factory.cc",
+        "test_peer_factory.h",
+      ]
+      deps = [
+        ":echo_emulation",
+        ":peer_configurer",
+        ":peer_connection_quality_test_params",
+        ":quality_analyzing_video_encoder",
+        ":test_peer",
+        ":video_quality_analyzer_injection_helper",
+        "../..:copy_to_file_audio_capturer",
+        "../../../api:peer_connection_quality_test_fixture_api",
+        "../../../api/rtc_event_log:rtc_event_log_factory",
+        "../../../api/task_queue:default_task_queue_factory",
+        "../../../api/video_codecs:builtin_video_decoder_factory",
+        "../../../api/video_codecs:builtin_video_encoder_factory",
+        "../../../media:rtc_audio_video",
+        "../../../media:rtc_media_engine_defaults",
+        "../../../modules/audio_device:audio_device_impl",
+        "../../../modules/audio_processing/aec_dump",
+        "../../../p2p:rtc_p2p",
+        "../../../rtc_base:rtc_task_queue",
+      ]
+      absl_deps = [
+        "//third_party/abseil-cpp/absl/memory",
+        "//third_party/abseil-cpp/absl/strings",
+      ]
+    }
+
+    rtc_library("media_helper") {
+      visibility = [ "*" ]
+      testonly = true
+      sources = [
+        "media/media_helper.cc",
+        "media/media_helper.h",
+        "media/test_video_capturer_video_track_source.h",
+      ]
+      deps = [
+        ":peer_configurer",
+        ":test_peer",
+        ":video_quality_analyzer_injection_helper",
+        "../..:fileutils",
+        "../..:platform_video_capturer",
+        "../..:video_test_common",
+        "../../../api:create_frame_generator",
+        "../../../api:frame_generator_api",
+        "../../../api:media_stream_interface",
+        "../../../api:peer_connection_quality_test_fixture_api",
+        "../../../api/video:video_frame",
+        "../../../pc:peerconnection",
+      ]
+      absl_deps = [ "//third_party/abseil-cpp/absl/types:variant" ]
+    }
+
+    rtc_library("peer_configurer") {
+      visibility = [ "*" ]
+      testonly = true
+      sources = [
+        "peer_configurer.cc",
+        "peer_configurer.h",
+      ]
+      deps = [
+        ":peer_connection_quality_test_params",
+        "../..:fileutils",
+        "../../../api:callfactory_api",
+        "../../../api:create_peer_connection_quality_test_frame_generator",
+        "../../../api:fec_controller_api",
+        "../../../api:packet_socket_factory",
+        "../../../api:peer_connection_quality_test_fixture_api",
+        "../../../api/rtc_event_log",
+        "../../../api/task_queue",
+        "../../../api/transport:network_control",
+        "../../../api/transport/media:media_transport_interface",
+        "../../../api/video_codecs:video_codecs_api",
+        "../../../rtc_base",
+      ]
+      absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
+    }
+
+    rtc_library("test_activities_executor") {
+      visibility = [ "*" ]
+      testonly = true
+      sources = [
+        "test_activities_executor.cc",
+        "test_activities_executor.h",
+      ]
+      deps = [
+        "../../../api/units:time_delta",
+        "../../../api/units:timestamp",
+        "../../../rtc_base:checks",
+        "../../../rtc_base:criticalsection",
+        "../../../rtc_base:logging",
+        "../../../rtc_base:rtc_base_approved",
+        "../../../rtc_base:task_queue_for_test",
+        "../../../rtc_base/task_utils:repeating_task",
+        "../../../system_wrappers",
+      ]
+      absl_deps = [
+        "//third_party/abseil-cpp/absl/memory",
+        "//third_party/abseil-cpp/absl/types:optional",
+      ]
+    }
+
+    rtc_library("peerconnection_quality_test") {
+      visibility = [ "*" ]
+      testonly = true
+
+      sources = [
+        "peer_connection_quality_test.cc",
+        "peer_connection_quality_test.h",
+      ]
+      deps = [
+        ":analyzer_helper",
+        ":default_audio_quality_analyzer",
+        ":default_video_quality_analyzer",
+        ":media_helper",
+        ":peer_configurer",
+        ":peer_connection_quality_test_params",
+        ":sdp_changer",
+        ":single_process_encoded_image_data_injector",
+        ":stats_poller",
+        ":test_activities_executor",
+        ":test_peer",
+        ":test_peer_factory",
+        ":video_quality_analyzer_injection_helper",
+        ":video_quality_metrics_reporter",
+        "../..:field_trial",
+        "../..:fileutils",
+        "../..:perf_test",
+        "../../../api:audio_quality_analyzer_api",
+        "../../../api:libjingle_peerconnection_api",
+        "../../../api:media_stream_interface",
+        "../../../api:peer_connection_quality_test_fixture_api",
+        "../../../api:rtc_event_log_output_file",
+        "../../../api:scoped_refptr",
+        "../../../api:video_quality_analyzer_api",
+        "../../../api/rtc_event_log",
+        "../../../api/task_queue",
+        "../../../api/task_queue:default_task_queue_factory",
+        "../../../api/units:time_delta",
+        "../../../api/units:timestamp",
+        "../../../pc:pc_test_utils",
+        "../../../pc:peerconnection",
+        "../../../rtc_base",
+        "../../../rtc_base:gunit_helpers",
+        "../../../rtc_base:macromagic",
+        "../../../rtc_base:rtc_base_approved",
+        "../../../rtc_base:safe_conversions",
+        "../../../rtc_base:task_queue_for_test",
+        "../../../system_wrappers",
+        "../../../system_wrappers:field_trial",
+      ]
+      absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
+    }
+
+    rtc_library("single_process_encoded_image_data_injector_unittest") {
+      testonly = true
+      sources = [
+        "analyzer/video/single_process_encoded_image_data_injector_unittest.cc",
+      ]
+      deps = [
+        ":single_process_encoded_image_data_injector",
+        "../../../api/video:encoded_image",
+        "../../../rtc_base:rtc_base_approved",
+        "../../../test:test_support",
+      ]
+    }
+
+    rtc_library("default_encoded_image_data_injector_unittest") {
+      testonly = true
+      sources =
+          [ "analyzer/video/default_encoded_image_data_injector_unittest.cc" ]
+      deps = [
+        ":default_encoded_image_data_injector",
+        "../../../api/video:encoded_image",
+        "../../../rtc_base:rtc_base_approved",
+        "../../../test:test_support",
+      ]
+    }
+
+    peer_connection_e2e_smoke_test_resources = [
+      "../../../resources/pc_quality_smoke_test_alice_source.wav",
+      "../../../resources/pc_quality_smoke_test_bob_source.wav",
     ]
-    data = peer_connection_e2e_smoke_test_resources
     if (is_ios) {
-      deps += [ ":peer_connection_e2e_smoke_test_resources_bundle_data" ]
+      bundle_data("peer_connection_e2e_smoke_test_resources_bundle_data") {
+        testonly = true
+        sources = peer_connection_e2e_smoke_test_resources
+        outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ]
+      }
+    }
+
+    rtc_library("peer_connection_e2e_smoke_test") {
+      testonly = true
+
+      sources = [ "peer_connection_e2e_smoke_test.cc" ]
+      deps = [
+        ":default_audio_quality_analyzer",
+        ":default_video_quality_analyzer",
+        ":network_quality_metrics_reporter",
+        "../../../api:callfactory_api",
+        "../../../api:create_network_emulation_manager",
+        "../../../api:create_peer_connection_quality_test_frame_generator",
+        "../../../api:create_peerconnection_quality_test_fixture",
+        "../../../api:libjingle_peerconnection_api",
+        "../../../api:media_stream_interface",
+        "../../../api:network_emulation_manager_api",
+        "../../../api:peer_connection_quality_test_fixture_api",
+        "../../../api:scoped_refptr",
+        "../../../api:simulated_network_api",
+        "../../../api/audio_codecs:builtin_audio_decoder_factory",
+        "../../../api/audio_codecs:builtin_audio_encoder_factory",
+        "../../../api/video_codecs:builtin_video_decoder_factory",
+        "../../../api/video_codecs:builtin_video_encoder_factory",
+        "../../../call:simulated_network",
+        "../../../media:rtc_audio_video",
+        "../../../modules/audio_device:audio_device_impl",
+        "../../../p2p:rtc_p2p",
+        "../../../pc:pc_test_utils",
+        "../../../pc:peerconnection_wrapper",
+        "../../../rtc_base",
+        "../../../rtc_base:gunit_helpers",
+        "../../../rtc_base:logging",
+        "../../../rtc_base:rtc_event",
+        "../../../system_wrappers:field_trial",
+        "../../../test:field_trial",
+        "../../../test:fileutils",
+        "../../../test:test_support",
+      ]
+      data = peer_connection_e2e_smoke_test_resources
+      if (is_ios) {
+        deps += [ ":peer_connection_e2e_smoke_test_resources_bundle_data" ]
+      }
+    }
+
+    rtc_library("stats_poller") {
+      visibility = [ "*" ]
+      testonly = true
+      sources = [
+        "stats_poller.cc",
+        "stats_poller.h",
+      ]
+      deps = [
+        ":test_peer",
+        "../../../api:libjingle_peerconnection_api",
+        "../../../api:stats_observer_interface",
+        "../../../rtc_base:logging",
+      ]
+    }
+
+    rtc_library("default_video_quality_analyzer_test") {
+      testonly = true
+      sources = [ "analyzer/video/default_video_quality_analyzer_test.cc" ]
+      deps = [
+        ":default_video_quality_analyzer",
+        "../..:test_support",
+        "../../../api:create_frame_generator",
+        "../../../api:rtp_packet_info",
+        "../../../api/video:encoded_image",
+        "../../../api/video:video_frame",
+        "../../../api/video:video_frame_i420",
+        "../../../modules/rtp_rtcp:rtp_rtcp_format",
+        "../../../system_wrappers",
+      ]
+    }
+
+    rtc_library("multi_head_queue_test") {
+      testonly = true
+      sources = [ "analyzer/video/multi_head_queue_test.cc" ]
+      deps = [
+        ":multi_head_queue",
+        "../../../test:test_support",
+      ]
+      absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
     }
   }
 
-  rtc_library("stats_poller") {
+  rtc_library("analyzer_helper") {
+    visibility = [ "*" ]
+    sources = [
+      "analyzer_helper.cc",
+      "analyzer_helper.h",
+    ]
+    deps = [
+      "../../../api:track_id_stream_label_map",
+      "../../../rtc_base:macromagic",
+      "../../../rtc_base/synchronization:sequence_checker",
+    ]
+  }
+
+  rtc_library("default_audio_quality_analyzer") {
     visibility = [ "*" ]
     testonly = true
     sources = [
-      "stats_poller.cc",
-      "stats_poller.h",
+      "analyzer/audio/default_audio_quality_analyzer.cc",
+      "analyzer/audio/default_audio_quality_analyzer.h",
     ]
+
     deps = [
-      ":test_peer",
+      "../..:perf_test",
+      "../../../api:audio_quality_analyzer_api",
       "../../../api:libjingle_peerconnection_api",
       "../../../api:stats_observer_interface",
+      "../../../api:track_id_stream_label_map",
+      "../../../rtc_base:criticalsection",
+      "../../../rtc_base:logging",
+      "../../../rtc_base:rtc_numerics",
+    ]
+  }
+
+  rtc_library("example_video_quality_analyzer") {
+    visibility = [ "*" ]
+    testonly = true
+    sources = [
+      "analyzer/video/example_video_quality_analyzer.cc",
+      "analyzer/video/example_video_quality_analyzer.h",
+    ]
+
+    deps = [
+      "../../../api:array_view",
+      "../../../api:video_quality_analyzer_api",
+      "../../../api/video:encoded_image",
+      "../../../api/video:video_frame",
+      "../../../api/video:video_rtp_headers",
+      "../../../rtc_base:criticalsection",
       "../../../rtc_base:logging",
     ]
   }
 
-  rtc_library("default_video_quality_analyzer_test") {
+  rtc_library("video_quality_metrics_reporter") {
+    visibility = [ "*" ]
+
     testonly = true
-    sources = [ "analyzer/video/default_video_quality_analyzer_test.cc" ]
+    sources = [
+      "analyzer/video/video_quality_metrics_reporter.cc",
+      "analyzer/video/video_quality_metrics_reporter.h",
+    ]
     deps = [
-      ":default_video_quality_analyzer",
-      "../..:test_support",
-      "../../../api:create_frame_generator",
-      "../../../api:rtp_packet_info",
+      "../..:perf_test",
+      "../../../api:peer_connection_quality_test_fixture_api",
+      "../../../rtc_base:criticalsection",
+      "../../../rtc_base:rtc_numerics",
+    ]
+  }
+
+  rtc_library("default_video_quality_analyzer") {
+    visibility = [ "*" ]
+
+    testonly = true
+    sources = [
+      "analyzer/video/default_video_quality_analyzer.cc",
+      "analyzer/video/default_video_quality_analyzer.h",
+    ]
+
+    deps = [
+      "../..:perf_test",
+      "../../../api:array_view",
+      "../../../api:video_quality_analyzer_api",
+      "../../../api/units:time_delta",
+      "../../../api/units:timestamp",
       "../../../api/video:encoded_image",
       "../../../api/video:video_frame",
       "../../../api/video:video_frame_i420",
-      "../../../modules/rtp_rtcp:rtp_rtcp_format",
+      "../../../api/video:video_rtp_headers",
+      "../../../common_video",
+      "../../../rtc_base:criticalsection",
+      "../../../rtc_base:logging",
+      "../../../rtc_base:rtc_base_approved",
+      "../../../rtc_base:rtc_base_tests_utils",
+      "../../../rtc_base:rtc_event",
+      "../../../rtc_base:rtc_numerics",
+      "../../../rtc_base:timeutils",
       "../../../system_wrappers",
     ]
   }
 
-  rtc_library("multi_head_queue_test") {
+  rtc_library("network_quality_metrics_reporter") {
+    visibility = [ "*" ]
     testonly = true
-    sources = [ "analyzer/video/multi_head_queue_test.cc" ]
-    deps = [
-      ":multi_head_queue",
-      "../../../test:test_support",
+    sources = [
+      "network_quality_metrics_reporter.cc",
+      "network_quality_metrics_reporter.h",
     ]
+    deps = [
+      "../..:perf_test",
+      "../../../api:libjingle_peerconnection_api",
+      "../../../api:network_emulation_manager_api",
+      "../../../api:peer_connection_quality_test_fixture_api",
+      "../../../rtc_base:criticalsection",
+      "../../../rtc_base:rtc_event",
+      "../../../system_wrappers:field_trial",
+    ]
+  }
+
+  rtc_library("sdp_changer") {
+    visibility = [ "*" ]
+    testonly = true
+    sources = [
+      "sdp/sdp_changer.cc",
+      "sdp/sdp_changer.h",
+    ]
+    deps = [
+      "../../../api:array_view",
+      "../../../api:libjingle_peerconnection_api",
+      "../../../api:peer_connection_quality_test_fixture_api",
+      "../../../api:rtp_parameters",
+      "../../../media:rtc_media_base",
+      "../../../p2p:rtc_p2p",
+      "../../../pc:peerconnection",
+      "../../../pc:rtc_pc_base",
+      "../../../rtc_base:stringutils",
+    ]
+    absl_deps = [
+      "//third_party/abseil-cpp/absl/memory",
+      "//third_party/abseil-cpp/absl/strings:strings",
+      "//third_party/abseil-cpp/absl/types:optional",
+    ]
+  }
+
+  rtc_library("multi_head_queue") {
+    visibility = [ "*" ]
+    testonly = true
+    sources = [ "analyzer/video/multi_head_queue.h" ]
+    deps = [ "../../../rtc_base:checks" ]
     absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
   }
 }
-
-rtc_library("analyzer_helper") {
-  visibility = [ "*" ]
-  sources = [
-    "analyzer_helper.cc",
-    "analyzer_helper.h",
-  ]
-  deps = [
-    "../../../api:track_id_stream_label_map",
-    "../../../rtc_base:macromagic",
-    "../../../rtc_base/synchronization:sequence_checker",
-  ]
-}
-
-rtc_library("default_audio_quality_analyzer") {
-  visibility = [ "*" ]
-  testonly = true
-  sources = [
-    "analyzer/audio/default_audio_quality_analyzer.cc",
-    "analyzer/audio/default_audio_quality_analyzer.h",
-  ]
-
-  deps = [
-    "../..:perf_test",
-    "../../../api:audio_quality_analyzer_api",
-    "../../../api:libjingle_peerconnection_api",
-    "../../../api:stats_observer_interface",
-    "../../../api:track_id_stream_label_map",
-    "../../../rtc_base:criticalsection",
-    "../../../rtc_base:logging",
-    "../../../rtc_base:rtc_numerics",
-  ]
-}
-
-rtc_library("example_video_quality_analyzer") {
-  visibility = [ "*" ]
-  testonly = true
-  sources = [
-    "analyzer/video/example_video_quality_analyzer.cc",
-    "analyzer/video/example_video_quality_analyzer.h",
-  ]
-
-  deps = [
-    "../../../api:array_view",
-    "../../../api:video_quality_analyzer_api",
-    "../../../api/video:encoded_image",
-    "../../../api/video:video_frame",
-    "../../../api/video:video_rtp_headers",
-    "../../../rtc_base:criticalsection",
-    "../../../rtc_base:logging",
-  ]
-}
-
-rtc_library("video_quality_metrics_reporter") {
-  visibility = [ "*" ]
-
-  testonly = true
-  sources = [
-    "analyzer/video/video_quality_metrics_reporter.cc",
-    "analyzer/video/video_quality_metrics_reporter.h",
-  ]
-  deps = [
-    "../..:perf_test",
-    "../../../api:peer_connection_quality_test_fixture_api",
-    "../../../rtc_base:criticalsection",
-    "../../../rtc_base:rtc_numerics",
-  ]
-}
-
-rtc_library("default_video_quality_analyzer") {
-  visibility = [ "*" ]
-
-  testonly = true
-  sources = [
-    "analyzer/video/default_video_quality_analyzer.cc",
-    "analyzer/video/default_video_quality_analyzer.h",
-  ]
-
-  deps = [
-    "../..:perf_test",
-    "../../../api:array_view",
-    "../../../api:video_quality_analyzer_api",
-    "../../../api/units:time_delta",
-    "../../../api/units:timestamp",
-    "../../../api/video:encoded_image",
-    "../../../api/video:video_frame",
-    "../../../api/video:video_frame_i420",
-    "../../../api/video:video_rtp_headers",
-    "../../../common_video",
-    "../../../rtc_base:criticalsection",
-    "../../../rtc_base:logging",
-    "../../../rtc_base:rtc_base_approved",
-    "../../../rtc_base:rtc_base_tests_utils",
-    "../../../rtc_base:rtc_event",
-    "../../../rtc_base:rtc_numerics",
-    "../../../rtc_base:timeutils",
-    "../../../system_wrappers",
-  ]
-}
-
-rtc_library("network_quality_metrics_reporter") {
-  visibility = [ "*" ]
-  testonly = true
-  sources = [
-    "network_quality_metrics_reporter.cc",
-    "network_quality_metrics_reporter.h",
-  ]
-  deps = [
-    "../..:perf_test",
-    "../../../api:libjingle_peerconnection_api",
-    "../../../api:network_emulation_manager_api",
-    "../../../api:peer_connection_quality_test_fixture_api",
-    "../../../rtc_base:criticalsection",
-    "../../../rtc_base:rtc_event",
-    "../../../system_wrappers:field_trial",
-  ]
-}
-
-rtc_library("sdp_changer") {
-  visibility = [ "*" ]
-  testonly = true
-  sources = [
-    "sdp/sdp_changer.cc",
-    "sdp/sdp_changer.h",
-  ]
-  deps = [
-    "../../../api:array_view",
-    "../../../api:libjingle_peerconnection_api",
-    "../../../api:peer_connection_quality_test_fixture_api",
-    "../../../api:rtp_parameters",
-    "../../../media:rtc_media_base",
-    "../../../p2p:rtc_p2p",
-    "../../../pc:peerconnection",
-    "../../../pc:rtc_pc_base",
-    "../../../rtc_base:stringutils",
-  ]
-  absl_deps = [
-    "//third_party/abseil-cpp/absl/memory",
-    "//third_party/abseil-cpp/absl/strings:strings",
-    "//third_party/abseil-cpp/absl/types:optional",
-  ]
-}
-
-rtc_library("multi_head_queue") {
-  visibility = [ "*" ]
-  testonly = true
-  sources = [ "analyzer/video/multi_head_queue.h" ]
-  deps = [ "../../../rtc_base:checks" ]
-  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
-}
diff --git a/test/testsupport/perf_test.h b/test/testsupport/perf_test.h
index b0a5607..4bb6773 100644
--- a/test/testsupport/perf_test.h
+++ b/test/testsupport/perf_test.h
@@ -15,7 +15,6 @@
 #include <string>
 #include <vector>
 
-#include "absl/flags/flag.h"
 #include "api/array_view.h"
 #include "rtc_base/numerics/samples_stats_counter.h"
 
diff --git a/webrtc.gni b/webrtc.gni
index cbd37ef..e5fddfa 100644
--- a/webrtc.gni
+++ b/webrtc.gni
@@ -539,11 +539,8 @@
       if (!defined(deps)) {
         deps = []
       }
-      if (is_component_build && build_with_chromium) {
-        # TODO(crbug.com/1046390): Enable when the Abseil component will be
-        # available.
-        # deps += [ "//third_party/abseil-cpp:absl" ]
-        deps += absl_deps  # Remove when the line above is enabled.
+      if (build_with_chromium) {
+        deps += [ "//third_party/abseil-cpp:absl" ]
       } else {
         deps += absl_deps
       }
@@ -631,11 +628,8 @@
       if (!defined(deps)) {
         deps = []
       }
-      if (is_component_build && build_with_chromium) {
-        # TODO(crbug.com/1046390): Enable when the Abseil component will be
-        # available.
-        # deps += [ "//third_party/abseil-cpp:absl" ]
-        deps += absl_deps  # Remove when the line above is enabled.
+      if (build_with_chromium) {
+        deps += [ "//third_party/abseil-cpp:absl" ]
       } else {
         deps += absl_deps
       }
@@ -760,11 +754,8 @@
       if (!defined(deps)) {
         deps = []
       }
-      if (is_component_build && build_with_chromium) {
-        # TODO(crbug.com/1046390): Enable when the Abseil component will be
-        # available.
-        # deps += [ "//third_party/abseil-cpp:absl" ]
-        deps += absl_deps  # Remove when the line above is enabled.
+      if (build_with_chromium) {
+        deps += [ "//third_party/abseil-cpp:absl" ]
       } else {
         deps += absl_deps
       }
