Reland "Use AsyncDnsResolver API in bindings and tests"

This reverts commit fc5a4f74ac13dc878cb8428a7c19c8bcf0ee8037.

Reason for revert: Added back support for old API

Original change's description:
> Revert "Use AsyncDnsResolver API in bindings and tests"
>
> This reverts commit a0577605b03da461719ce5b5eb0fb1ed55ad1065.
>
> Reason for revert: Speculative revert due to downstream tests
>
> Original change's description:
> > Use AsyncDnsResolver API in bindings and tests
> >
> > Bug: webrtc:12598
> > Change-Id: Ia4db91bf6dcd257cd85f4089dee4c7bbea433216
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/234342
> > Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> > Commit-Queue: Markus Handell <handellm@webrtc.org>
> > Reviewed-by: Markus Handell <handellm@webrtc.org>
> > Cr-Commit-Position: refs/heads/main@{#35154}
>
> TBR=hta@webrtc.org,handellm@webrtc.org,webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com
>
> Change-Id: I57f3ff70b6374e7be670526a90dfb1651e9b1148
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:12598
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/234382
> Reviewed-by: Björn Terelius <terelius@google.com>
> Commit-Queue: Björn Terelius <terelius@google.com>
> Cr-Commit-Position: refs/heads/main@{#35157}

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

Bug: webrtc:12598
Change-Id: Icf2cee36746006979b790e5846a2889b54d25386
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/235204
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35211}
diff --git a/p2p/BUILD.gn b/p2p/BUILD.gn
index 3029e0a..d09cab9 100644
--- a/p2p/BUILD.gn
+++ b/p2p/BUILD.gn
@@ -108,6 +108,7 @@
     "../rtc_base:rtc_numerics",
     "../rtc_base:socket",
     "../rtc_base:socket_address",
+    "../rtc_base:socket_factory",
     "../rtc_base:socket_server",
     "../rtc_base:threading",
     "../rtc_base/experiments:field_trial_parser",
diff --git a/p2p/base/basic_packet_socket_factory.cc b/p2p/base/basic_packet_socket_factory.cc
index a53ed96..901e3b9 100644
--- a/p2p/base/basic_packet_socket_factory.cc
+++ b/p2p/base/basic_packet_socket_factory.cc
@@ -14,16 +14,15 @@
 
 #include <string>
 
+#include "api/async_dns_resolver.h"
+#include "api/wrapping_async_dns_resolver.h"
 #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"
 #include "rtc_base/logging.h"
-#include "rtc_base/net_helpers.h"
 #include "rtc_base/socket.h"
 #include "rtc_base/socket_adapters.h"
-#include "rtc_base/socket_server.h"
 #include "rtc_base/ssl_adapter.h"
 
 namespace rtc {
@@ -194,6 +193,12 @@
   return new AsyncResolver();
 }
 
+std::unique_ptr<webrtc::AsyncDnsResolverInterface>
+BasicPacketSocketFactory::CreateAsyncDnsResolver() {
+  return std::make_unique<webrtc::WrappingAsyncDnsResolver>(
+      new AsyncResolver());
+}
+
 int BasicPacketSocketFactory::BindSocket(Socket* socket,
                                          const SocketAddress& local_address,
                                          uint16_t min_port,
diff --git a/p2p/base/basic_packet_socket_factory.h b/p2p/base/basic_packet_socket_factory.h
index 616d6de..f4282e1 100644
--- a/p2p/base/basic_packet_socket_factory.h
+++ b/p2p/base/basic_packet_socket_factory.h
@@ -11,10 +11,18 @@
 #ifndef P2P_BASE_BASIC_PACKET_SOCKET_FACTORY_H_
 #define P2P_BASE_BASIC_PACKET_SOCKET_FACTORY_H_
 
+#include <stdint.h>
+
+#include <memory>
 #include <string>
 
+#include "api/async_dns_resolver.h"
 #include "api/packet_socket_factory.h"
+#include "rtc_base/async_packet_socket.h"
+#include "rtc_base/proxy_info.h"
 #include "rtc_base/socket.h"
+#include "rtc_base/socket_address.h"
+#include "rtc_base/socket_factory.h"
 
 namespace rtc {
 
@@ -39,8 +47,13 @@
       const std::string& user_agent,
       const PacketSocketTcpOptions& tcp_options) override;
 
+  // TODO(bugs.webrtc.org/12598) Remove when downstream stops using it.
+  ABSL_DEPRECATED("Use CreateAsyncDnsResolver")
   AsyncResolverInterface* CreateAsyncResolver() override;
 
+  std::unique_ptr<webrtc::AsyncDnsResolverInterface> CreateAsyncDnsResolver()
+      override;
+
  private:
   int BindSocket(Socket* socket,
                  const SocketAddress& local_address,
diff --git a/p2p/base/port_unittest.cc b/p2p/base/port_unittest.cc
index a610eb5..52153d8 100644
--- a/p2p/base/port_unittest.cc
+++ b/p2p/base/port_unittest.cc
@@ -1002,7 +1002,10 @@
   void set_next_client_tcp_socket(AsyncPacketSocket* next_client_tcp_socket) {
     next_client_tcp_socket_ = next_client_tcp_socket;
   }
-  rtc::AsyncResolverInterface* CreateAsyncResolver() override { return NULL; }
+  std::unique_ptr<webrtc::AsyncDnsResolverInterface> CreateAsyncDnsResolver()
+      override {
+    return nullptr;
+  }
 
  private:
   AsyncPacketSocket* next_udp_socket_;
diff --git a/test/network/emulated_turn_server.cc b/test/network/emulated_turn_server.cc
index 4cd2b51..07118bc 100644
--- a/test/network/emulated_turn_server.cc
+++ b/test/network/emulated_turn_server.cc
@@ -101,7 +101,8 @@
       const rtc::PacketSocketTcpOptions& tcp_options) override {
     return nullptr;
   }
-  rtc::AsyncResolverInterface* CreateAsyncResolver() override {
+  std::unique_ptr<webrtc::AsyncDnsResolverInterface> CreateAsyncDnsResolver()
+      override {
     return nullptr;
   }