commit 5a47cade7576141d33475b0e6c434f6f2c788e22
parent ba363bb0dd690b5cede2897d896218542de15fb4
Author: Dan Baker <dbaker@mozilla.com>
Date: Wed, 19 Nov 2025 21:31:24 -0700
Bug 2000941 - Vendor libwebrtc from 99da2214ee
Upstream commit: https://webrtc.googlesource.com/src/+/99da2214ee3fc86deae76726c7e52931aff1768a
Use Clock from socket_unittest
These tests use the global clock so no need for clock injection, pending
future changes to the socket implementation.
Bug: webrtc:42223992
Change-Id: I67d4294f357b7c8557e2ee00fa38f247ad546a8b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/407443
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#45536}
Diffstat:
3 files changed, 15 insertions(+), 11 deletions(-)
diff --git a/third_party/libwebrtc/README.mozilla.last-vendor b/third_party/libwebrtc/README.mozilla.last-vendor
@@ -1,4 +1,4 @@
# ./mach python dom/media/webrtc/third_party_build/vendor-libwebrtc.py --from-local /Users/danielbaker/elm/.moz-fast-forward/moz-libwebrtc --commit mozpatches libwebrtc
-libwebrtc updated from /Users/danielbaker/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2025-11-20T04:28:55.921938+00:00.
+libwebrtc updated from /Users/danielbaker/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2025-11-20T04:31:09.060649+00:00.
# base of lastest vendoring
-824c352e6f
+99da2214ee
diff --git a/third_party/libwebrtc/rtc_base/socket_unittest.cc b/third_party/libwebrtc/rtc_base/socket_unittest.cc
@@ -36,7 +36,6 @@
#include "rtc_base/test_utils.h"
#include "rtc_base/third_party/sigslot/sigslot.h"
#include "rtc_base/thread.h"
-#include "rtc_base/time_utils.h"
#include "test/gmock.h"
#include "test/gtest.h"
#include "test/wait_until.h"
@@ -424,8 +423,8 @@ void SocketTest::ConnectWithDnsLookupFailInternal(const IPAddress& loopback) {
EXPECT_EQ(0, client->Connect(bogus_dns_addr));
// Wait for connection to fail (EHOSTNOTFOUND).
- bool dns_lookup_finished = false;
- WAIT_(client->GetState() == Socket::CS_CLOSED, 5000, dns_lookup_finished);
+ bool dns_lookup_finished =
+ WaitUntil([&] { return client->GetState() == Socket::CS_CLOSED; });
if (!dns_lookup_finished) {
RTC_LOG(LS_WARNING) << "Skipping test; DNS resolution took longer than 5 "
"seconds.";
@@ -1096,10 +1095,10 @@ void SocketTest::UdpReadyToSend(const IPAddress& loopback) {
client->SetOption(Socket::OPT_SNDBUF, send_buffer_size);
int error = 0;
- uint32_t start_ms = Time();
+ uint32_t start_ms = clock_.TimeInMilliseconds();
int sent_packet_num = 0;
int expected_error = EWOULDBLOCK;
- while (start_ms + 5000 > Time()) {
+ while (start_ms + 5000 > clock_.TimeInMilliseconds()) {
int ret = client->SendTo(test_packet.get(), test_packet_size, test_addr);
++sent_packet_num;
if (ret != test_packet_size) {
@@ -1220,7 +1219,7 @@ void SocketTest::SocketRecvTimestamp(const IPAddress& loopback) {
SocketAddress address = socket->GetLocalAddress();
sink.Monitor(socket.get());
- int64_t send_time_1 = TimeMicros();
+ int64_t send_time_1 = clock_.TimeInMicroseconds();
socket->SendTo("foo", 3, address);
// Wait until data is available.
@@ -1234,7 +1233,7 @@ void SocketTest::SocketRecvTimestamp(const IPAddress& loopback) {
const int64_t kTimeBetweenPacketsMs = 100;
Thread::SleepMs(kTimeBetweenPacketsMs);
- int64_t send_time_2 = TimeMicros();
+ int64_t send_time_2 = clock_.TimeInMicroseconds();
socket->SendTo("bar", 3, address);
// Wait until data is available.
EXPECT_THAT(WaitUntil([&] { return sink.Check(socket.get(), SSE_READ); },
@@ -1268,14 +1267,16 @@ void SocketTest::UdpSocketRecvTimestampUseRtcEpoch(const IPAddress& loopback) {
client2->SendTo("foo", 3, address);
std::unique_ptr<TestClient::Packet> packet_1 = client1->NextPacket(10000);
ASSERT_TRUE(packet_1 != nullptr);
- EXPECT_NEAR(packet_1->packet_time->us(), TimeMicros(), 1000'000);
+ EXPECT_NEAR(packet_1->packet_time->us(), clock_.TimeInMicroseconds(),
+ 1000'000);
Thread::SleepMs(100);
client2->SendTo("bar", 3, address);
std::unique_ptr<TestClient::Packet> packet_2 = client1->NextPacket(10000);
ASSERT_TRUE(packet_2 != nullptr);
EXPECT_GT(packet_2->packet_time->us(), packet_1->packet_time->us());
- EXPECT_NEAR(packet_2->packet_time->us(), TimeMicros(), 1000'000);
+ EXPECT_NEAR(packet_2->packet_time->us(), clock_.TimeInMicroseconds(),
+ 1000'000);
}
void SocketTest::SocketSendRecvWithEcn(const IPAddress& loopback) {
diff --git a/third_party/libwebrtc/rtc_base/socket_unittest.h b/third_party/libwebrtc/rtc_base/socket_unittest.h
@@ -16,6 +16,7 @@
#include "absl/strings/string_view.h"
#include "rtc_base/ip_address.h"
#include "rtc_base/socket_factory.h"
+#include "system_wrappers/include/clock.h"
#include "test/gtest.h"
namespace webrtc {
@@ -28,6 +29,7 @@ class SocketTest : public ::testing::Test {
explicit SocketTest(SocketFactory* socket_factory)
: kIPv4Loopback(INADDR_LOOPBACK),
kIPv6Loopback(in6addr_loopback),
+ clock_(*Clock::GetRealTimeClock()),
socket_factory_(socket_factory) {}
void TestConnectIPv4();
void TestConnectIPv6();
@@ -77,6 +79,7 @@ class SocketTest : public ::testing::Test {
void TcpInternal(const IPAddress& loopback,
size_t data_size,
ptrdiff_t max_send_size);
+ Clock& clock_;
private:
void ConnectInternal(const IPAddress& loopback);