Revert "Refactor rtc_base build targets."

This reverts commit 69241a93fb14f6527a26d5c94dde879013012d2a.

Reason for revert: Breaks WebRTC roll into Chromium.

Original change's description:
> Refactor rtc_base build targets.
>
> The "//rtc_base:rtc_base" build target has historically been one of the
> biggest targets in the WebRTC build. Big targets are the main source of
> circular dependencies and non-API types leakage.
>
> This CL is a step forward into splitting "//rtc_base:rtc_base" into
> smaller targets (as originally started in 2018).
>
> The only non-automated changes are (like re-wiring the build system):
> * The creation of //rtc_base/async_resolver.{h,cc} which allows to
>   break a circular dependency (is has been extracted from
>   //rtc_base/net_helpers.{h,cc}).
> * The creation of //rtc_base/internal/default_socket_server.{h,cc} to
>   break another circular dependency.
>
> Bug: webrtc:9987
> Change-Id: I0c8f5e7efe2c8fd8e6bffa0d6dd2dd494cf3df02
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196903
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32941}

TBR=mbonadei@webrtc.org,hta@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

No-Try: True
Bug: webrtc:9987
Change-Id: I1e36ad64cc60092f38d6886153a94f1a58339256
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/201840
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32986}
diff --git a/api/BUILD.gn b/api/BUILD.gn
index 3c73d51..f02c5fd 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -52,7 +52,6 @@
       "../pc:peerconnection",
       "../rtc_base",
       "../rtc_base:rtc_base_approved",
-      "../rtc_base:threading",
       "audio:audio_mixer_api",
       "audio_codecs:audio_codecs_api",
       "task_queue:default_task_queue_factory",
@@ -175,7 +174,6 @@
     ":rtp_parameters",
     ":rtp_transceiver_direction",
     ":scoped_refptr",
-    "../rtc_base:network_constants",
     "adaptation:resource_adaptation_api",
     "audio:audio_mixer_api",
     "audio_codecs:audio_codecs_api",
@@ -206,10 +204,7 @@
     "../rtc_base",
     "../rtc_base:checks",
     "../rtc_base:deprecation",
-    "../rtc_base:ip_address",
     "../rtc_base:rtc_base_approved",
-    "../rtc_base:socket_address",
-    "../rtc_base:threading",
     "../rtc_base/system:rtc_export",
   ]
   absl_deps = [
@@ -253,7 +248,6 @@
     "packet_socket_factory.h",
   ]
   deps = [
-    "../rtc_base:async_resolver_interface",
     "../rtc_base:rtc_base",
     "../rtc_base/system:rtc_export",
   ]
@@ -389,7 +383,6 @@
     ":video_quality_analyzer_api",
     "../media:rtc_media_base",
     "../rtc_base:rtc_base",
-    "../rtc_base:threading",
     "rtc_event_log",
     "task_queue",
     "transport:network_control",
@@ -607,8 +600,6 @@
     ":time_controller",
     "../call:simulated_network",
     "../rtc_base",
-    "../rtc_base:network_constants",
-    "../rtc_base:threading",
     "test/network_emulation",
     "units:data_rate",
     "units:data_size",
@@ -626,7 +617,6 @@
   deps = [
     "../modules/utility",
     "../rtc_base",
-    "../rtc_base:threading",
     "../rtc_base/synchronization:yield_policy",
     "../system_wrappers",
     "task_queue",
@@ -680,7 +670,6 @@
     ":scoped_refptr",
     "../p2p:rtc_p2p",
     "../rtc_base",
-    "../rtc_base:threading",
     "../rtc_base/system:rtc_export",
     "rtc_event_log:rtc_event_log",
   ]
diff --git a/api/test/network_emulation/BUILD.gn b/api/test/network_emulation/BUILD.gn
index a996ba7..fb7bedc 100644
--- a/api/test/network_emulation/BUILD.gn
+++ b/api/test/network_emulation/BUILD.gn
@@ -20,9 +20,7 @@
     "../..:array_view",
     "../../../rtc_base",
     "../../../rtc_base:checks",
-    "../../../rtc_base:ip_address",
     "../../../rtc_base:rtc_base_approved",
-    "../../../rtc_base:socket_address",
     "../../numerics",
     "../../units:data_rate",
     "../../units:data_size",
diff --git a/api/transport/BUILD.gn b/api/transport/BUILD.gn
index 7d23adc..7bcda8b 100644
--- a/api/transport/BUILD.gn
+++ b/api/transport/BUILD.gn
@@ -108,10 +108,8 @@
   deps = [
     "../../api:array_view",
     "../../rtc_base:checks",
-    "../../rtc_base:ip_address",
     "../../rtc_base:rtc_base",
     "../../rtc_base:rtc_base_approved",
-    "../../rtc_base:socket_address",
   ]
   absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
 }
@@ -149,7 +147,6 @@
       ":stun_types",
       "../../rtc_base",
       "../../rtc_base:rtc_base_approved",
-      "../../rtc_base:socket_address",
       "../../test:test_support",
       "//testing/gtest",
     ]
diff --git a/audio/BUILD.gn b/audio/BUILD.gn
index 1fea09c..6901e33 100644
--- a/audio/BUILD.gn
+++ b/audio/BUILD.gn
@@ -90,7 +90,6 @@
     "../rtc_base:rtc_base_approved",
     "../rtc_base:rtc_task_queue",
     "../rtc_base:safe_minmax",
-    "../rtc_base:threading",
     "../rtc_base/experiments:field_trial_parser",
     "../rtc_base/synchronization:mutex",
     "../rtc_base/synchronization:sequence_checker",
diff --git a/call/BUILD.gn b/call/BUILD.gn
index 7730382..cef43f4 100644
--- a/call/BUILD.gn
+++ b/call/BUILD.gn
@@ -504,7 +504,6 @@
       "../rtc_base:rtc_base_approved",
       "../rtc_base:task_queue_for_test",
       "../rtc_base:task_queue_for_test",
-      "../rtc_base:threading",
       "../rtc_base/synchronization:mutex",
       "../rtc_base/task_utils:repeating_task",
       "../system_wrappers",
diff --git a/examples/BUILD.gn b/examples/BUILD.gn
index a08ab46..c267896 100644
--- a/examples/BUILD.gn
+++ b/examples/BUILD.gn
@@ -686,8 +686,6 @@
       "../p2p:rtc_p2p",
       "../pc:video_track_source",
       "../rtc_base:checks",
-      "../rtc_base:net_helpers",
-      "../rtc_base:threading",
       "../rtc_base/third_party/sigslot",
       "../system_wrappers:field_trial",
       "../test:field_trial",
@@ -779,11 +777,7 @@
       "../p2p:rtc_p2p",
       "../pc:rtc_pc",
       "../rtc_base",
-      "../rtc_base:ip_address",
       "../rtc_base:rtc_base_approved",
-      "../rtc_base:socket_address",
-      "../rtc_base:socket_server",
-      "../rtc_base:threading",
     ]
   }
   rtc_executable("stunserver") {
@@ -795,9 +789,6 @@
       "../pc:rtc_pc",
       "../rtc_base",
       "../rtc_base:rtc_base_approved",
-      "../rtc_base:socket_address",
-      "../rtc_base:socket_server",
-      "../rtc_base:threading",
     ]
   }
 }
@@ -921,8 +912,6 @@
       "../rtc_base",
       "../rtc_base:checks",
       "../rtc_base:rtc_base_approved",
-      "../rtc_base:socket_address",
-      "../rtc_base:threading",
       "//third_party/abseil-cpp/absl/flags:flag",
       "//third_party/abseil-cpp/absl/flags:parse",
     ]
diff --git a/examples/androidvoip/BUILD.gn b/examples/androidvoip/BUILD.gn
index 31b20d3..649e601 100644
--- a/examples/androidvoip/BUILD.gn
+++ b/examples/androidvoip/BUILD.gn
@@ -56,9 +56,6 @@
 
     deps = [
       ":generated_jni",
-      "../../rtc_base:socket_address",
-      "../../rtc_base:socket_server",
-      "../../rtc_base:threading",
       "//api:transport_api",
       "//api/audio_codecs:audio_codecs_api",
       "//api/audio_codecs:builtin_audio_decoder_factory",
diff --git a/logging/BUILD.gn b/logging/BUILD.gn
index 9fccf5c..8eb5631 100644
--- a/logging/BUILD.gn
+++ b/logging/BUILD.gn
@@ -288,7 +288,6 @@
     "../api/rtc_event_log",
     "../rtc_base",
     "../rtc_base:checks",
-    "../rtc_base:threading",
   ]
 }
 
diff --git a/media/BUILD.gn b/media/BUILD.gn
index cc78053..f653af7 100644
--- a/media/BUILD.gn
+++ b/media/BUILD.gn
@@ -113,7 +113,6 @@
     "../rtc_base:rtc_base_approved",
     "../rtc_base:rtc_task_queue",
     "../rtc_base:sanitizer",
-    "../rtc_base:socket",
     "../rtc_base:stringutils",
     "../rtc_base/synchronization:mutex",
     "../rtc_base/synchronization:sequence_checker",
@@ -321,7 +320,6 @@
     "../rtc_base:ignore_wundef",
     "../rtc_base:rtc_task_queue",
     "../rtc_base:stringutils",
-    "../rtc_base:threading",
     "../rtc_base/experiments:field_trial_parser",
     "../rtc_base/experiments:min_video_bitrate_experiment",
     "../rtc_base/experiments:normalize_simulcast_size_experiment",
@@ -409,7 +407,6 @@
     "../p2p:rtc_p2p",
     "../rtc_base",
     "../rtc_base:rtc_base_approved",
-    "../rtc_base:threading",
     "../rtc_base/synchronization:mutex",
     "../rtc_base/task_utils:pending_task_safety_flag",
     "../rtc_base/task_utils:to_queued_task",
@@ -486,7 +483,6 @@
       "../rtc_base:rtc_base_approved",
       "../rtc_base:rtc_task_queue",
       "../rtc_base:stringutils",
