Cleanup expired experiment WebRTC-SCM-Timestamp

Bug: webrtc:5773
Change-Id: I4950c70865c7f458324d11b74dd1043e93bc10f6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/347882
Reviewed-by: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42145}
diff --git a/experiments/field_trials.py b/experiments/field_trials.py
index 468b94e..eb99b14 100755
--- a/experiments/field_trials.py
+++ b/experiments/field_trials.py
@@ -117,9 +117,6 @@
     FieldTrial('WebRTC-RtcEventLogEncodeNetEqSetMinimumDelayKillSwitch',
                'webrtc:14763',
                date(2024, 4, 1)),
-    FieldTrial('WebRTC-SCM-Timestamp',
-               'webrtc:5773',
-               date(2024, 4, 1)),
     FieldTrial('WebRTC-SetCodecPreferences-ReceiveOnlyFilterInsteadOfThrow',
                'webrtc:15396',
                date(2024, 12, 1)),
diff --git a/rtc_base/async_udp_socket.cc b/rtc_base/async_udp_socket.cc
index 7f1301d..e9c16dc 100644
--- a/rtc_base/async_udp_socket.cc
+++ b/rtc_base/async_udp_socket.cc
@@ -21,12 +21,6 @@
 
 namespace rtc {
 
-// Returns true if the experiement "WebRTC-SCM-Timestamp" is explicitly
-// disabled.
-static bool IsScmTimeStampExperimentDisabled() {
-  return webrtc::field_trial::IsDisabled("WebRTC-SCM-Timestamp");
-}
-
 AsyncUDPSocket* AsyncUDPSocket::Create(Socket* socket,
                                        const SocketAddress& bind_address) {
   std::unique_ptr<Socket> owned_socket(socket);
@@ -133,15 +127,9 @@
     receive_buffer.arrival_time = webrtc::Timestamp::Micros(rtc::TimeMicros());
   } else {
     if (!socket_time_offset_) {
-      // Estimate timestamp offset from first packet arrival time unless
-      // disabled
-      bool estimate_time_offset = !IsScmTimeStampExperimentDisabled();
-      if (estimate_time_offset) {
-        socket_time_offset_ = webrtc::Timestamp::Micros(rtc::TimeMicros()) -
-                              *receive_buffer.arrival_time;
-      } else {
-        socket_time_offset_ = webrtc::TimeDelta::Micros(0);
-      }
+      // Estimate timestamp offset from first packet arrival time.
+      socket_time_offset_ = webrtc::Timestamp::Micros(rtc::TimeMicros()) -
+                            *receive_buffer.arrival_time;
     }
     *receive_buffer.arrival_time += *socket_time_offset_;
   }
diff --git a/rtc_base/physical_socket_server.cc b/rtc_base/physical_socket_server.cc
index 787e942..71da31e 100644
--- a/rtc_base/physical_socket_server.cc
+++ b/rtc_base/physical_socket_server.cc
@@ -148,12 +148,6 @@
   bool* value_;
 };
 
