Export rtc::Socket for Chromium component builds

As of https://webrtc-review.googlesource.com/c/src/+/332200, socket is
no longer pure virtual and needs to be exported for Chromium component
build tests.

Bug: webrtc:15368
Change-Id: I3d2fcd329bc859d07106ae740eb2791eccaea1f9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/334060
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Auto-Submit: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41504}
diff --git a/rtc_base/BUILD.gn b/rtc_base/BUILD.gn
index 7acff4d..174f410 100644
--- a/rtc_base/BUILD.gn
+++ b/rtc_base/BUILD.gn
@@ -1109,6 +1109,7 @@
     ":macromagic",
     ":socket_address",
     "../api/units:timestamp",
+    "system:rtc_export",
     "third_party/sigslot",
   ]
   if (is_win) {
diff --git a/rtc_base/socket.h b/rtc_base/socket.h
index 0fd0613..fac75ac 100644
--- a/rtc_base/socket.h
+++ b/rtc_base/socket.h
@@ -30,6 +30,7 @@
 #include "api/units/timestamp.h"
 #include "rtc_base/buffer.h"
 #include "rtc_base/socket_address.h"
+#include "rtc_base/system/rtc_export.h"
 #include "rtc_base/third_party/sigslot/sigslot.h"
 
 // Rather than converting errors into a private namespace,
@@ -82,7 +83,7 @@
 
 // General interface for the socket implementations of various networks.  The
 // methods match those of normal UNIX sockets very closely.
-class Socket {
+class RTC_EXPORT Socket {
  public:
   struct ReceiveBuffer {
     ReceiveBuffer(rtc::Buffer& payload) : payload(payload) {}