tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 6db2310096e74485802169e830f2afaa7cc459cd
parent 6e9b9dfa04887e6dbafa64de19b21a1200e34d21
Author: Dan Baker <dbaker@mozilla.com>
Date:   Mon,  1 Dec 2025 16:52:27 -0700

Bug 2000941 - Vendor libwebrtc from e45e523f79

Upstream commit: https://webrtc.googlesource.com/src/+/e45e523f799b3beb9bb172b5511f04505e2b9855
    Use injected clock in rtc_tools/network_tester

    Bug: webrtc:42223992
    Change-Id: I200ffcc93a20b0382badae5536c57f875986f5a8
    Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/408040
    Commit-Queue: Evan Shrubsole <eshr@webrtc.org>
    Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
    Auto-Submit: Evan Shrubsole <eshr@webrtc.org>
    Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
    Cr-Commit-Position: refs/heads/main@{#45570}

Diffstat:
Mthird_party/libwebrtc/README.mozilla.last-vendor | 4++--
Mthird_party/libwebrtc/moz-patch-stack/s0102.patch | 4++--
Mthird_party/libwebrtc/rtc_tools/network_tester/BUILD.gn | 7+++++++
Mthird_party/libwebrtc/rtc_tools/network_tester/network_tester_unittest.cc | 8++++++--
Mthird_party/libwebrtc/rtc_tools/network_tester/packet_sender.cc | 23++++++++++++++---------
Mthird_party/libwebrtc/rtc_tools/network_tester/packet_sender.h | 5++++-
Mthird_party/libwebrtc/rtc_tools/network_tester/server.cc | 5+++--
Mthird_party/libwebrtc/rtc_tools/network_tester/test_controller.cc | 19+++++++++++--------
Mthird_party/libwebrtc/rtc_tools/network_tester/test_controller.h | 5++++-
9 files changed, 53 insertions(+), 27 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-12-01T23:49:54.037970+00:00. +libwebrtc updated from /Users/danielbaker/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2025-12-01T23:52:14.394175+00:00. # base of lastest vendoring -ea1ac2490e +e45e523f79 diff --git a/third_party/libwebrtc/moz-patch-stack/s0102.patch b/third_party/libwebrtc/moz-patch-stack/s0102.patch @@ -687,10 +687,10 @@ index 4a772795ed..de27f01bb0 100644 rtc_source_set("arch") { diff --git a/rtc_tools/network_tester/BUILD.gn b/rtc_tools/network_tester/BUILD.gn -index 082a11f47c..2e8f069f24 100644 +index fd98be799b..fe30e9ece9 100644 --- a/rtc_tools/network_tester/BUILD.gn +++ b/rtc_tools/network_tester/BUILD.gn -@@ -180,8 +180,8 @@ if (is_android) { +@@ -187,8 +187,8 @@ if (is_android) { "../../rtc_base:threading", ] diff --git a/third_party/libwebrtc/rtc_tools/network_tester/BUILD.gn b/third_party/libwebrtc/rtc_tools/network_tester/BUILD.gn @@ -41,6 +41,7 @@ if (rtc_enable_protobuf) { ":network_tester_packet_proto", "../../api:scoped_refptr", "../../api:sequence_checker", + "../../api/environment", "../../api/task_queue", "../../api/task_queue:default_task_queue_factory", "../../api/task_queue:pending_task_safety_flag", @@ -61,6 +62,7 @@ if (rtc_enable_protobuf) { "../../rtc_base/network:received_packet", "../../rtc_base/synchronization:mutex", "../../rtc_base/system:no_unique_address", + "../../system_wrappers", "//third_party/abseil-cpp/absl/functional:any_invocable", ] } @@ -86,10 +88,13 @@ if (rtc_enable_protobuf) { deps = [ ":network_tester", "../../api:rtc_error_matchers", + "../../api/environment", + "../../api/environment:environment_factory", "../../rtc_base:gunit_helpers", "../../rtc_base:random", "../../rtc_base:threading", "../../rtc_base:timeutils", + "../../test:create_test_environment", "../../test:fileutils", "../../test:test_support", "../../test:wait_until", @@ -110,6 +115,8 @@ if (rtc_enable_protobuf) { deps = [ ":network_tester", + "../../api/environment", + "../../api/environment:environment_factory", "../../rtc_base:null_socket_server", "../../rtc_base:threading", ] diff --git a/third_party/libwebrtc/rtc_tools/network_tester/network_tester_unittest.cc b/third_party/libwebrtc/rtc_tools/network_tester/network_tester_unittest.cc @@ -12,11 +12,13 @@ #include <string> +#include "api/environment/environment.h" #include "api/test/rtc_error_matchers.h" #include "rtc_base/random.h" #include "rtc_base/thread.h" #include "rtc_base/time_utils.h" #include "rtc_tools/network_tester/test_controller.h" +#include "test/create_test_environment.h" #include "test/gmock.h" #include "test/gtest.h" #include "test/testsupport/file_utils.h" @@ -32,12 +34,14 @@ TEST(NetworkTesterTest, ServerClient) { int port = Random(TimeMicros()).Rand(MIN_PORT, MAX_PORT); AutoThread main_thread; + Environment env = CreateTestEnvironment(); TestController client( - 0, 0, test::ResourcePath("network_tester/client_config", "dat"), + env, 0, 0, test::ResourcePath("network_tester/client_config", "dat"), test::OutputPath() + "client_packet_log.dat"); TestController server( - port, port, test::ResourcePath("network_tester/server_config", "dat"), + env, port, port, + test::ResourcePath("network_tester/server_config", "dat"), test::OutputPath() + "server_packet_log.dat"); client.SendConnectTo("127.0.0.1", port); EXPECT_THAT( diff --git a/third_party/libwebrtc/rtc_tools/network_tester/packet_sender.cc b/third_party/libwebrtc/rtc_tools/network_tester/packet_sender.cc @@ -19,32 +19,34 @@ #include <utility> #include "absl/functional/any_invocable.h" +#include "api/environment/environment.h" #include "api/scoped_refptr.h" #include "api/sequence_checker.h" #include "api/task_queue/pending_task_safety_flag.h" #include "api/task_queue/task_queue_base.h" #include "api/units/time_delta.h" -#include "rtc_base/time_utils.h" #include "rtc_tools/network_tester/config_reader.h" #include "rtc_tools/network_tester/test_controller.h" +#include "system_wrappers/include/clock.h" namespace webrtc { namespace { absl::AnyInvocable<void() &&> SendPacketTask( + Clock* clock, PacketSender* packet_sender, scoped_refptr<PendingTaskSafetyFlag> task_safety_flag, - int64_t target_time_ms = TimeMillis()) { - return [target_time_ms, packet_sender, + int64_t target_time_ms) { + return [clock, target_time_ms, packet_sender, task_safety_flag = std::move(task_safety_flag)]() mutable { if (task_safety_flag->alive() && packet_sender->IsSending()) { packet_sender->SendPacket(); target_time_ms += packet_sender->GetSendIntervalMs(); - int64_t delay_ms = - std::max(static_cast<int64_t>(0), target_time_ms - TimeMillis()); + int64_t delay_ms = std::max(static_cast<int64_t>(0), + target_time_ms - clock->TimeInMilliseconds()); TaskQueueBase::Current()->PostDelayedTask( - SendPacketTask(packet_sender, std::move(task_safety_flag), + SendPacketTask(clock, packet_sender, std::move(task_safety_flag), target_time_ms), TimeDelta::Millis(delay_ms)); } @@ -77,11 +79,13 @@ absl::AnyInvocable<void() &&> UpdateTestSettingTask( } // namespace PacketSender::PacketSender( + const Environment& env, TestController* test_controller, TaskQueueBase* worker_queue, scoped_refptr<PendingTaskSafetyFlag> task_safety_flag, const std::string& config_file_path) - : packet_size_(0), + : env_(env), + packet_size_(0), send_interval_ms_(0), sequence_number_(0), sending_(false), @@ -101,7 +105,8 @@ void PacketSender::StartSending() { worker_queue_->PostTask(UpdateTestSettingTask( this, std::make_unique<ConfigReader>(config_file_path_), task_safety_flag_)); - worker_queue_->PostTask(SendPacketTask(this, task_safety_flag_)); + worker_queue_->PostTask(SendPacketTask(&env_.clock(), this, task_safety_flag_, + env_.clock().TimeInMilliseconds())); } void PacketSender::StopSending() { @@ -120,7 +125,7 @@ void PacketSender::SendPacket() { NetworkTesterPacket packet; packet.set_type(NetworkTesterPacket::TEST_DATA); packet.set_sequence_number(sequence_number_++); - packet.set_send_timestamp(TimeMicros()); + packet.set_send_timestamp(env_.clock().TimeInMicroseconds()); test_controller_->SendData(packet, packet_size_); } diff --git a/third_party/libwebrtc/rtc_tools/network_tester/packet_sender.h b/third_party/libwebrtc/rtc_tools/network_tester/packet_sender.h @@ -15,6 +15,7 @@ #include <cstdint> #include <string> +#include "api/environment/environment.h" #include "api/scoped_refptr.h" #include "api/sequence_checker.h" #include "api/task_queue/pending_task_safety_flag.h" @@ -35,7 +36,8 @@ class TestController; class PacketSender { public: - PacketSender(TestController* test_controller, + PacketSender(const Environment& env, + TestController* test_controller, TaskQueueBase* worker_queue, scoped_refptr<PendingTaskSafetyFlag> task_safety_flag, const std::string& config_file_path); @@ -54,6 +56,7 @@ class PacketSender { void UpdateTestSetting(size_t packet_size, int64_t send_interval_ms); private: + Environment env_; RTC_NO_UNIQUE_ADDRESS SequenceChecker worker_queue_checker_; size_t packet_size_ RTC_GUARDED_BY(worker_queue_checker_); int64_t send_interval_ms_ RTC_GUARDED_BY(worker_queue_checker_); diff --git a/third_party/libwebrtc/rtc_tools/network_tester/server.cc b/third_party/libwebrtc/rtc_tools/network_tester/server.cc @@ -10,14 +10,15 @@ #include <memory> +#include "api/environment/environment_factory.h" #include "rtc_base/null_socket_server.h" #include "rtc_base/thread.h" #include "rtc_tools/network_tester/test_controller.h" int main(int /*argn*/, char* /*argv*/[]) { webrtc::Thread main_thread(std::make_unique<webrtc::NullSocketServer>()); - webrtc::TestController server(9090, 9090, "server_config.dat", - "server_packet_log.dat"); + webrtc::TestController server(webrtc::CreateEnvironment(), 9090, 9090, + "server_config.dat", "server_packet_log.dat"); while (!server.IsTestDone()) { // 100 ms is arbitrary chosen. main_thread.ProcessMessages(/*cms=*/100); diff --git a/third_party/libwebrtc/rtc_tools/network_tester/test_controller.cc b/third_party/libwebrtc/rtc_tools/network_tester/test_controller.cc @@ -16,6 +16,7 @@ #include <optional> #include <string> +#include "api/environment/environment.h" #include "api/sequence_checker.h" #include "api/task_queue/pending_task_safety_flag.h" #include "api/units/timestamp.h" @@ -33,11 +34,13 @@ namespace webrtc { -TestController::TestController(int min_port, +TestController::TestController(const Environment& env, + int min_port, int max_port, const std::string& config_file_path, const std::string& log_file_path) - : socket_server_(CreateDefaultSocketServer()), + : env_(env), + socket_server_(CreateDefaultSocketServer()), packet_sender_thread_(std::make_unique<Thread>(socket_server_.get())), socket_factory_(socket_server_.get()), config_file_path_(config_file_path), @@ -133,9 +136,9 @@ void TestController::OnReadPacket(AsyncPacketSocket* socket, start_packet.set_type(NetworkTesterPacket::TEST_START); remote_address_ = received_packet.source_address(); SendData(start_packet, std::nullopt); - packet_sender_.reset(new PacketSender(this, packet_sender_thread_.get(), - task_safety_flag_, - config_file_path_)); + packet_sender_.reset( + new PacketSender(env_, this, packet_sender_thread_.get(), + task_safety_flag_, config_file_path_)); packet_sender_->StartSending(); MutexLock scoped_lock(&test_done_lock_); local_test_done_ = false; @@ -143,9 +146,9 @@ void TestController::OnReadPacket(AsyncPacketSocket* socket, break; } case NetworkTesterPacket::TEST_START: { - packet_sender_.reset(new PacketSender(this, packet_sender_thread_.get(), - task_safety_flag_, - config_file_path_)); + packet_sender_.reset( + new PacketSender(env_, this, packet_sender_thread_.get(), + task_safety_flag_, config_file_path_)); packet_sender_->StartSending(); MutexLock scoped_lock(&test_done_lock_); local_test_done_ = false; diff --git a/third_party/libwebrtc/rtc_tools/network_tester/test_controller.h b/third_party/libwebrtc/rtc_tools/network_tester/test_controller.h @@ -17,6 +17,7 @@ #include <optional> #include <string> +#include "api/environment/environment.h" #include "api/scoped_refptr.h" #include "api/sequence_checker.h" #include "api/task_queue/pending_task_safety_flag.h" @@ -45,7 +46,8 @@ constexpr size_t kEthernetMtu = 1500; class TestController { public: - TestController(int min_port, + TestController(const Environment& env, + int min_port, int max_port, const std::string& config_file_path, const std::string& log_file_path); @@ -66,6 +68,7 @@ class TestController { private: void OnReadPacket(AsyncPacketSocket* socket, const ReceivedIpPacket& received_packet); + Environment env_; RTC_NO_UNIQUE_ADDRESS SequenceChecker test_controller_thread_checker_; std::unique_ptr<SocketServer> socket_server_; std::unique_ptr<Thread> packet_sender_thread_;