tor-browser

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

commit 9aca7f9a13f2c51d6688889ba4b72912c336f10e
parent 9066c830c7a224c8fe4c495b0463ba11288e3113
Author: Dan Baker <dbaker@mozilla.com>
Date:   Mon, 27 Oct 2025 12:32:10 -0600

Bug 1995393 - Vendor libwebrtc from bb7239ecea

Upstream commit: https://webrtc.googlesource.com/src/+/bb7239ecea3db0e41b8fa6eb26c3a749deb41076
    Propagate Clock with Environment into win helper CoreAudioBase

    Bug: webrtc:42223992
    Change-Id: I81c0dad6e041a53a4d5f77ea70caa6e8dd55c5a3
    Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/406102
    Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
    Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
    Cr-Commit-Position: refs/heads/main@{#45431}

Diffstat:
Mthird_party/libwebrtc/README.mozilla.last-vendor | 4++--
Mthird_party/libwebrtc/modules/audio_device/BUILD.gn | 4++++
Mthird_party/libwebrtc/modules/audio_device/include/audio_device_factory.cc | 8++++++--
Mthird_party/libwebrtc/modules/audio_device/win/core_audio_base_win.cc | 23++++++++++++++---------
Mthird_party/libwebrtc/modules/audio_device/win/core_audio_base_win.h | 11++++++++---
Mthird_party/libwebrtc/modules/audio_device/win/core_audio_input_win.cc | 16++++++++++++++--
Mthird_party/libwebrtc/modules/audio_device/win/core_audio_input_win.h | 5++++-
Mthird_party/libwebrtc/modules/audio_device/win/core_audio_output_win.cc | 12+++++++++++-
Mthird_party/libwebrtc/modules/audio_device/win/core_audio_output_win.h | 5++++-
Mthird_party/libwebrtc/moz-patch-stack/s0027.patch | 12++++++------
Mthird_party/libwebrtc/moz-patch-stack/s0102.patch | 2+-
11 files changed, 74 insertions(+), 28 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-27T18:29:28.908016+00:00. +libwebrtc updated from /Users/danielbaker/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2025-10-27T18:31:52.993305+00:00. # base of lastest vendoring -e17369f41e +bb7239ecea diff --git a/third_party/libwebrtc/modules/audio_device/BUILD.gn b/third_party/libwebrtc/modules/audio_device/BUILD.gn @@ -150,19 +150,23 @@ rtc_library("audio_device_module_from_input_and_output") { deps = [ ":audio_device_buffer", + ":audio_device_name", ":windows_core_audio_utility", + "../../api:array_view", "../../api:make_ref_counted", "../../api:scoped_refptr", "../../api:sequence_checker", "../../api/audio:audio_device", "../../api/environment", "../../api/task_queue", + "../../api/units:time_delta", "../../rtc_base:checks", "../../rtc_base:logging", "../../rtc_base:platform_thread", "../../rtc_base:safe_conversions", "../../rtc_base:stringutils", "../../rtc_base:timeutils", + "../../rtc_base:zero_memory", "../../rtc_base/win:scoped_com_initializer", "../../rtc_base/win:windows_version", "//third_party/abseil-cpp/absl/strings", diff --git a/third_party/libwebrtc/modules/audio_device/include/audio_device_factory.cc b/third_party/libwebrtc/modules/audio_device/include/audio_device_factory.cc @@ -10,7 +10,11 @@ #include "modules/audio_device/include/audio_device_factory.h" +#include <memory> + +#include "api/audio/audio_device.h" #include "api/environment/environment.h" +#include "api/scoped_refptr.h" #include "rtc_base/logging.h" #if defined(WEBRTC_WIN) @@ -41,8 +45,8 @@ CreateWindowsCoreAudioAudioDeviceModuleForTest(const Environment& env, return nullptr; } return CreateWindowsCoreAudioAudioDeviceModuleFromInputAndOutput( - env, std::make_unique<webrtc_win::CoreAudioInput>(automatic_restart), - std::make_unique<webrtc_win::CoreAudioOutput>(automatic_restart)); + env, std::make_unique<webrtc_win::CoreAudioInput>(env, automatic_restart), + std::make_unique<webrtc_win::CoreAudioOutput>(env, automatic_restart)); } } // namespace webrtc diff --git a/third_party/libwebrtc/modules/audio_device/win/core_audio_base_win.cc b/third_party/libwebrtc/modules/audio_device/win/core_audio_base_win.cc @@ -10,17 +10,20 @@ #include "modules/audio_device/win/core_audio_base_win.h" +#include <cstdint> #include <iterator> -#include <memory> #include <string> #include "absl/strings/string_view.h" -#include "modules/audio_device/audio_device_buffer.h" +#include "api/audio/audio_device_defines.h" +#include "api/environment/environment.h" +#include "api/sequence_checker.h" +#include "modules/audio_device/audio_device_name.h" +#include "modules/audio_device/win/core_audio_utility_win.h" #include "rtc_base/checks.h" #include "rtc_base/logging.h" #include "rtc_base/numerics/safe_conversions.h" #include "rtc_base/platform_thread.h" -#include "rtc_base/time_utils.h" #include "rtc_base/win/scoped_com_initializer.h" #include "rtc_base/win/windows_version.h" @@ -151,11 +154,13 @@ bool IsLowLatencySupported(IAudioClient3* client3, } // namespace -CoreAudioBase::CoreAudioBase(Direction direction, +CoreAudioBase::CoreAudioBase(const Environment& env, + Direction direction, bool automatic_restart, OnDataCallback data_callback, OnErrorCallback error_callback) - : format_(), + : env_(env), + format_(), direction_(direction), automatic_restart_(automatic_restart), on_data_callback_(data_callback), @@ -195,8 +200,8 @@ bool CoreAudioBase::IsRestarting() const { return is_restarting_; } -int64_t CoreAudioBase::TimeSinceStart() const { - return webrtc::TimeSince(start_time_); +int64_t CoreAudioBase::TimeSinceStartMs() const { + return env_.clock().TimeInMilliseconds() - start_time_; } int CoreAudioBase::NumberOfActiveDevices() const { @@ -576,7 +581,7 @@ bool CoreAudioBase::Start() { return false; } - start_time_ = webrtc::TimeMillis(); + start_time_ = env_.clock().TimeInMilliseconds(); num_data_callbacks_ = 0; return true; @@ -585,7 +590,7 @@ bool CoreAudioBase::Start() { bool CoreAudioBase::Stop() { RTC_DLOG(LS_INFO) << __FUNCTION__ << "[" << DirectionToString(direction()) << "]"; - RTC_DLOG(LS_INFO) << "total activity time: " << TimeSinceStart(); + RTC_DLOG(LS_INFO) << "total activity time: " << TimeSinceStartMs(); // Stop audio streaming. _com_error error = audio_client_->Stop(); diff --git a/third_party/libwebrtc/modules/audio_device/win/core_audio_base_win.h b/third_party/libwebrtc/modules/audio_device/win/core_audio_base_win.h @@ -12,12 +12,14 @@ #define MODULES_AUDIO_DEVICE_WIN_CORE_AUDIO_BASE_WIN_H_ #include <atomic> +#include <cstdint> #include <functional> -#include <memory> #include <optional> #include <string> +#include <type_traits> #include "absl/strings/string_view.h" +#include "api/environment/environment.h" #include "api/sequence_checker.h" #include "modules/audio_device/win/core_audio_utility_win.h" #include "rtc_base/platform_thread.h" @@ -77,7 +79,8 @@ class CoreAudioBase : public IAudioSessionEvents { CoreAudioBase& operator=(const CoreAudioBase&) = delete; protected: - explicit CoreAudioBase(Direction direction, + explicit CoreAudioBase(const Environment& env, + Direction direction, bool automatic_restart, OnDataCallback data_callback, OnErrorCallback error_callback); @@ -122,7 +125,9 @@ class CoreAudioBase : public IAudioSessionEvents { bool IsDefaultCommunicationsDeviceId(absl::string_view device_id) const; EDataFlow GetDataFlow() const; bool IsRestarting() const; - int64_t TimeSinceStart() const; + int64_t TimeSinceStartMs() const; + + const Environment env_; // TODO(henrika): is the existing thread checker in WindowsAudioDeviceModule // sufficient? As is, we have one top-level protection and then a second diff --git a/third_party/libwebrtc/modules/audio_device/win/core_audio_input_win.cc b/third_party/libwebrtc/modules/audio_device/win/core_audio_input_win.cc @@ -10,13 +10,24 @@ #include "modules/audio_device/win/core_audio_input_win.h" +#include <cstdint> #include <memory> - +#include <optional> +#include <string> + +#include "api/array_view.h" +#include "api/audio/audio_device.h" +#include "api/environment/environment.h" +#include "api/sequence_checker.h" +#include "api/units/time_delta.h" #include "modules/audio_device/audio_device_buffer.h" #include "modules/audio_device/fine_audio_buffer.h" +#include "modules/audio_device/win/core_audio_base_win.h" +#include "modules/audio_device/win/core_audio_utility_win.h" #include "rtc_base/checks.h" #include "rtc_base/logging.h" #include "rtc_base/numerics/safe_conversions.h" +#include "rtc_base/zero_memory.h" using Microsoft::WRL::ComPtr; @@ -27,8 +38,9 @@ enum AudioDeviceMessageType : uint32_t { kMessageInputStreamDisconnected, }; -CoreAudioInput::CoreAudioInput(bool automatic_restart) +CoreAudioInput::CoreAudioInput(const Environment& env, bool automatic_restart) : CoreAudioBase( + env, CoreAudioBase::Direction::kInput, automatic_restart, [this](uint64_t freq) { return OnDataCallback(freq); }, diff --git a/third_party/libwebrtc/modules/audio_device/win/core_audio_input_win.h b/third_party/libwebrtc/modules/audio_device/win/core_audio_input_win.h @@ -11,10 +11,13 @@ #ifndef MODULES_AUDIO_DEVICE_WIN_CORE_AUDIO_INPUT_WIN_H_ #define MODULES_AUDIO_DEVICE_WIN_CORE_AUDIO_INPUT_WIN_H_ +#include <cstdint> #include <memory> #include <optional> #include <string> +#include "api/audio/audio_device.h" +#include "api/environment/environment.h" #include "modules/audio_device/win/audio_device_module_win.h" #include "modules/audio_device/win/core_audio_base_win.h" @@ -30,7 +33,7 @@ namespace webrtc_win { // and streaming of captured audio to a WebRTC client. class CoreAudioInput final : public CoreAudioBase, public AudioInput { public: - CoreAudioInput(bool automatic_restart); + CoreAudioInput(const Environment& env, bool automatic_restart); ~CoreAudioInput() override; // AudioInput implementation. diff --git a/third_party/libwebrtc/modules/audio_device/win/core_audio_output_win.cc b/third_party/libwebrtc/modules/audio_device/win/core_audio_output_win.cc @@ -10,10 +10,19 @@ #include "modules/audio_device/win/core_audio_output_win.h" +#include <cstdint> #include <memory> +#include <string> +#include "api/array_view.h" +#include "api/audio/audio_device.h" +#include "api/environment/environment.h" +#include "api/sequence_checker.h" +#include "api/units/time_delta.h" #include "modules/audio_device/audio_device_buffer.h" #include "modules/audio_device/fine_audio_buffer.h" +#include "modules/audio_device/win/core_audio_base_win.h" +#include "modules/audio_device/win/core_audio_utility_win.h" #include "rtc_base/checks.h" #include "rtc_base/logging.h" #include "rtc_base/time_utils.h" @@ -23,8 +32,9 @@ using Microsoft::WRL::ComPtr; namespace webrtc { namespace webrtc_win { -CoreAudioOutput::CoreAudioOutput(bool automatic_restart) +CoreAudioOutput::CoreAudioOutput(const Environment& env, bool automatic_restart) : CoreAudioBase( + env, CoreAudioBase::Direction::kOutput, automatic_restart, [this](uint64_t freq) { return OnDataCallback(freq); }, diff --git a/third_party/libwebrtc/modules/audio_device/win/core_audio_output_win.h b/third_party/libwebrtc/modules/audio_device/win/core_audio_output_win.h @@ -11,9 +11,12 @@ #ifndef MODULES_AUDIO_DEVICE_WIN_CORE_AUDIO_OUTPUT_WIN_H_ #define MODULES_AUDIO_DEVICE_WIN_CORE_AUDIO_OUTPUT_WIN_H_ +#include <cstdint> #include <memory> #include <string> +#include "api/audio/audio_device.h" +#include "api/environment/environment.h" #include "modules/audio_device/win/audio_device_module_win.h" #include "modules/audio_device/win/core_audio_base_win.h" @@ -30,7 +33,7 @@ namespace webrtc_win { // layer. class CoreAudioOutput final : public CoreAudioBase, public AudioOutput { public: - CoreAudioOutput(bool automatic_restart); + CoreAudioOutput(const Environment& env, bool automatic_restart); ~CoreAudioOutput() override; // AudioOutput implementation. diff --git a/third_party/libwebrtc/moz-patch-stack/s0027.patch b/third_party/libwebrtc/moz-patch-stack/s0027.patch @@ -736,7 +736,7 @@ index 0c56427b29..13c9533524 100644 } diff --git a/modules/audio_device/BUILD.gn b/modules/audio_device/BUILD.gn -index 82e64086d1..29b1b11fae 100644 +index 8e8a4bff5f..e57e55882c 100644 --- a/modules/audio_device/BUILD.gn +++ b/modules/audio_device/BUILD.gn @@ -30,6 +30,7 @@ rtc_source_set("audio_device_default") { @@ -771,7 +771,7 @@ index 82e64086d1..29b1b11fae 100644 rtc_library("audio_device_generic") { sources = [ -@@ -252,6 +256,7 @@ if (!build_with_chromium) { +@@ -256,6 +260,7 @@ if (!build_with_chromium) { # Contains default implementations of webrtc::AudioDeviceModule for Windows, # Linux, Mac, iOS and Android. rtc_library("audio_device_impl") { @@ -779,7 +779,7 @@ index 82e64086d1..29b1b11fae 100644 visibility = [ "*" ] deps = [ ":audio_device_buffer", -@@ -298,9 +303,9 @@ rtc_library("audio_device_impl") { +@@ -302,9 +307,9 @@ rtc_library("audio_device_impl") { sources = [ "include/fake_audio_device.h" ] if (build_with_mozilla) { @@ -792,7 +792,7 @@ index 82e64086d1..29b1b11fae 100644 ] } -@@ -403,6 +408,7 @@ rtc_library("audio_device_impl") { +@@ -407,6 +412,7 @@ rtc_library("audio_device_impl") { sources += [ "dummy/file_audio_device_factory.h" ] } } @@ -800,7 +800,7 @@ index 82e64086d1..29b1b11fae 100644 if (is_mac) { rtc_source_set("audio_device_impl_frameworks") { -@@ -420,6 +426,7 @@ if (is_mac) { +@@ -424,6 +430,7 @@ if (is_mac) { } } @@ -808,7 +808,7 @@ index 82e64086d1..29b1b11fae 100644 rtc_source_set("mock_audio_device") { visibility = [ "*" ] testonly = true -@@ -438,8 +445,10 @@ rtc_source_set("mock_audio_device") { +@@ -442,8 +449,10 @@ rtc_source_set("mock_audio_device") { "../../test:test_support", ] } diff --git a/third_party/libwebrtc/moz-patch-stack/s0102.patch b/third_party/libwebrtc/moz-patch-stack/s0102.patch @@ -440,7 +440,7 @@ index 33d14980ea..12c65b29f3 100644 import("../webrtc.gni") diff --git a/modules/audio_device/BUILD.gn b/modules/audio_device/BUILD.gn -index 29b1b11fae..62dd9f56d1 100644 +index e57e55882c..80af18a5fa 100644 --- a/modules/audio_device/BUILD.gn +++ b/modules/audio_device/BUILD.gn @@ -9,8 +9,8 @@