-// Returns true if the experiement "WebRTC-SCM-Timestamp" is explicitly
-// disabled.
-bool IsScmTimeStampExperimentDisabled() {
-  return webrtc::field_trial::IsDisabled("WebRTC-SCM-Timestamp");
-}
-
 }  // namespace
 
 namespace rtc {
@@ -163,8 +157,7 @@
       s_(s),
       error_(0),
       state_((s == INVALID_SOCKET) ? CS_CLOSED : CS_CONNECTED),
-      resolver_(nullptr),
-      read_scm_timestamp_experiment_(!IsScmTimeStampExperimentDisabled()) {
+      resolver_(nullptr) {
   if (s_ != INVALID_SOCKET) {
     SetEnabledEvents(DE_READ | DE_WRITE);
 
@@ -523,14 +516,13 @@
 
 #if defined(WEBRTC_POSIX)
   int received = 0;
-  if (read_scm_timestamp_experiment_) {
-    iovec iov = {.iov_base = buffer, .iov_len = length};
-    msghdr msg = {.msg_iov = &iov, .msg_iovlen = 1};
-    if (out_addr) {
-      out_addr->Clear();
-      msg.msg_name = addr;
-      msg.msg_namelen = addr_len;
-    }
+  iovec iov = {.iov_base = buffer, .iov_len = length};
+  msghdr msg = {.msg_iov = &iov, .msg_iovlen = 1};
+  if (out_addr) {
+    out_addr->Clear();
+    msg.msg_name = addr;
+    msg.msg_namelen = addr_len;
+  }
     // TODO(bugs.webrtc.org/15368): What size is needed? IPV6_TCLASS is supposed
     // to be an int. Why is a larger size needed?
     char control[CMSG_SPACE(sizeof(struct timeval) + 5 * sizeof(int))] = {};
@@ -567,19 +559,6 @@
     if (out_addr) {
       SocketAddressFromSockAddrStorage(addr_storage, out_addr);
     }
-  } else {  // !read_scm_timestamp_experiment_
-    if (out_addr) {
-      received = ::recvfrom(s_, static_cast<char*>(buffer),
-                            static_cast<int>(length), 0, addr, &addr_len);
-      SocketAddressFromSockAddrStorage(addr_storage, out_addr);
-    } else {
-      received =
-          ::recv(s_, static_cast<char*>(buffer), static_cast<int>(length), 0);
-    }
-    if (timestamp) {
-      *timestamp = GetSocketRecvTimestamp(s_);
-    }
-  }
   return received;
 
 #else
@@ -852,13 +831,10 @@
   ioctlsocket(s_, FIONBIO, &argp);
 #elif defined(WEBRTC_POSIX)
   fcntl(s_, F_SETFL, fcntl(s_, F_GETFL, 0) | O_NONBLOCK);
-  if (!IsScmTimeStampExperimentDisabled()) {
-    int value = 1;
-    // Attempt to get receive packet timestamp from the socket.
-    if (::setsockopt(s_, SOL_SOCKET, SO_TIMESTAMP, &value, sizeof(value)) !=
-        0) {
-      RTC_DLOG(LS_ERROR) << "::setsockopt failed. errno: " << LAST_SYSTEM_ERROR;
-    }
+  int value = 1;
+  // Attempt to get receive packet timestamp from the socket.
+  if (::setsockopt(s_, SOL_SOCKET, SO_TIMESTAMP, &value, sizeof(value)) != 0) {
+    RTC_DLOG(LS_ERROR) << "::setsockopt failed. errno: " << LAST_SYSTEM_ERROR;
   }
 #endif
 
@@ -868,10 +844,11 @@
   // we attempt to write to such a socket, SIGPIPE will be raised, which by
   // default will terminate the process, which we don't want. By specifying
   // this socket option, SIGPIPE will be disabled for the socket.
-  int value = 1;
+  value = 1;
   if (::setsockopt(s_, SOL_SOCKET, SO_NOSIGPIPE, &value, sizeof(value)) != 0) {
     RTC_DLOG(LS_ERROR) << "::setsockopt failed. errno: " << LAST_SYSTEM_ERROR;
   }
+
 #endif
   ss_->Add(this);
   return true;
diff --git a/rtc_base/physical_socket_server.h b/rtc_base/physical_socket_server.h
index b8cf042..3bab75a 100644
--- a/rtc_base/physical_socket_server.h
+++ b/rtc_base/physical_socket_server.h
@@ -252,7 +252,6 @@
 #endif
 
  private:
-  const bool read_scm_timestamp_experiment_;
   uint8_t enabled_events_ = 0;
 };
 
diff --git a/rtc_base/physical_socket_server_unittest.cc b/rtc_base/physical_socket_server_unittest.cc
index ccb548d..c61e9b4 100644
--- a/rtc_base/physical_socket_server_unittest.cc
+++ b/rtc_base/physical_socket_server_unittest.cc
@@ -471,19 +471,6 @@
   SocketTest::TestSocketRecvTimestampIPv6();
 }
 
-#if !defined(WEBRTC_MAC)
-TEST_F(PhysicalSocketTest, TestSocketRecvTimestampIPv4ScmExperimentDisabled) {
-  MAYBE_SKIP_IPV4;
-  webrtc::test::ScopedFieldTrials trial("WebRTC-SCM-Timestamp/Disabled/");
-  SocketTest::TestSocketRecvTimestampIPv4();
-}
-
-TEST_F(PhysicalSocketTest, TestSocketRecvTimestampIPv6ScmExperimentDisabled) {
-  webrtc::test::ScopedFieldTrials trial("WebRTC-SCM-Timestamp/Disabled/");
-  SocketTest::TestSocketRecvTimestampIPv6();
-}
-#endif
-
 #if !defined(WEBRTC_MAC) && !defined(WEBRTC_IOS)
 // TODO(bugs.webrtc.org/15368): IpV4 fails on IOS and MAC. IPV6 works.
 TEST_F(PhysicalSocketTest, TestSocketSendRecvWithEcnIPv4) {