-      "../rtc_base:threading",
       "../rtc_base/synchronization:mutex",
       "../rtc_base/third_party/sigslot",
       "../test:test_support",
@@ -596,7 +592,6 @@
       "../rtc_base:rtc_base_tests_utils",
       "../rtc_base:rtc_task_queue",
       "../rtc_base:stringutils",
-      "../rtc_base:threading",
       "../rtc_base/experiments:min_video_bitrate_experiment",
       "../rtc_base/synchronization:mutex",
       "../rtc_base/third_party/sigslot",
diff --git a/modules/audio_processing/BUILD.gn b/modules/audio_processing/BUILD.gn
index f2f28a7..dbb1882 100644
--- a/modules/audio_processing/BUILD.gn
+++ b/modules/audio_processing/BUILD.gn
@@ -367,7 +367,6 @@
       "../../rtc_base:rtc_base_tests_utils",
       "../../rtc_base:safe_minmax",
       "../../rtc_base:task_queue_for_test",
-      "../../rtc_base:threading",
       "../../rtc_base/synchronization:mutex",
       "../../rtc_base/system:arch",
       "../../rtc_base/system:file_wrapper",
diff --git a/modules/video_coding/BUILD.gn b/modules/video_coding/BUILD.gn
index 2373b9f..b706c6b 100644
--- a/modules/video_coding/BUILD.gn
+++ b/modules/video_coding/BUILD.gn
@@ -189,7 +189,6 @@
     "../../rtc_base:rtc_base_approved",
     "../../rtc_base:rtc_numerics",
     "../../rtc_base:rtc_task_queue",
-    "../../rtc_base:threading",
     "../../rtc_base/experiments:alr_experiment",
     "../../rtc_base/experiments:field_trial_parser",
     "../../rtc_base/experiments:jitter_upper_bound_experiment",
diff --git a/p2p/BUILD.gn b/p2p/BUILD.gn
index 5838f31..d4330ef 100644
--- a/p2p/BUILD.gn
+++ b/p2p/BUILD.gn
@@ -96,17 +96,8 @@
     "../api/transport:stun_types",
     "../logging:ice_log",
     "../rtc_base",
-    "../rtc_base:async_resolver_interface",
-    "../rtc_base:async_socket",
     "../rtc_base:checks",
-    "../rtc_base:ip_address",
-    "../rtc_base:net_helpers",
-    "../rtc_base:network_constants",
     "../rtc_base:rtc_numerics",
-    "../rtc_base:socket",
-    "../rtc_base:socket_address",
-    "../rtc_base:socket_server",
-    "../rtc_base:threading",
     "../rtc_base/experiments:field_trial_parser",
     "../rtc_base/synchronization:sequence_checker",
     "../rtc_base/system:no_unique_address",
@@ -157,8 +148,6 @@
     deps = [
       ":rtc_p2p",
       "../rtc_base",
-      "../rtc_base:net_helpers",
-      "../rtc_base:threading",
     ]
   }
 
@@ -184,14 +173,9 @@
       "../api/crypto:options",
       "../api/transport:stun_types",
       "../rtc_base",
-      "../rtc_base:async_resolver_interface",
-      "../rtc_base:async_socket",
       "../rtc_base:gunit_helpers",
       "../rtc_base:rtc_base_approved",
       "../rtc_base:rtc_base_tests_utils",
-      "../rtc_base:socket_address",
-      "../rtc_base:socket_server",
-      "../rtc_base:threading",
       "../rtc_base/third_party/sigslot",
       "../test:test_support",
     ]
@@ -237,18 +221,11 @@
       "../api/transport:stun_types",
       "../api/units:time_delta",
       "../rtc_base",
-      "../rtc_base:async_socket",
       "../rtc_base:checks",
       "../rtc_base:gunit_helpers",
-      "../rtc_base:ip_address",
-      "../rtc_base:net_helpers",
-      "../rtc_base:network_constants",
       "../rtc_base:rtc_base_approved",
       "../rtc_base:rtc_base_tests_utils",
-      "../rtc_base:socket",
-      "../rtc_base:socket_address",
       "../rtc_base:testclient",
-      "../rtc_base:threading",
       "../rtc_base/network:sent_packet",
       "../rtc_base/third_party/sigslot",
       "../system_wrappers:metrics",
@@ -279,8 +256,6 @@
     "../rtc_base",
     "../rtc_base:checks",
     "../rtc_base:rtc_base_tests_utils",
-    "../rtc_base:socket_address",
-    "../rtc_base:threading",
     "../rtc_base/third_party/sigslot",
   ]
   absl_deps = [ "//third_party/abseil-cpp/absl/algorithm:container" ]
@@ -298,11 +273,7 @@
     "../api:packet_socket_factory",
     "../api/transport:stun_types",
     "../rtc_base",
-    "../rtc_base:async_resolver_interface",
     "../rtc_base:checks",
-    "../rtc_base:ip_address",
-    "../rtc_base:socket_address",
-    "../rtc_base:threading",
     "../rtc_base/system:rtc_export",
   ]
 }
@@ -319,7 +290,6 @@
       "../rtc_base",
       "../rtc_base:checks",
       "../rtc_base:gunit_helpers",
-      "../rtc_base:ip_address",
       "../rtc_base:rtc_base_tests_utils",
       "../test:test_support",
       "//testing/gtest",
diff --git a/p2p/base/basic_async_resolver_factory.cc b/p2p/base/basic_async_resolver_factory.cc
index 027358b..9d8266e 100644
--- a/p2p/base/basic_async_resolver_factory.cc
+++ b/p2p/base/basic_async_resolver_factory.cc
@@ -10,7 +10,7 @@
 
 #include "p2p/base/basic_async_resolver_factory.h"
 
-#include "rtc_base/async_resolver.h"
+#include "rtc_base/net_helpers.h"
 
 namespace webrtc {
 
diff --git a/p2p/base/basic_packet_socket_factory.cc b/p2p/base/basic_packet_socket_factory.cc
index 232e58b..ebc11bb 100644
--- a/p2p/base/basic_packet_socket_factory.cc
+++ b/p2p/base/basic_packet_socket_factory.cc
@@ -15,7 +15,6 @@
 #include <string>
 
 #include "p2p/base/async_stun_tcp_socket.h"
-#include "rtc_base/async_resolver.h"
 #include "rtc_base/async_tcp_socket.h"
 #include "rtc_base/async_udp_socket.h"
 #include "rtc_base/checks.h"
diff --git a/p2p/base/stun_port.cc b/p2p/base/stun_port.cc
index 7a76af5..4e1a1f6 100644
--- a/p2p/base/stun_port.cc
+++ b/p2p/base/stun_port.cc
@@ -17,11 +17,11 @@
 #include "p2p/base/connection.h"
 #include "p2p/base/p2p_constants.h"
 #include "p2p/base/port_allocator.h"
-#include "rtc_base/async_resolver_interface.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/helpers.h"
 #include "rtc_base/ip_address.h"
 #include "rtc_base/logging.h"
+#include "rtc_base/net_helpers.h"
 #include "rtc_base/strings/string_builder.h"
 
 namespace cricket {
diff --git a/p2p/base/turn_port.h b/p2p/base/turn_port.h
index 6f9caaf..a9ec434 100644
--- a/p2p/base/turn_port.h
+++ b/p2p/base/turn_port.h
@@ -25,7 +25,6 @@
 #include "p2p/client/basic_port_allocator.h"
 #include "rtc_base/async_invoker.h"
 #include "rtc_base/async_packet_socket.h"
-#include "rtc_base/async_resolver_interface.h"
 #include "rtc_base/ssl_certificate.h"
 
 namespace webrtc {
diff --git a/pc/BUILD.gn b/pc/BUILD.gn
index 9e296b5..143ce25 100644
--- a/pc/BUILD.gn
+++ b/pc/BUILD.gn
@@ -114,9 +114,7 @@
     "../rtc_base:checks",
     "../rtc_base:deprecation",
     "../rtc_base:rtc_task_queue",
-    "../rtc_base:socket_address",
     "../rtc_base:stringutils",
-    "../rtc_base:threading",
     "../rtc_base/synchronization:mutex",
     "../rtc_base/synchronization:sequence_checker",
     "../rtc_base/system:file_wrapper",
@@ -279,13 +277,9 @@
     "../rtc_base:callback_list",
     "../rtc_base:checks",
     "../rtc_base:deprecation",
-    "../rtc_base:ip_address",
-    "../rtc_base:network_constants",
     "../rtc_base:rtc_base_approved",
     "../rtc_base:rtc_operations_chain",
     "../rtc_base:safe_minmax",
-    "../rtc_base:socket_address",
-    "../rtc_base:threading",
     "../rtc_base:weak_ptr",
     "../rtc_base/experiments:field_trial_parser",
     "../rtc_base/network:sent_packet",
@@ -330,7 +324,6 @@
     "../p2p:rtc_p2p",
     "../rtc_base",
     "../rtc_base:checks",
-    "../rtc_base:threading",
   ]
 }
 
@@ -345,7 +338,6 @@
     "../api:media_stream_interface",
     "../api:rtc_error",
     "../rtc_base",
-    "../rtc_base:threading",
     "../rtc_base/synchronization:sequence_checker",
   ]
 }
@@ -408,7 +400,6 @@
     "../media:rtc_media_base",
     "../rtc_base",
     "../rtc_base:checks",
-    "../rtc_base:threading",
     "../rtc_base/third_party/sigslot",
   ]
   absl_deps = [
@@ -445,7 +436,6 @@
     "../rtc_base:logging",
     "../rtc_base:rtc_base",
     "../rtc_base:rtc_base_approved",
-    "../rtc_base:threading",
   ]
   absl_deps = [
     "//third_party/abseil-cpp/absl/algorithm:container",
@@ -476,7 +466,6 @@
     "../rtc_base",
     "../rtc_base:checks",
     "../rtc_base:refcount",
-    "../rtc_base:threading",
   ]
   absl_deps = [
     "//third_party/abseil-cpp/absl/algorithm:container",
@@ -509,7 +498,6 @@
     "../rtc_base",
     "../rtc_base:checks",
     "../rtc_base:rtc_base_approved",
-    "../rtc_base:threading",
   ]
   absl_deps = [
     "//third_party/abseil-cpp/absl/algorithm:container",
@@ -560,7 +548,6 @@
     "../rtc_base:checks",
     "../rtc_base:refcount",
     "../rtc_base:rtc_base_approved",
-    "../rtc_base:threading",
   ]
 }
 
