tor-browser

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

commit 52b6e5936a725c8d04cb2fb3bf225c63d8dca0a6
parent 712fb5d8dbba7ed974eb65500446cb8f7117517e
Author: Dan Baker <dbaker@mozilla.com>
Date:   Mon, 27 Oct 2025 17:09:45 -0600

Bug 1995393 - Vendor libwebrtc from fd331a8596

Upstream commit: https://webrtc.googlesource.com/src/+/fd331a859625f49d495db8eb0bc7a7ffd774de22
    Replace calls to TimeMillis with Clock in video_capture_unittest

    As this is a sort of integration test, the use of an injected or
    simulated clock is not relevant.

    Bug: webrtc:42223992
    Change-Id: I8291a4d5382958a17d6c1cd7fc42cbd35e2a5462
    Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/407420
    Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
    Auto-Submit: Evan Shrubsole <eshr@webrtc.org>
    Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
    Cr-Commit-Position: refs/heads/main@{#45512}

Diffstat:
Mthird_party/libwebrtc/README.mozilla.last-vendor | 4++--
Mthird_party/libwebrtc/modules/video_capture/test/video_capture_unittest.cc | 146++++++++++++++++++++++++++++++++++++++++----------------------------------------
2 files changed, 75 insertions(+), 75 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-10-27T23:06:48.552304+00:00. +libwebrtc updated from /Users/danielbaker/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2025-10-27T23:09:33.728682+00:00. # base of lastest vendoring -745d8f1750 +fd331a8596 diff --git a/third_party/libwebrtc/modules/video_capture/test/video_capture_unittest.cc b/third_party/libwebrtc/modules/video_capture/test/video_capture_unittest.cc @@ -28,16 +28,16 @@ #include "modules/video_capture/video_capture_factory.h" #include "rtc_base/checks.h" #include "rtc_base/synchronization/mutex.h" -#include "rtc_base/time_utils.h" +#include "system_wrappers/include/clock.h" #include "test/frame_utils.h" #include "test/gmock.h" #include "test/gtest.h" #include "test/wait_until.h" +namespace webrtc { +namespace { + using ::testing::Ge; -using webrtc::VideoCaptureCapability; -using webrtc::VideoCaptureFactory; -using webrtc::VideoCaptureModule; static const int kTimeOut = 5000; #ifdef WEBRTC_MAC @@ -46,22 +46,22 @@ static const int kTestWidth = 352; static const int kTestFramerate = 30; #endif -class TestVideoCaptureCallback - : public webrtc::VideoSinkInterface<webrtc::VideoFrame> { +class TestVideoCaptureCallback : public VideoSinkInterface<webrtc::VideoFrame> { public: - TestVideoCaptureCallback() - : last_render_time_ms_(0), + explicit TestVideoCaptureCallback(Clock& clock) + : clock_(clock), + last_render_time_ms_(0), incoming_frames_(0), timing_warnings_(0), - rotate_frame_(webrtc::kVideoRotation_0) {} + rotate_frame_(kVideoRotation_0) {} ~TestVideoCaptureCallback() override { if (timing_warnings_ > 0) printf("No of timing warnings %d\n", timing_warnings_); } - void OnFrame(const webrtc::VideoFrame& videoFrame) override { - webrtc::MutexLock lock(&capture_lock_); + void OnFrame(const VideoFrame& videoFrame) override { + MutexLock lock(&capture_lock_); int height = videoFrame.height(); int width = videoFrame.width(); #if defined(WEBRTC_ANDROID) && WEBRTC_ANDROID @@ -75,8 +75,9 @@ class TestVideoCaptureCallback EXPECT_EQ(rotate_frame_, videoFrame.rotation()); #endif // RenderTimstamp should be the time now. - EXPECT_TRUE(videoFrame.render_time_ms() >= webrtc::TimeMillis() - 30 && - videoFrame.render_time_ms() <= webrtc::TimeMillis()); + EXPECT_TRUE(videoFrame.render_time_ms() >= + clock_.TimeInMilliseconds() - 30 && + videoFrame.render_time_ms() <= clock_.TimeInMilliseconds()); if ((videoFrame.render_time_ms() > last_render_time_ms_ + (1000 * 1.1) / capability_.maxFPS && @@ -93,49 +94,50 @@ class TestVideoCaptureCallback } void SetExpectedCapability(VideoCaptureCapability capability) { - webrtc::MutexLock lock(&capture_lock_); + MutexLock lock(&capture_lock_); capability_ = capability; incoming_frames_ = 0; last_render_time_ms_ = 0; } int incoming_frames() { - webrtc::MutexLock lock(&capture_lock_); + MutexLock lock(&capture_lock_); return incoming_frames_; } int timing_warnings() { - webrtc::MutexLock lock(&capture_lock_); + MutexLock lock(&capture_lock_); return timing_warnings_; } VideoCaptureCapability capability() { - webrtc::MutexLock lock(&capture_lock_); + MutexLock lock(&capture_lock_); return capability_; } - bool CompareLastFrame(const webrtc::VideoFrame& frame) { - webrtc::MutexLock lock(&capture_lock_); - return webrtc::test::FrameBufsEqual(last_frame_, - frame.video_frame_buffer()); + bool CompareLastFrame(const VideoFrame& frame) { + MutexLock lock(&capture_lock_); + return test::FrameBufsEqual(last_frame_, frame.video_frame_buffer()); } - void SetExpectedCaptureRotation(webrtc::VideoRotation rotation) { - webrtc::MutexLock lock(&capture_lock_); + void SetExpectedCaptureRotation(VideoRotation rotation) { + MutexLock lock(&capture_lock_); rotate_frame_ = rotation; } private: - webrtc::Mutex capture_lock_; + Mutex capture_lock_; VideoCaptureCapability capability_; + Clock& clock_; int64_t last_render_time_ms_; int incoming_frames_; int timing_warnings_; - webrtc::scoped_refptr<webrtc::VideoFrameBuffer> last_frame_; - webrtc::VideoRotation rotate_frame_; + scoped_refptr<webrtc::VideoFrameBuffer> last_frame_; + VideoRotation rotate_frame_; }; class VideoCaptureTest : public ::testing::Test { public: - VideoCaptureTest() : number_of_devices_(0) {} + VideoCaptureTest() + : clock_(*Clock::GetRealTimeClock()), number_of_devices_(0) {} void SetUp() override { device_info_.reset(VideoCaptureFactory::CreateDeviceInfo()); @@ -144,16 +146,16 @@ class VideoCaptureTest : public ::testing::Test { ASSERT_GT(number_of_devices_, 0u); } - webrtc::scoped_refptr<VideoCaptureModule> OpenVideoCaptureDevice( + scoped_refptr<VideoCaptureModule> OpenVideoCaptureDevice( unsigned int device, - webrtc::VideoSinkInterface<webrtc::VideoFrame>* callback) { + VideoSinkInterface<webrtc::VideoFrame>* callback) { char device_name[256]; char unique_name[256]; EXPECT_EQ(0, device_info_->GetDeviceName(device, device_name, 256, unique_name, 256)); - webrtc::scoped_refptr<VideoCaptureModule> module( + scoped_refptr<VideoCaptureModule> module( VideoCaptureFactory::Create(unique_name)); if (module.get() == nullptr) return nullptr; @@ -175,6 +177,7 @@ class VideoCaptureTest : public ::testing::Test { EXPECT_EQ(capability.height, resulting_capability.height); } + Clock& clock_; std::unique_ptr<VideoCaptureModule::DeviceInfo> device_info_; unsigned int number_of_devices_; }; @@ -188,9 +191,9 @@ class VideoCaptureTest : public ::testing::Test { #endif TEST_F(VideoCaptureTest, MAYBE_CreateDelete) { for (int i = 0; i < 5; ++i) { - int64_t start_time = webrtc::TimeMillis(); - TestVideoCaptureCallback capture_observer; - webrtc::scoped_refptr<VideoCaptureModule> module( + int64_t start_time = clock_.TimeInMilliseconds(); + TestVideoCaptureCallback capture_observer(clock_); + scoped_refptr<VideoCaptureModule> module( OpenVideoCaptureDevice(0, &capture_observer)); ASSERT_TRUE(module.get() != nullptr); @@ -201,26 +204,25 @@ TEST_F(VideoCaptureTest, MAYBE_CreateDelete) { capability.width = kTestWidth; capability.height = kTestHeight; capability.maxFPS = kTestFramerate; - capability.videoType = webrtc::VideoType::kUnknown; + capability.videoType = VideoType::kUnknown; #endif capture_observer.SetExpectedCapability(capability); ASSERT_NO_FATAL_FAILURE(StartCapture(module.get(), capability)); // Less than 4s to start the camera. - EXPECT_LE(webrtc::TimeMillis() - start_time, 4000); + EXPECT_LE(clock_.TimeInMilliseconds() - start_time, 4000); // Make sure 5 frames are captured. - EXPECT_THAT(webrtc::WaitUntil( - [&] { return capture_observer.incoming_frames(); }, Ge(5), - {.timeout = webrtc::TimeDelta::Millis(kTimeOut)}), - webrtc::IsRtcOk()); + EXPECT_THAT(WaitUntil([&] { return capture_observer.incoming_frames(); }, + Ge(5), {.timeout = TimeDelta::Millis(kTimeOut)}), + IsRtcOk()); - int64_t stop_time = webrtc::TimeMillis(); + int64_t stop_time = clock_.TimeInMilliseconds(); EXPECT_EQ(0, module->StopCapture()); EXPECT_FALSE(module->CaptureStarted()); // Less than 3s to stop the camera. - EXPECT_LE(webrtc::TimeMillis() - stop_time, 3000); + EXPECT_LE(clock_.TimeInMilliseconds() - stop_time, 3000); } } @@ -232,9 +234,9 @@ TEST_F(VideoCaptureTest, MAYBE_CreateDelete) { #define MAYBE_Capabilities Capabilities #endif TEST_F(VideoCaptureTest, MAYBE_Capabilities) { - TestVideoCaptureCallback capture_observer; + TestVideoCaptureCallback capture_observer(clock_); - webrtc::scoped_refptr<VideoCaptureModule> module( + scoped_refptr<VideoCaptureModule> module( OpenVideoCaptureDevice(0, &capture_observer)); ASSERT_TRUE(module.get() != nullptr); @@ -264,10 +266,9 @@ TEST_F(VideoCaptureTest, MAYBE_Capabilities) { capture_observer.SetExpectedCapability(capability); ASSERT_NO_FATAL_FAILURE(StartCapture(module.get(), capability)); // Make sure at least one frame is captured. - EXPECT_THAT(webrtc::WaitUntil( - [&] { return capture_observer.incoming_frames(); }, Ge(1), - {.timeout = webrtc::TimeDelta::Millis(kTimeOut)}), - webrtc::IsRtcOk()); + EXPECT_THAT(WaitUntil([&] { return capture_observer.incoming_frames(); }, + Ge(1), {.timeout = TimeDelta::Millis(kTimeOut)}), + IsRtcOk()); EXPECT_EQ(0, module->StopCapture()); } @@ -297,8 +298,8 @@ TEST_F(VideoCaptureTest, DISABLED_TestTwoCameras) { return; } - TestVideoCaptureCallback capture_observer1; - webrtc::scoped_refptr<VideoCaptureModule> module1( + TestVideoCaptureCallback capture_observer1(clock_); + scoped_refptr<VideoCaptureModule> module1( OpenVideoCaptureDevice(0, &capture_observer1)); ASSERT_TRUE(module1.get() != nullptr); VideoCaptureCapability capability1; @@ -308,12 +309,12 @@ TEST_F(VideoCaptureTest, DISABLED_TestTwoCameras) { capability1.width = kTestWidth; capability1.height = kTestHeight; capability1.maxFPS = kTestFramerate; - capability1.videoType = webrtc::VideoType::kUnknown; + capability1.videoType = VideoType::kUnknown; #endif capture_observer1.SetExpectedCapability(capability1); - TestVideoCaptureCallback capture_observer2; - webrtc::scoped_refptr<VideoCaptureModule> module2( + TestVideoCaptureCallback capture_observer2(clock_); + scoped_refptr<VideoCaptureModule> module2( OpenVideoCaptureDevice(1, &capture_observer2)); ASSERT_TRUE(module1.get() != nullptr); @@ -324,20 +325,18 @@ TEST_F(VideoCaptureTest, DISABLED_TestTwoCameras) { capability2.width = kTestWidth; capability2.height = kTestHeight; capability2.maxFPS = kTestFramerate; - capability2.videoType = webrtc::VideoType::kUnknown; + capability2.videoType = VideoType::kUnknown; #endif capture_observer2.SetExpectedCapability(capability2); ASSERT_NO_FATAL_FAILURE(StartCapture(module1.get(), capability1)); ASSERT_NO_FATAL_FAILURE(StartCapture(module2.get(), capability2)); - EXPECT_THAT(webrtc::WaitUntil( - [&] { return capture_observer1.incoming_frames(); }, Ge(5), - {.timeout = webrtc::TimeDelta::Millis(kTimeOut)}), - webrtc::IsRtcOk()); - EXPECT_THAT(webrtc::WaitUntil( - [&] { return capture_observer2.incoming_frames(); }, Ge(5), - {.timeout = webrtc::TimeDelta::Millis(kTimeOut)}), - webrtc::IsRtcOk()); + EXPECT_THAT(WaitUntil([&] { return capture_observer1.incoming_frames(); }, + Ge(5), {.timeout = TimeDelta::Millis(kTimeOut)}), + IsRtcOk()); + EXPECT_THAT(WaitUntil([&] { return capture_observer2.incoming_frames(); }, + Ge(5), {.timeout = TimeDelta::Millis(kTimeOut)}), + IsRtcOk()); EXPECT_EQ(0, module2->StopCapture()); EXPECT_EQ(0, module1->StopCapture()); } @@ -349,34 +348,35 @@ TEST_F(VideoCaptureTest, DISABLED_TestTwoCameras) { #define MAYBE_ConcurrentAccess ConcurrentAccess #endif TEST_F(VideoCaptureTest, MAYBE_ConcurrentAccess) { - TestVideoCaptureCallback capture_observer1; - webrtc::scoped_refptr<VideoCaptureModule> module1( + TestVideoCaptureCallback capture_observer1(clock_); + scoped_refptr<VideoCaptureModule> module1( OpenVideoCaptureDevice(0, &capture_observer1)); ASSERT_TRUE(module1.get() != nullptr); VideoCaptureCapability capability; device_info_->GetCapability(module1->CurrentDeviceName(), 0, capability); capture_observer1.SetExpectedCapability(capability); - TestVideoCaptureCallback capture_observer2; - webrtc::scoped_refptr<VideoCaptureModule> module2( + TestVideoCaptureCallback capture_observer2(clock_); + scoped_refptr<VideoCaptureModule> module2( OpenVideoCaptureDevice(0, &capture_observer2)); ASSERT_TRUE(module2.get() != nullptr); capture_observer2.SetExpectedCapability(capability); // Starting module1 should work. ASSERT_NO_FATAL_FAILURE(StartCapture(module1.get(), capability)); - EXPECT_THAT(webrtc::WaitUntil( - [&] { return capture_observer1.incoming_frames(); }, Ge(5), - {.timeout = webrtc::TimeDelta::Millis(kTimeOut)}), - webrtc::IsRtcOk()); + EXPECT_THAT(WaitUntil([&] { return capture_observer1.incoming_frames(); }, + Ge(5), {.timeout = TimeDelta::Millis(kTimeOut)}), + IsRtcOk()); // When module1 is stopped, starting module2 for the same device should work. EXPECT_EQ(0, module1->StopCapture()); ASSERT_NO_FATAL_FAILURE(StartCapture(module2.get(), capability)); - EXPECT_THAT(webrtc::WaitUntil( - [&] { return capture_observer2.incoming_frames(); }, Ge(5), - {.timeout = webrtc::TimeDelta::Millis(kTimeOut)}), - webrtc::IsRtcOk()); + EXPECT_THAT(WaitUntil([&] { return capture_observer2.incoming_frames(); }, + Ge(5), {.timeout = TimeDelta::Millis(kTimeOut)}), + IsRtcOk()); EXPECT_EQ(0, module2->StopCapture()); } + +} // namespace +} // namespace webrtc