@@ -606,7 +593,6 @@
     "../rtc_base:checks",
     "../rtc_base:refcount",
     "../rtc_base:safe_minmax",
-    "../rtc_base:threading",
   ]
   absl_deps = [
     "//third_party/abseil-cpp/absl/algorithm:container",
@@ -631,7 +617,6 @@
     "../rtc_base:rtc_base_approved",
     "../rtc_base:safe_conversions",
     "../rtc_base:stringutils",
-    "../rtc_base:threading",
     "../rtc_base/synchronization:mutex",
   ]
   absl_deps = [
@@ -695,7 +680,6 @@
     "../api:libjingle_peerconnection_api",
     "../rtc_base:checks",
     "../rtc_base:rtc_base",
-    "../rtc_base:threading",
   ]
   absl_deps = [
     "//third_party/abseil-cpp/absl/algorithm:container",
@@ -819,7 +803,6 @@
       "../rtc_base:gunit_helpers",
       "../rtc_base:rtc_base_approved",
       "../rtc_base:rtc_base_tests_utils",
-      "../rtc_base:threading",
       "../rtc_base/third_party/sigslot",
       "../system_wrappers:metrics",
       "../test:field_trial",
@@ -868,8 +851,6 @@
       "../rtc_base:checks",
       "../rtc_base:gunit_helpers",
       "../rtc_base:rtc_base_tests_utils",
-      "../rtc_base:socket_address",
-      "../rtc_base:threading",
       "../system_wrappers",
       "../test:perf_test",
       "../test:test_support",
@@ -970,7 +951,6 @@
       "../rtc_base:rtc_base_approved",
       "../rtc_base:rtc_task_queue",
       "../rtc_base:task_queue_for_test",
-      "../rtc_base:threading",
       "../rtc_base/synchronization:mutex",
       "../rtc_base/synchronization:sequence_checker",
       "../rtc_base/task_utils:repeating_task",
@@ -1086,11 +1066,8 @@
       "../p2p:fake_port_allocator",
       "../rtc_base:checks",
       "../rtc_base:gunit_helpers",
-      "../rtc_base:ip_address",
       "../rtc_base:rtc_base_tests_utils",
       "../rtc_base:rtc_json",
-      "../rtc_base:socket_address",
-      "../rtc_base:threading",
       "../rtc_base/synchronization:mutex",
       "../rtc_base/third_party/base64",
       "../rtc_base/third_party/sigslot",
diff --git a/rtc_base/BUILD.gn b/rtc_base/BUILD.gn
index ceb0a1f..7181c23 100644
--- a/rtc_base/BUILD.gn
+++ b/rtc_base/BUILD.gn
@@ -668,216 +668,139 @@
 }
 
 rtc_source_set("async_resolver") {
-  # TODO(bugs.webrtc.org/9987): Remove when downstream clients have
-  # been redirected on //rtc_base:threading.
-  sources = []
+  # TODO(bugs.webrtc.org/9987): This build target will soon contain
+  # async_resolver source files (see
+  # https://webrtc-review.googlesource.com/c/src/+/196903).
+  sources = [ "async_resolver.h" ]
 }
 
-rtc_library("net_helpers") {
-  sources = [
-    "net_helpers.cc",
-    "net_helpers.h",
-  ]
-  deps = []
-  if (is_android) {
-    deps += [ ":ifaddrs_android" ]
-  }
-  if (is_win) {
-    deps += [ ":win32" ]
-  }
+rtc_source_set("net_helpers") {
+  # TODO(bugs.webrtc.org/9987): This build target will soon contain
+  #                             the following files:
+  # sources = [
+  #   "net_helpers.cc",
+  #   "net_helpers.h",
+  # ]
 }
 
-rtc_library("async_resolver_interface") {
+rtc_source_set("async_resolver_interface") {
   visibility = [ "*" ]
-  sources = [
-    "async_resolver_interface.cc",
-    "async_resolver_interface.h",
-  ]
-  deps = [
-    ":socket_address",
-    "system:rtc_export",
-    "third_party/sigslot",
-  ]
+  # TODO(bugs.webrtc.org/9987): This build target will soon contain
+  #                             the following files:
+  # sources = [
+  #   "async_resolver_interface.cc",
+  #   "async_resolver_interface.h",
+  # ]
 }
 
-rtc_library("ip_address") {
+rtc_source_set("ip_address") {
   visibility = [ "*" ]
-  sources = [
-    "ip_address.cc",
-    "ip_address.h",
-  ]
-  deps = [
-    ":net_helpers",
-    ":rtc_base_approved",
-    ":stringutils",
-    "system:rtc_export",
-  ]
-  if (is_win) {
-    deps += [ ":win32" ]
-  }
+  # TODO(bugs.webrtc.org/9987): This build target will soon contain
+  #                             the following files:
+  # sources = [
+  #   "ip_address.cc",
+  #   "ip_address.h",
+  # ]
 }
 
-rtc_library("socket_address") {
+rtc_source_set("socket_address") {
   visibility = [ "*" ]
-  sources = [
-    "socket_address.cc",
-    "socket_address.h",
-  ]
-  deps = [
-    ":checks",
-    ":ip_address",
-    ":logging",
-    ":net_helpers",
-    ":rtc_base_approved",
-    ":safe_conversions",
-    ":stringutils",
-    "system:rtc_export",
-  ]
-  if (is_win) {
-    deps += [ ":win32" ]
-  }
+  # TODO(bugs.webrtc.org/9987): This build target will soon contain
+  #                             the following files:
+  # sources = [
+  #   "socket_address.cc",
+  #   "socket_address.h",
+  # ]
 }
 
-rtc_library("null_socket_server") {
-  sources = [
-    "null_socket_server.cc",
-    "null_socket_server.h",
-  ]
-  deps = [
-    ":async_socket",
-    ":checks",
-    ":rtc_event",
-    ":socket",
-    ":socket_server",
-    "system:rtc_export",
-  ]
+rtc_source_set("null_socket_server") {
+  # TODO(bugs.webrtc.org/9987): This build target will soon contain
+  #                             the following files:
+  # sources = [
+  #   "null_socket_server.cc",
+  #   "null_socket_server.h",
+  # ]
 }
 
 rtc_source_set("socket_server") {
-  sources = [ "socket_server.h" ]
-  deps = [ ":socket_factory" ]
+  # TODO(bugs.webrtc.org/9987): This build target will soon contain
+  #                             the following files:
+  # sources = [
+  #   "socket_server.h",
+  # ]
 }
 
-rtc_library("threading") {
+rtc_source_set("threading") {
   visibility = [ "*" ]
-
-  sources = [
-    "async_resolver.cc",
-    "async_resolver.h",
-    "internal/default_socket_server.cc",
-    "internal/default_socket_server.h",
-    "message_handler.cc",
-    "message_handler.h",
-    "network_monitor.cc",
-    "network_monitor.h",
-    "network_monitor_factory.cc",
-    "network_monitor_factory.h",
-    "physical_socket_server.cc",
-    "physical_socket_server.h",
-
-    #   "signal_thread.cc",
-    #   "signal_thread.h",
-    "thread.cc",
-    "thread.h",
-    "thread_message.h",
-  ]
-  absl_deps = [ "//third_party/abseil-cpp/absl/algorithm:container" ]
-  deps = [
-    ":async_resolver_interface",
-    ":atomicops",
-    ":checks",
-    ":criticalsection",
-    ":ip_address",
-    ":logging",
-    ":macromagic",
-    ":network_constants",
-    ":null_socket_server",
-    ":platform_thread_types",
-    ":rtc_base_approved",
-    ":rtc_event",
-    ":rtc_task_queue",
-    ":socket_address",
-    ":socket_server",
-    ":timeutils",
-    "../api:function_view",
-    "../api:scoped_refptr",
-    "../api/task_queue",
-    "synchronization:sequence_checker",
-    "system:no_unique_address",
-    "system:rtc_export",
-    "task_utils:pending_task_safety_flag",
-    "task_utils:to_queued_task",
-    "third_party/sigslot",
-  ]
-  if (is_android) {
-    deps += [ ":ifaddrs_android" ]
-  }
-  if (is_win) {
-    deps += [ ":win32" ]
-  }
-  if (is_mac || is_ios) {
-    deps += [ "system:cocoa_threading" ]
-  }
+  # TODO(bugs.webrtc.org/9987): This build target will soon contain
+  #                             the following files:
+  # sources = [
+  #   "asyncresolver.cc",
+  #   "asyncresolver.h",
+  #   "defaultsocketserver.cc",
+  #   "defaultsocketserver.h",
+  #   "message_handler.cc",
+  #   "message_handler.h",
+  #   "network_monitor.cc",
+  #   "network_monitor.h",
+  #   "network_monitor_factory.cc",
+  #   "network_monitor_factory.h",
+  #   "physical_socket_server.cc",
+  #   "physical_socket_server.h",
+  #   "signal_thread.cc",
+  #   "signal_thread.h",
+  #   "thread.cc",
+  #   "thread.h",
+  # ]
 }
 
 rtc_source_set("socket_factory") {
-  sources = [ "socket_factory.h" ]
-  deps = [
-    ":async_socket",
-    ":socket",
-  ]
+  # TODO(bugs.webrtc.org/9987): This build target will soon contain
+  #                             the following files:
+  # sources = [
+  #   "socket_factory.h",
+  # ]
 }
 
-rtc_library("async_socket") {
-  sources = [
-    "async_socket.cc",
-    "async_socket.h",
-  ]
-  deps = [
-    ":checks",
-    ":socket",
-    ":socket_address",
-    "third_party/sigslot",
-  ]
+rtc_source_set("async_socket") {
+  # TODO(bugs.webrtc.org/9987): This build target will soon contain
+  #                             the following files:
+  # sources = [
+  #   "async_socket.cc",
+  #   "async_socket.h",
+  # ]
 }
 
-rtc_library("socket") {
-  sources = [
-    "socket.cc",
-    "socket.h",
-  ]
-  deps = [
-    ":macromagic",
-    ":socket_address",
-  ]
-  if (is_win) {
-    deps += [ ":win32" ]
-  }
+rtc_source_set("socket") {
+  # TODO(bugs.webrtc.org/9987): This build target will soon contain
+  #                             the following files:
+  # sources = [
+  #   "socket.cc",
+  #   "socket.h",
+  # ]
 }
 
 rtc_source_set("network_constants") {
-  sources = [
-    "network_constants.cc",
-    "network_constants.h",
-  ]
-  deps = [ ":checks" ]
+  # TODO(bugs.webrtc.org/9987): This build target will soon contain
+  #                             the following files:
+  # sources = [
+  #   "network_constants.h",
+  # ]
 }
 
 if (is_android) {
-  rtc_library("ifaddrs_android") {
-    sources = [
-      "ifaddrs_android.cc",
-      "ifaddrs_android.h",
-    ]
-    libs = [
-      "log",
-      "GLESv2",
-    ]
+  rtc_source_set("ifaddrs_android") {
+    # TODO(bugs.webrtc.org/9987): This build target will soon contain
+    #                             the following files:
+    # sources = [
+    #   "ifaddrs_android.cc",
+    #   "ifaddrs_android.h",
+    # ]
   }
 }
 
 if (is_win) {
-  rtc_library("win32") {
+  rtc_source_set("win32") {
     sources = [
       "win32.cc",
       "win32.h",
@@ -908,20 +831,10 @@
   libs = []
   defines = []
   deps = [
-    ":async_resolver_interface",
-    ":async_socket",
     ":checks",
     ":deprecation",
-    ":ip_address",
-    ":network_constants",
-    ":null_socket_server",
     ":rtc_task_queue",
-    ":socket",
-    ":socket_address",
-    ":socket_factory",
-    ":socket_server",
     ":stringutils",
-    ":threading",
     "../api:array_view",
     "../api:function_view",
     "../api:scoped_refptr",
@@ -957,6 +870,10 @@
     "async_invoker_inl.h",
     "async_packet_socket.cc",
     "async_packet_socket.h",
+    "async_resolver_interface.cc",
+    "async_resolver_interface.h",
+    "async_socket.cc",
+    "async_socket.h",
     "async_tcp_socket.cc",
     "async_tcp_socket.h",
     "async_udp_socket.cc",
@@ -976,16 +893,30 @@
     "helpers.h",
     "http_common.cc",
     "http_common.h",
+    "ip_address.cc",
+    "ip_address.h",
     "keep_ref_until_done.h",
     "mdns_responder_interface.h",
     "message_digest.cc",
     "message_digest.h",
+    "message_handler.cc",
+    "message_handler.h",
     "net_helper.cc",
     "net_helper.h",
+    "net_helpers.cc",
+    "net_helpers.h",
     "network.cc",
     "network.h",
+    "network_constants.cc",
+    "network_constants.h",
+    "network_monitor.cc",
+    "network_monitor.h",
+    "network_monitor_factory.cc",
+    "network_monitor_factory.h",
     "network_route.cc",
     "network_route.h",
+    "null_socket_server.cc",
+    "null_socket_server.h",
     "openssl.h",
     "openssl_adapter.cc",
     "openssl_adapter.h",
@@ -999,6 +930,8 @@
     "openssl_stream_adapter.h",
     "openssl_utility.cc",
     "openssl_utility.h",
+    "physical_socket_server.cc",
+    "physical_socket_server.h",
     "proxy_info.cc",
     "proxy_info.h",
     "rtc_certificate.cc",
@@ -1007,10 +940,16 @@
     "rtc_certificate_generator.h",
     "signal_thread.h",
     "sigslot_repeater.h",
+    "socket.cc",
+    "socket.h",
     "socket_adapters.cc",
     "socket_adapters.h",
+    "socket_address.cc",
+    "socket_address.h",
     "socket_address_pair.cc",
     "socket_address_pair.h",
+    "socket_factory.h",
+    "socket_server.h",
     "ssl_adapter.cc",
     "ssl_adapter.h",
     "ssl_certificate.cc",
@@ -1023,6 +962,9 @@
     "ssl_stream_adapter.h",
     "stream.cc",
     "stream.h",
+    "thread.cc",
+    "thread.h",
+    "thread_message.h",
     "unique_id_generator.cc",
     "unique_id_generator.h",
   ]
@@ -1076,11 +1018,20 @@
   }
 
   if (is_android) {
-    deps += [ ":ifaddrs_android" ]
+    sources += [
+      "ifaddrs_android.cc",
+      "ifaddrs_android.h",
+    ]
+
+    libs += [
+      "log",
+      "GLESv2",
+    ]
   }
 
   if (is_ios || is_mac) {
     sources += [ "mac_ifaddrs_converter.cc" ]
+    deps += [ "system:cocoa_threading" ]
   }
 
   if (is_linux || is_chromeos) {
@@ -1135,7 +1086,6 @@
     ":rtc_base",
     ":rtc_base_tests_utils",
     ":stringutils",
-    ":threading",
     "../test:test_support",
   ]
   absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
@@ -1152,7 +1102,6 @@
     ":gunit_helpers",
     ":rtc_base",
     ":rtc_base_tests_utils",
-    ":threading",
     ":timeutils",
     "synchronization:mutex",
   ]
@@ -1211,15 +1160,8 @@
     "virtual_socket_server.h",
   ]
   deps = [
-    ":async_socket",
     ":checks",
-    ":ip_address",
     ":rtc_base",
-    ":socket",
-    ":socket_address",
-    ":socket_factory",
-    ":socket_server",
-    ":threading",
     "../api/units:time_delta",
     "../api/units:timestamp",
     "memory:fifo_buffer",
@@ -1287,19 +1229,11 @@
       "socket_unittest.h",
     ]
     deps = [
-      ":async_socket",
       ":checks",
       ":gunit_helpers",
-      ":ip_address",
-      ":net_helpers",
-      ":null_socket_server",
       ":rtc_base",
       ":rtc_base_tests_utils",
-      ":socket",
-      ":socket_address",
-      ":socket_server",
       ":testclient",
-      ":threading",
       "../system_wrappers",
       "../test:fileutils",
       "../test:test_main",
@@ -1363,13 +1297,10 @@
       sources += [ "win/windows_version_unittest.cc" ]
     }
     deps = [
-      ":async_socket",
       ":bounded_inline_vector",
       ":checks",
       ":divide_round",
       ":gunit_helpers",
-      ":ip_address",
-      ":null_socket_server",
       ":rate_limiter",
       ":rtc_base",
       ":rtc_base_approved",
@@ -1379,12 +1310,8 @@
       ":safe_compare",
       ":safe_minmax",
       ":sanitizer",
-      ":socket",
-      ":socket_address",
-      ":socket_server",
       ":stringutils",
       ":testclient",
-      ":threading",
       "../api:array_view",
       "../api:scoped_refptr",
       "../api/numerics",
@@ -1431,7 +1358,6 @@
       ":rtc_base_approved",
       ":rtc_event",
       ":rtc_operations_chain",
-      ":threading",
       "../test:test_support",
     ]
   }
@@ -1513,19 +1439,11 @@
       "unique_id_generator_unittest.cc",
     ]
     deps = [
-      ":async_socket",
       ":checks",
       ":gunit_helpers",
-      ":ip_address",
-      ":net_helpers",
-      ":null_socket_server",
       ":rtc_base_tests_utils",
-      ":socket_address",
-      ":socket_factory",
-      ":socket_server",
       ":stringutils",
       ":testclient",
-      ":threading",
       "../api:array_view",
       "../api/task_queue",
       "../api/task_queue:task_queue_test",
diff --git a/rtc_base/async_resolver.cc b/rtc_base/async_resolver.cc
deleted file mode 100644
index 198b498..0000000
--- a/rtc_base/async_resolver.cc
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- *  Copyright 2008 The WebRTC Project Authors. All rights reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#include "rtc_base/async_resolver.h"
-
-#include <string>
-#include <utility>
-
-#if defined(WEBRTC_WIN)
-#include <ws2spi.h>
-#include <ws2tcpip.h>
-
-#include "rtc_base/win32.h"
-#endif
-#if defined(WEBRTC_POSIX) && !defined(__native_client__)
-#if defined(WEBRTC_ANDROID)
-#include "rtc_base/ifaddrs_android.h"
-#else
-#include <ifaddrs.h>
-#endif
-#endif  // defined(WEBRTC_POSIX) && !defined(__native_client__)
-
-#include "api/task_queue/task_queue_base.h"
-#include "rtc_base/ip_address.h"
-#include "rtc_base/logging.h"
-#include "rtc_base/task_queue.h"
-#include "rtc_base/task_utils/to_queued_task.h"
-#include "rtc_base/third_party/sigslot/sigslot.h"  // for signal_with_thread...
-
-namespace rtc {
-
-int ResolveHostname(const std::string& hostname,
-                    int family,
-                    std::vector<IPAddress>* addresses) {
-#ifdef __native_client__
-  RTC_NOTREACHED();
-  RTC_LOG(LS_WARNING) << "ResolveHostname() is not implemented for NaCl";
-  return -1;
-#else   // __native_client__
-  if (!addresses) {
-    return -1;
-  }
-  addresses->clear();
-  struct addrinfo* result = nullptr;
-  struct addrinfo hints = {0};
-  hints.ai_family = family;
-  // |family| here will almost always be AF_UNSPEC, because |family| comes from
-  // AsyncResolver::addr_.family(), which comes from a SocketAddress constructed
-  // with a hostname. When a SocketAddress is constructed with a hostname, its
-  // family is AF_UNSPEC. However, if someday in the future we construct
-  // a SocketAddress with both a hostname and a family other than AF_UNSPEC,
-  // then it would be possible to get a specific family value here.
-
-  // The behavior of AF_UNSPEC is roughly "get both ipv4 and ipv6", as
-  // documented by the various operating systems:
-  // Linux: http://man7.org/linux/man-pages/man3/getaddrinfo.3.html
-  // Windows: https://msdn.microsoft.com/en-us/library/windows/desktop/
-  // ms738520(v=vs.85).aspx
-  // Mac: https://developer.apple.com/legacy/library/documentation/Darwin/
-  // Reference/ManPages/man3/getaddrinfo.3.html
-  // Android (source code, not documentation):
-  // https://android.googlesource.com/platform/bionic/+/
-  // 7e0bfb511e85834d7c6cb9631206b62f82701d60/libc/netbsd/net/getaddrinfo.c#1657
-  hints.ai_flags = AI_ADDRCONFIG;
-  int ret = getaddrinfo(hostname.c_str(), nullptr, &hints, &result);
-  if (ret != 0) {
-    return ret;
-  }
-  struct addrinfo* cursor = result;
-  for (; cursor; cursor = cursor->ai_next) {
-    if (family == AF_UNSPEC || cursor->ai_family == family) {
-      IPAddress ip;
-      if (IPFromAddrInfo(cursor, &ip)) {
-        addresses->push_back(ip);
-      }
-    }
-  }
-  freeaddrinfo(result);
-  return 0;
-#endif  // !__native_client__
-}
-
-AsyncResolver::AsyncResolver() : error_(-1) {}
-
-AsyncResolver::~AsyncResolver() {
-  RTC_DCHECK_RUN_ON(&sequence_checker_);
-}
-
-void AsyncResolver::Start(const SocketAddress& addr) {
-  RTC_DCHECK_RUN_ON(&sequence_checker_);
-  RTC_DCHECK(!destroy_called_);
-  addr_ = addr;
-  webrtc::TaskQueueBase* current_task_queue = webrtc::TaskQueueBase::Current();
-  popup_thread_ = Thread::Create();
-  popup_thread_->Start();
-  popup_thread_->PostTask(webrtc::ToQueuedTask(
-      [this, flag = safety_.flag(), addr, current_task_queue] {
-        std::vector<IPAddress> addresses;
-        int error =
-            ResolveHostname(addr.hostname().c_str(), addr.family(), &addresses);
-        current_task_queue->PostTask(webrtc::ToQueuedTask(
-            std::move(flag), [this, error, addresses = std::move(addresses)] {
-              RTC_DCHECK_RUN_ON(&sequence_checker_);
-              ResolveDone(std::move(addresses), error);
-            }));
-      }));
-}
-
-bool AsyncResolver::GetResolvedAddress(int family, SocketAddress* addr) const {
-  RTC_DCHECK_RUN_ON(&sequence_checker_);
-  RTC_DCHECK(!destroy_called_);
-  if (error_ != 0 || addresses_.empty())
-    return false;
-
-  *addr = addr_;
-  for (size_t i = 0; i < addresses_.size(); ++i) {
-    if (family == addresses_[i].family()) {
-      addr->SetResolvedIP(addresses_[i]);
-      return true;
-    }
-  }
-  return false;
-}
-
-int AsyncResolver::GetError() const {
-  RTC_DCHECK_RUN_ON(&sequence_checker_);
-  RTC_DCHECK(!destroy_called_);
-  return error_;
-}
-
-void AsyncResolver::Destroy(bool wait) {
-  // Some callers have trouble guaranteeing that Destroy is called on the
-  // sequence guarded by |sequence_checker_|.
-  // RTC_DCHECK_RUN_ON(&sequence_checker_);
-  RTC_DCHECK(!destroy_called_);
-  destroy_called_ = true;
-  MaybeSelfDestruct();
-}
-
-const std::vector<IPAddress>& AsyncResolver::addresses() const {
-  RTC_DCHECK_RUN_ON(&sequence_checker_);
-  RTC_DCHECK(!destroy_called_);
-  return addresses_;
-}
-
-void AsyncResolver::ResolveDone(std::vector<IPAddress> addresses, int error) {
-  addresses_ = addresses;
-  error_ = error;
-  recursion_check_ = true;
-  SignalDone(this);
-  MaybeSelfDestruct();
-}
-
-void AsyncResolver::MaybeSelfDestruct() {
-  if (!recursion_check_) {
-    delete this;
-  } else {
-    recursion_check_ = false;
-  }
-}
-
-}  // namespace rtc
diff --git a/rtc_base/async_resolver.h b/rtc_base/async_resolver.h
index c05377a..3c3ad82 100644
--- a/rtc_base/async_resolver.h
+++ b/rtc_base/async_resolver.h
@@ -11,62 +11,7 @@
 #ifndef RTC_BASE_ASYNC_RESOLVER_H_
 #define RTC_BASE_ASYNC_RESOLVER_H_
 
-#if defined(WEBRTC_POSIX)
-#include <sys/socket.h>
-#elif WEBRTC_WIN
-#include <winsock2.h>  // NOLINT
-#endif
-
-#include <memory>
-#include <vector>
-
-#include "rtc_base/async_resolver_interface.h"
-#include "rtc_base/ip_address.h"
-#include "rtc_base/socket_address.h"
-#include "rtc_base/synchronization/sequence_checker.h"
-#include "rtc_base/system/no_unique_address.h"
-#include "rtc_base/system/rtc_export.h"
-#include "rtc_base/task_utils/pending_task_safety_flag.h"
-#include "rtc_base/thread.h"
-#include "rtc_base/thread_annotations.h"
-
-namespace rtc {
-
-// AsyncResolver will perform async DNS resolution, signaling the result on
-// the SignalDone from AsyncResolverInterface when the operation completes.
-//
-// This class is thread-compatible, and all methods and destruction needs to
-// happen from the same rtc::Thread, except for Destroy which is allowed to
-// happen on another context provided it's not happening concurrently to another
-// public API call, and is the last access to the object.
-class RTC_EXPORT AsyncResolver : public AsyncResolverInterface {
- public:
-  AsyncResolver();
-  ~AsyncResolver() override;
-
-  void Start(const SocketAddress& addr) override;
-  bool GetResolvedAddress(int family, SocketAddress* addr) const override;
-  int GetError() const override;
-  void Destroy(bool wait) override;
-
-  const std::vector<IPAddress>& addresses() const;
-
- private:
-  void ResolveDone(std::vector<IPAddress> addresses, int error)
-      RTC_EXCLUSIVE_LOCKS_REQUIRED(sequence_checker_);
-  void MaybeSelfDestruct();
-
-  SocketAddress addr_ RTC_GUARDED_BY(sequence_checker_);
-  std::vector<IPAddress> addresses_ RTC_GUARDED_BY(sequence_checker_);
-  int error_ RTC_GUARDED_BY(sequence_checker_);
-  webrtc::ScopedTaskSafety safety_ RTC_GUARDED_BY(sequence_checker_);
-  std::unique_ptr<Thread> popup_thread_ RTC_GUARDED_BY(sequence_checker_);
-  bool recursion_check_ =
-      false;  // Protects against SignalDone calling into Destroy.
-  bool destroy_called_ = false;
-  RTC_NO_UNIQUE_ADDRESS webrtc::SequenceChecker sequence_checker_;
-};
-
-}  // namespace rtc
+// Placeholder header for the refactoring in:
+// https://webrtc-review.googlesource.com/c/src/+/196903
 
 #endif  // RTC_BASE_ASYNC_RESOLVER_H_
diff --git a/rtc_base/internal/default_socket_server.cc b/rtc_base/internal/default_socket_server.cc
deleted file mode 100644
index 5632b98..0000000
--- a/rtc_base/internal/default_socket_server.cc
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- *  Copyright 2020 The WebRTC Project Authors. All rights reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#include "rtc_base/internal/default_socket_server.h"
-
-#include <memory>
-
-#include "rtc_base/socket_server.h"
-
-#if defined(__native_client__)
-#include "rtc_base/null_socket_server.h"
-#else
-#include "rtc_base/physical_socket_server.h"
-#endif
-
-namespace rtc {
-
-std::unique_ptr<SocketServer> CreateDefaultSocketServer() {
-#if defined(__native_client__)
-  return std::unique_ptr<SocketServer>(new rtc::NullSocketServer);
-#else
-  return std::unique_ptr<SocketServer>(new rtc::PhysicalSocketServer);
-#endif
-}
-
-}  // namespace rtc
diff --git a/rtc_base/internal/default_socket_server.h b/rtc_base/internal/default_socket_server.h
deleted file mode 100644
index 5b3489f..0000000
--- a/rtc_base/internal/default_socket_server.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- *  Copyright 2020 The WebRTC Project Authors. All rights reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef RTC_BASE_INTERNAL_DEFAULT_SOCKET_SERVER_H_
-#define RTC_BASE_INTERNAL_DEFAULT_SOCKET_SERVER_H_
-
-#include <memory>
-
-#include "rtc_base/socket_server.h"
-
-namespace rtc {
-
-std::unique_ptr<SocketServer> CreateDefaultSocketServer();
-
-}  // namespace rtc
-
-#endif  // RTC_BASE_INTERNAL_DEFAULT_SOCKET_SERVER_H_
diff --git a/rtc_base/ip_address.cc b/rtc_base/ip_address.cc
index 9f1df58..9dd534c 100644
--- a/rtc_base/ip_address.cc
+++ b/rtc_base/ip_address.cc
@@ -20,9 +20,8 @@
 #include <netdb.h>
 #endif
 
-#include "rtc_base/ip_address.h"
-
 #include "rtc_base/byte_order.h"
+#include "rtc_base/ip_address.h"
 #include "rtc_base/net_helpers.h"
 #include "rtc_base/string_utils.h"
 
diff --git a/rtc_base/memory/BUILD.gn b/rtc_base/memory/BUILD.gn
index 8fbb549..838fbc6 100644
--- a/rtc_base/memory/BUILD.gn
+++ b/rtc_base/memory/BUILD.gn
@@ -36,7 +36,6 @@
   ]
   deps = [
     "..:rtc_base",
-    "..:threading",
     "../synchronization:mutex",
     "../task_utils:pending_task_safety_flag",
     "../task_utils:to_queued_task",
diff --git a/rtc_base/net_helpers.cc b/rtc_base/net_helpers.cc
index e51a51a..c6685e2 100644
--- a/rtc_base/net_helpers.cc
+++ b/rtc_base/net_helpers.cc
@@ -10,8 +10,6 @@
 
 #include "rtc_base/net_helpers.h"
 
-#include <memory>
-
 #if defined(WEBRTC_WIN)
 #include <ws2spi.h>
 #include <ws2tcpip.h>
@@ -19,7 +17,6 @@
 #include "rtc_base/win32.h"
 #endif
 #if defined(WEBRTC_POSIX) && !defined(__native_client__)
-#include <arpa/inet.h>
 #if defined(WEBRTC_ANDROID)
 #include "rtc_base/ifaddrs_android.h"
 #else
@@ -27,8 +24,145 @@
 #endif
 #endif  // defined(WEBRTC_POSIX) && !defined(__native_client__)
 
+#include "api/task_queue/task_queue_base.h"
+#include "rtc_base/logging.h"
+#include "rtc_base/signal_thread.h"
+#include "rtc_base/task_queue.h"
+#include "rtc_base/task_utils/to_queued_task.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"  // for signal_with_thread...
+
 namespace rtc {
 
+int ResolveHostname(const std::string& hostname,
+                    int family,
+                    std::vector<IPAddress>* addresses) {
+#ifdef __native_client__
+  RTC_NOTREACHED();
+  RTC_LOG(LS_WARNING) << "ResolveHostname() is not implemented for NaCl";
+  return -1;
+#else   // __native_client__
+  if (!addresses) {
+    return -1;
+  }
+  addresses->clear();
+  struct addrinfo* result = nullptr;
+  struct addrinfo hints = {0};
+  hints.ai_family = family;
+  // |family| here will almost always be AF_UNSPEC, because |family| comes from
+  // AsyncResolver::addr_.family(), which comes from a SocketAddress constructed
+  // with a hostname. When a SocketAddress is constructed with a hostname, its
+  // family is AF_UNSPEC. However, if someday in the future we construct
+  // a SocketAddress with both a hostname and a family other than AF_UNSPEC,
+  // then it would be possible to get a specific family value here.
+
+  // The behavior of AF_UNSPEC is roughly "get both ipv4 and ipv6", as
+  // documented by the various operating systems:
+  // Linux: http://man7.org/linux/man-pages/man3/getaddrinfo.3.html
+  // Windows: https://msdn.microsoft.com/en-us/library/windows/desktop/
+  // ms738520(v=vs.85).aspx
+  // Mac: https://developer.apple.com/legacy/library/documentation/Darwin/
+  // Reference/ManPages/man3/getaddrinfo.3.html
+  // Android (source code, not documentation):
+  // https://android.googlesource.com/platform/bionic/+/
+  // 7e0bfb511e85834d7c6cb9631206b62f82701d60/libc/netbsd/net/getaddrinfo.c#1657
+  hints.ai_flags = AI_ADDRCONFIG;
+  int ret = getaddrinfo(hostname.c_str(), nullptr, &hints, &result);
+  if (ret != 0) {
+    return ret;
+  }
+  struct addrinfo* cursor = result;
+  for (; cursor; cursor = cursor->ai_next) {
+    if (family == AF_UNSPEC || cursor->ai_family == family) {
+      IPAddress ip;
+      if (IPFromAddrInfo(cursor, &ip)) {
+        addresses->push_back(ip);
+      }
+    }
+  }
+  freeaddrinfo(result);
+  return 0;
+#endif  // !__native_client__
+}
+
+AsyncResolver::AsyncResolver() : error_(-1) {}
+
+AsyncResolver::~AsyncResolver() {
+  RTC_DCHECK_RUN_ON(&sequence_checker_);
+}
+
+void AsyncResolver::Start(const SocketAddress& addr) {
+  RTC_DCHECK_RUN_ON(&sequence_checker_);
+  RTC_DCHECK(!destroy_called_);
+  addr_ = addr;
+  webrtc::TaskQueueBase* current_task_queue = webrtc::TaskQueueBase::Current();
+  popup_thread_ = Thread::Create();
+  popup_thread_->Start();
+  popup_thread_->PostTask(webrtc::ToQueuedTask(
+      [this, flag = safety_.flag(), addr, current_task_queue] {
+        std::vector<IPAddress> addresses;
+        int error =
+            ResolveHostname(addr.hostname().c_str(), addr.family(), &addresses);
+        current_task_queue->PostTask(webrtc::ToQueuedTask(
+            std::move(flag), [this, error, addresses = std::move(addresses)] {
+              RTC_DCHECK_RUN_ON(&sequence_checker_);
+              ResolveDone(std::move(addresses), error);
+            }));
+      }));
+}
+
+bool AsyncResolver::GetResolvedAddress(int family, SocketAddress* addr) const {
+  RTC_DCHECK_RUN_ON(&sequence_checker_);
+  RTC_DCHECK(!destroy_called_);
+  if (error_ != 0 || addresses_.empty())
+    return false;
+
+  *addr = addr_;
+  for (size_t i = 0; i < addresses_.size(); ++i) {
+    if (family == addresses_[i].family()) {
+      addr->SetResolvedIP(addresses_[i]);
+      return true;
+    }
+  }
+  return false;
+}
+
+int AsyncResolver::GetError() const {
+  RTC_DCHECK_RUN_ON(&sequence_checker_);
+  RTC_DCHECK(!destroy_called_);
+  return error_;
+}
+
+void AsyncResolver::Destroy(bool wait) {
+  // Some callers have trouble guaranteeing that Destroy is called on the
+  // sequence guarded by |sequence_checker_|.
+  // RTC_DCHECK_RUN_ON(&sequence_checker_);
+  RTC_DCHECK(!destroy_called_);
+  destroy_called_ = true;
+  MaybeSelfDestruct();
+}
+
+const std::vector<IPAddress>& AsyncResolver::addresses() const {
+  RTC_DCHECK_RUN_ON(&sequence_checker_);
+  RTC_DCHECK(!destroy_called_);
+  return addresses_;
+}
+
+void AsyncResolver::ResolveDone(std::vector<IPAddress> addresses, int error) {
+  addresses_ = addresses;
+  error_ = error;
+  recursion_check_ = true;
+  SignalDone(this);
+  MaybeSelfDestruct();
+}
+
+void AsyncResolver::MaybeSelfDestruct() {
+  if (!recursion_check_) {
+    delete this;
+  } else {
+    recursion_check_ = false;
+  }
+}
+
 const char* inet_ntop(int af, const void* src, char* dst, socklen_t size) {
 #if defined(WEBRTC_WIN)
   return win32_inet_ntop(af, src, dst, size);
diff --git a/rtc_base/net_helpers.h b/rtc_base/net_helpers.h
index 4ed8478..172a222 100644
--- a/rtc_base/net_helpers.h
+++ b/rtc_base/net_helpers.h
@@ -15,12 +15,57 @@
 #include <sys/socket.h>
 #elif WEBRTC_WIN
 #include <winsock2.h>  // NOLINT
-
-#include "rtc_base/win32.h"
 #endif
 
+#include <vector>
+
+#include "rtc_base/async_resolver_interface.h"
+#include "rtc_base/ip_address.h"
+#include "rtc_base/socket_address.h"
+#include "rtc_base/synchronization/sequence_checker.h"
+#include "rtc_base/system/no_unique_address.h"
+#include "rtc_base/system/rtc_export.h"
+#include "rtc_base/task_utils/pending_task_safety_flag.h"
+#include "rtc_base/thread.h"
+#include "rtc_base/thread_annotations.h"
+
 namespace rtc {
 
+// AsyncResolver will perform async DNS resolution, signaling the result on
+// the SignalDone from AsyncResolverInterface when the operation completes.
+//
+// This class is thread-compatible, and all methods and destruction needs to
+// happen from the same rtc::Thread, except for Destroy which is allowed to
+// happen on another context provided it's not happening concurrently to another
+// public API call, and is the last access to the object.
+class RTC_EXPORT AsyncResolver : public AsyncResolverInterface {
+ public:
+  AsyncResolver();
+  ~AsyncResolver() override;
+
+  void Start(const SocketAddress& addr) override;
+  bool GetResolvedAddress(int family, SocketAddress* addr) const override;
+  int GetError() const override;
+  void Destroy(bool wait) override;
+
+  const std::vector<IPAddress>& addresses() const;
+
+ private:
+  void ResolveDone(std::vector<IPAddress> addresses, int error)
+      RTC_EXCLUSIVE_LOCKS_REQUIRED(sequence_checker_);
+  void MaybeSelfDestruct();
+
+  SocketAddress addr_ RTC_GUARDED_BY(sequence_checker_);
+  std::vector<IPAddress> addresses_ RTC_GUARDED_BY(sequence_checker_);
+  int error_ RTC_GUARDED_BY(sequence_checker_);
+  webrtc::ScopedTaskSafety safety_ RTC_GUARDED_BY(sequence_checker_);
+  std::unique_ptr<Thread> popup_thread_ RTC_GUARDED_BY(sequence_checker_);
+  bool recursion_check_ =
+      false;  // Protects against SignalDone calling into Destroy.
+  bool destroy_called_ = false;
+  RTC_NO_UNIQUE_ADDRESS webrtc::SequenceChecker sequence_checker_;
+};
+
 // rtc namespaced wrappers for inet_ntop and inet_pton so we can avoid
 // the windows-native versions of these.
 const char* inet_ntop(int af, const void* src, char* dst, socklen_t size);
@@ -28,7 +73,6 @@
 
 bool HasIPv4Enabled();
 bool HasIPv6Enabled();
-
 }  // namespace rtc
 
 #endif  // RTC_BASE_NET_HELPERS_H_
diff --git a/rtc_base/physical_socket_server.cc b/rtc_base/physical_socket_server.cc
index adf3fab..3cb7c20 100644
--- a/rtc_base/physical_socket_server.cc
+++ b/rtc_base/physical_socket_server.cc
@@ -119,6 +119,14 @@
 
 namespace rtc {
 
+std::unique_ptr<SocketServer> SocketServer::CreateDefault() {
+#if defined(__native_client__)
+  return std::unique_ptr<SocketServer>(new rtc::NullSocketServer);
+#else
+  return std::unique_ptr<SocketServer>(new rtc::PhysicalSocketServer);
+#endif
+}
+
 PhysicalSocket::PhysicalSocket(PhysicalSocketServer* ss, SOCKET s)
     : ss_(ss),
       s_(s),
diff --git a/rtc_base/physical_socket_server.h b/rtc_base/physical_socket_server.h
index 5a09aac..cc21a67 100644
--- a/rtc_base/physical_socket_server.h
+++ b/rtc_base/physical_socket_server.h
@@ -21,9 +21,8 @@
 #include <unordered_map>
 #include <vector>
 
-#include "rtc_base/async_resolver.h"
-#include "rtc_base/async_resolver_interface.h"
 #include "rtc_base/deprecated/recursive_critical_section.h"
+#include "rtc_base/net_helpers.h"
 #include "rtc_base/socket_server.h"
 #include "rtc_base/system/rtc_export.h"
 #include "rtc_base/thread_annotations.h"
diff --git a/rtc_base/physical_socket_server_unittest.cc b/rtc_base/physical_socket_server_unittest.cc
index 3762762..648f397 100644
--- a/rtc_base/physical_socket_server_unittest.cc
+++ b/rtc_base/physical_socket_server_unittest.cc
@@ -18,7 +18,6 @@
 #include "rtc_base/gunit.h"
 #include "rtc_base/ip_address.h"
 #include "rtc_base/logging.h"
-#include "rtc_base/net_helpers.h"
 #include "rtc_base/network_monitor.h"
 #include "rtc_base/socket_unittest.h"
 #include "rtc_base/test_utils.h"
diff --git a/rtc_base/synchronization/BUILD.gn b/rtc_base/synchronization/BUILD.gn
index 16922af..618e224 100644
--- a/rtc_base/synchronization/BUILD.gn
+++ b/rtc_base/synchronization/BUILD.gn
@@ -88,7 +88,6 @@
       "..:macromagic",
       "..:rtc_base",
       "..:rtc_event",
-      "..:threading",
       "../../test:test_support",
       "//third_party/google_benchmark",
     ]
diff --git a/rtc_base/thread.cc b/rtc_base/thread.cc
index 1045398..3244902 100644
--- a/rtc_base/thread.cc
+++ b/rtc_base/thread.cc
@@ -33,7 +33,6 @@
 #include "rtc_base/checks.h"
 #include "rtc_base/deprecated/recursive_critical_section.h"
 #include "rtc_base/event.h"
-#include "rtc_base/internal/default_socket_server.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/null_socket_server.h"
 #include "rtc_base/synchronization/sequence_checker.h"
@@ -258,7 +257,7 @@
 #ifndef NO_MAIN_THREAD_WRAPPING
   // Only autowrap the thread which instantiated the ThreadManager.
   if (!thread && manager->IsMainThread()) {
-    thread = new Thread(CreateDefaultSocketServer());
+    thread = new Thread(SocketServer::CreateDefault());
     thread->WrapCurrentWithThreadManager(manager, true);
   }
 #endif
@@ -327,7 +326,7 @@
 Thread* ThreadManager::WrapCurrentThread() {
   Thread* result = CurrentThread();
   if (nullptr == result) {
-    result = new Thread(CreateDefaultSocketServer());
+    result = new Thread(SocketServer::CreateDefault());
     result->WrapCurrentWithThreadManager(this, true);
   }
   return result;
@@ -697,7 +696,7 @@
 }
 
 std::unique_ptr<Thread> Thread::CreateWithSocketServer() {
-  return std::unique_ptr<Thread>(new Thread(CreateDefaultSocketServer()));
+  return std::unique_ptr<Thread>(new Thread(SocketServer::CreateDefault()));
 }
 
 std::unique_ptr<Thread> Thread::Create() {
@@ -1138,7 +1137,7 @@
 }
 
 AutoThread::AutoThread()
-    : Thread(CreateDefaultSocketServer(), /*do_init=*/false) {
+    : Thread(SocketServer::CreateDefault(), /*do_init=*/false) {
   if (!ThreadManager::Instance()->CurrentThread()) {
     // DoInit registers with ThreadManager. Do that only if we intend to
     // be rtc::Thread::Current(), otherwise ProcessAllMessageQueuesInternal will
diff --git a/rtc_base/thread_unittest.cc b/rtc_base/thread_unittest.cc
index 705e268..5132198 100644
--- a/rtc_base/thread_unittest.cc
+++ b/rtc_base/thread_unittest.cc
@@ -19,7 +19,6 @@
 #include "rtc_base/atomic_ops.h"
 #include "rtc_base/event.h"
 #include "rtc_base/gunit.h"
-#include "rtc_base/internal/default_socket_server.h"
 #include "rtc_base/null_socket_server.h"
 #include "rtc_base/physical_socket_server.h"
 #include "rtc_base/socket_address.h"
@@ -506,7 +505,7 @@
 
 class ThreadQueueTest : public ::testing::Test, public Thread {
  public:
-  ThreadQueueTest() : Thread(CreateDefaultSocketServer(), true) {}
+  ThreadQueueTest() : Thread(SocketServer::CreateDefault(), true) {}
   bool IsLocked_Worker() {
     if (!CritForTest()->TryEnter()) {
       return true;
@@ -556,7 +555,7 @@
 }
 
 TEST_F(ThreadQueueTest, DelayedPostsWithIdenticalTimesAreProcessedInFifoOrder) {
-  Thread q(CreateDefaultSocketServer(), true);
+  Thread q(SocketServer::CreateDefault(), true);
   DelayedPostsWithIdenticalTimesAreProcessedInFifoOrder(&q);
 
   NullSocketServer nullss;
diff --git a/rtc_tools/BUILD.gn b/rtc_tools/BUILD.gn
index 1f0892b..9ba498c 100644
--- a/rtc_tools/BUILD.gn
+++ b/rtc_tools/BUILD.gn
@@ -181,7 +181,6 @@
       "../rtc_base",
       "../rtc_base:rtc_base_approved",
       "../rtc_base:rtc_json",
-      "../rtc_base:threading",
       "../rtc_base/system:file_wrapper",
       "../test:fileutils",
       "../test:rtp_test_utils",
@@ -490,8 +489,6 @@
       "../common_video",
       "../rtc_base",
       "../rtc_base:checks",
-      "../rtc_base:null_socket_server",
-      "../rtc_base:threading",
       "../test:fileutils",
       "../test:test_main",
       "../test:test_support",
diff --git a/rtc_tools/network_tester/BUILD.gn b/rtc_tools/network_tester/BUILD.gn
index 95b5c90..b270262 100644
--- a/rtc_tools/network_tester/BUILD.gn
+++ b/rtc_tools/network_tester/BUILD.gn
@@ -45,12 +45,9 @@
       "../../rtc_base",
       "../../rtc_base:checks",
       "../../rtc_base:ignore_wundef",
-      "../../rtc_base:ip_address",
       "../../rtc_base:protobuf_utils",
       "../../rtc_base:rtc_base_approved",
       "../../rtc_base:rtc_task_queue",
-      "../../rtc_base:socket_address",
-      "../../rtc_base:threading",
       "../../rtc_base/synchronization:mutex",
       "../../rtc_base/synchronization:sequence_checker",
       "../../rtc_base/system:no_unique_address",
diff --git a/sdk/BUILD.gn b/sdk/BUILD.gn
index e557ce4..00c87ef 100644
--- a/sdk/BUILD.gn
+++ b/sdk/BUILD.gn
@@ -236,10 +236,7 @@
 
         sources = [ "objc/native/src/audio/audio_session_observer.h" ]
 
-        deps = [
-          "../rtc_base",
-          "../rtc_base:threading",
-        ]
+        deps = [ "../rtc_base" ]
       }
 
       rtc_library("audio_device") {
@@ -268,7 +265,6 @@
           "../modules/audio_device:audio_device_generic",
           "../rtc_base",
           "../rtc_base:checks",
-          "../rtc_base:threading",
           "../system_wrappers:field_trial",
           "../system_wrappers:metrics",
         ]
@@ -342,11 +338,7 @@
 
         sources = [ "objc/native/src/network_monitor_observer.h" ]
 
-        deps = [
-          "../rtc_base",
-          "../rtc_base:network_constants",
-          "../rtc_base:threading",
-        ]
+        deps = [ "../rtc_base" ]
       }
 
       rtc_library("network_monitor_objc") {
@@ -391,7 +383,6 @@
         "../media:rtc_media_base",
         "../rtc_base",
         "../rtc_base:checks",
-        "../rtc_base:threading",
         "//third_party/libyuv",
       ]
 
@@ -982,7 +973,6 @@
         "../pc:peerconnection",
         "../rtc_base",
         "../rtc_base:checks",
-        "../rtc_base:network_constants",
         "../system_wrappers:field_trial",
         "../system_wrappers:metrics",
       ]
@@ -1087,7 +1077,6 @@
             ":sdk_unittests_bundle_data",
             ":sdk_unittests_sources",
             "../rtc_base",
-            "../rtc_base:threading",
             "//test:test_support",
           ]
           ldflags = [ "-all_load" ]
@@ -1107,7 +1096,6 @@
             ":framework_objc+link",
             ":ios_framework_bundle",
             "../rtc_base",
-            "../rtc_base:threading",
             "//test:test_support",
           ]
         }
@@ -1512,7 +1500,6 @@
         "../api/video_codecs:video_codecs_api",
         "../common_video",
         "../rtc_base",
-        "../rtc_base:threading",
       ]
       if (is_ios) {
         deps += [ ":native_network_monitor" ]
@@ -1533,7 +1520,6 @@
           ":network_monitor_objc",
           ":network_monitor_observer",
           "../rtc_base",
-          "../rtc_base:threading",
           "../rtc_base/synchronization:sequence_checker",
         ]
       }
diff --git a/sdk/android/BUILD.gn b/sdk/android/BUILD.gn
index b7992e1..ce5db77 100644
--- a/sdk/android/BUILD.gn
+++ b/sdk/android/BUILD.gn
@@ -559,9 +559,7 @@
       "../../api:scoped_refptr",
       "../../rtc_base",
       "../../rtc_base:checks",
-      "../../rtc_base:ip_address",
       "../../rtc_base:rtc_base_approved",
-      "../../rtc_base:threading",
       "../../rtc_base/synchronization:sequence_checker",
       "../../system_wrappers:field_trial",
       "../../system_wrappers:metrics",
@@ -658,7 +656,6 @@
       "../../rtc_base",
       "../../rtc_base:checks",
       "../../rtc_base:rtc_task_queue",
-      "../../rtc_base:threading",
       "../../rtc_base/synchronization:mutex",
       "../../rtc_base/task_utils:to_queued_task",
       "//third_party/libyuv",
@@ -749,7 +746,6 @@
       "../../rtc_base:checks",
       "../../rtc_base:rtc_base_approved",
       "../../rtc_base:rtc_task_queue",
-      "../../rtc_base:threading",
       "../../rtc_base/system:thread_registry",
       "../../system_wrappers:field_trial",
     ]
@@ -920,7 +916,6 @@
 
     deps = [
       ":base_jni",
-      "../../rtc_base:threading",
       "//rtc_base",
     ]
   }
@@ -935,7 +930,6 @@
     deps = [
       ":base_jni",
       ":peerconnection_jni",
-      "../../rtc_base:threading",
       "//api:libjingle_peerconnection_api",
       "//api/video_codecs:video_codecs_api",
       "//rtc_base",
@@ -974,7 +968,6 @@
       ":native_api_jni",
       ":video_jni",
       ":videoframe_jni",
-      "../../rtc_base:threading",
       "//api:libjingle_peerconnection_api",
       "//api:media_stream_interface",
       "//api/video:video_frame",
@@ -1478,7 +1471,6 @@
       "../../modules/utility",
       "../../pc:libjingle_peerconnection",
       "../../rtc_base:checks",
-      "../../rtc_base:ip_address",
       "../../rtc_base:rtc_base",
       "../../rtc_base/synchronization:mutex",
       "../../rtc_base/system:inline",
diff --git a/test/BUILD.gn b/test/BUILD.gn
index a337979..0e1209f 100644
--- a/test/BUILD.gn
+++ b/test/BUILD.gn
@@ -145,7 +145,6 @@
         "../api:scoped_refptr",
         "../modules/video_capture:video_capture_module",
         "../rtc_base",
-        "../rtc_base:threading",
         "../sdk:base_objc",
         "../sdk:native_api",
         "../sdk:native_video",
@@ -416,7 +415,6 @@
       "../rtc_base:checks",
       "../rtc_base:logging",
       "../rtc_base:rtc_base_approved",
-      "../rtc_base:threading",
       "../system_wrappers:field_trial",
       "../system_wrappers:metrics",
     ]
@@ -867,7 +865,6 @@
     "../rtc_base:rtc_base",
     "../rtc_base:rtc_event",
     "../rtc_base:task_queue_for_test",
-    "../rtc_base:threading",
     "../rtc_base/task_utils:to_queued_task",
     "../system_wrappers",
     "../system_wrappers:field_trial",
diff --git a/test/fuzzers/BUILD.gn b/test/fuzzers/BUILD.gn
index af7a4b7..4975f42 100644
--- a/test/fuzzers/BUILD.gn
+++ b/test/fuzzers/BUILD.gn
@@ -439,7 +439,6 @@
   deps = [
     "../../p2p:rtc_p2p",
     "../../rtc_base",
-    "../../rtc_base:threading",
   ]
 }
 
diff --git a/test/network/BUILD.gn b/test/network/BUILD.gn
index 9c5c2be..383f149 100644
--- a/test/network/BUILD.gn
+++ b/test/network/BUILD.gn
@@ -51,16 +51,10 @@
     "../../call:simulated_network",
     "../../p2p:p2p_server_utils",
     "../../rtc_base",
-    "../../rtc_base:async_socket",
-    "../../rtc_base:ip_address",
-    "../../rtc_base:network_constants",
     "../../rtc_base:rtc_base_tests_utils",
     "../../rtc_base:rtc_task_queue",
     "../../rtc_base:safe_minmax",
-    "../../rtc_base:socket_address",
-    "../../rtc_base:socket_server",
     "../../rtc_base:task_queue_for_test",
-    "../../rtc_base:threading",
     "../../rtc_base/synchronization:mutex",
     "../../rtc_base/synchronization:sequence_checker",
     "../../rtc_base/task_utils:repeating_task",
@@ -132,7 +126,6 @@
     "../../call:simulated_network",
     "../../rtc_base",
     "../../rtc_base:logging",
-    "../../rtc_base:network_constants",
     "../../rtc_base:rtc_event",
     "../time_controller",
   ]
diff --git a/test/pc/e2e/BUILD.gn b/test/pc/e2e/BUILD.gn
index 8af76c3..3901297 100644
--- a/test/pc/e2e/BUILD.gn
+++ b/test/pc/e2e/BUILD.gn
@@ -61,7 +61,6 @@
       "../../../api/transport:webrtc_key_value_config",
       "../../../api/video_codecs:video_codecs_api",
       "../../../rtc_base",
-      "../../../rtc_base:threading",
     ]
   }
 
@@ -329,7 +328,6 @@
         "../../../api/transport:network_control",
         "../../../api/video_codecs:video_codecs_api",
         "../../../rtc_base",
-        "../../../rtc_base:threading",
       ]
       absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
     }
@@ -406,7 +404,6 @@
         "../../../rtc_base:rtc_base_approved",
         "../../../rtc_base:safe_conversions",
         "../../../rtc_base:task_queue_for_test",
-        "../../../rtc_base:threading",
         "../../../rtc_base/synchronization:mutex",
         "../../../system_wrappers",
         "../../../system_wrappers:field_trial",
@@ -700,7 +697,6 @@
       "../../../api/units:data_size",
       "../../../api/units:timestamp",
       "../../../rtc_base",
-      "../../../rtc_base:ip_address",
       "../../../rtc_base:rtc_event",
       "../../../rtc_base:stringutils",
       "../../../rtc_base/synchronization:mutex",
diff --git a/test/peer_scenario/BUILD.gn b/test/peer_scenario/BUILD.gn
index 2034c9a..70a7471 100644
--- a/test/peer_scenario/BUILD.gn
+++ b/test/peer_scenario/BUILD.gn
@@ -48,7 +48,6 @@
       "../../pc:pc_test_utils",
       "../../pc:rtc_pc_base",
       "../../rtc_base",
-      "../../rtc_base:null_socket_server",
       "../../rtc_base:stringutils",
       "../logging:log_writer",
       "../network:emulated_network",
diff --git a/test/scenario/BUILD.gn b/test/scenario/BUILD.gn
index 4316351..f5c22fc 100644
--- a/test/scenario/BUILD.gn
+++ b/test/scenario/BUILD.gn
@@ -132,9 +132,7 @@
       "../../rtc_base:rtc_stats_counters",
       "../../rtc_base:rtc_task_queue",
       "../../rtc_base:safe_minmax",
-      "../../rtc_base:socket_address",
       "../../rtc_base:task_queue_for_test",
-      "../../rtc_base:threading",
       "../../rtc_base/synchronization:mutex",
       "../../rtc_base/synchronization:sequence_checker",
       "../../rtc_base/task_utils:repeating_task",
diff --git a/test/time_controller/BUILD.gn b/test/time_controller/BUILD.gn
index ee49445..c9fffe6 100644
--- a/test/time_controller/BUILD.gn
+++ b/test/time_controller/BUILD.gn
@@ -35,7 +35,6 @@
     "../../modules/utility:utility",
     "../../rtc_base",
     "../../rtc_base:checks",
-    "../../rtc_base:null_socket_server",
     "../../rtc_base:rtc_base_tests_utils",
     "../../rtc_base:rtc_event",
     "../../rtc_base/synchronization:mutex",
@@ -63,7 +62,6 @@
       "../../rtc_base",
       "../../rtc_base:rtc_base_approved",
       "../../rtc_base:rtc_task_queue",
-      "../../rtc_base:threading",
       "../../rtc_base/synchronization:mutex",
       "../../rtc_base/task_utils:repeating_task",
       "../../rtc_base/task_utils:to_queued_task",
diff --git a/video/BUILD.gn b/video/BUILD.gn
index acd1616..f3e5817 100644
--- a/video/BUILD.gn
+++ b/video/BUILD.gn
@@ -120,7 +120,6 @@
     "../rtc_base:rtc_numerics",
     "../rtc_base:rtc_task_queue",
     "../rtc_base:stringutils",
-    "../rtc_base:threading",
     "../rtc_base:weak_ptr",
     "../rtc_base/experiments:alr_experiment",
     "../rtc_base/experiments:field_trial_parser",
@@ -669,7 +668,6 @@
       "../rtc_base:rtc_numerics",
       "../rtc_base:rtc_task_queue",
       "../rtc_base:task_queue_for_test",
-      "../rtc_base:threading",
       "../rtc_base/experiments:alr_experiment",
       "../rtc_base/synchronization:mutex",
       "../rtc_base/synchronization:sequence_checker",