tor-browser

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

commit 8844a79848ba15c5ac4d503b6a283588b1d950d8
parent 9ac3e2af89896ce6d03eb929ed2a899d93656a83
Author: Michael Froman <mfroman@mozilla.com>
Date:   Thu,  9 Oct 2025 15:31:29 -0500

Bug 1993083 - Vendor libwebrtc from d552ad7fc0

We already cherry-picked this when we vendored b690d7eb35.

Upstream commit: https://webrtc.googlesource.com/src/+/d552ad7fc03e672167f2e759019c24af992453f9
    Revert "Remove jni_generator_helper.h from WebRTC"

    This reverts commit b690d7eb3521c90ae78c0abf5e7454201855b953.

    Reason for revert: Breaks downstream

    Bug: b/325408567, b/319078685, b/351773023
    Original change's description:
    > Remove jni_generator_helper.h from WebRTC
    >
    > Bug: b/325408567, b/319078685, b/351773023
    > Change-Id: I84c168b4ef8c6936e2644ad85edda8687c6c491a
    > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/401480
    > Reviewed-by: Jeremy Leconte <jleconte@google.com>
    > Reviewed-by: Harald Alvestrand <hta@webrtc.org>
    > Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
    > Cr-Commit-Position: refs/heads/main@{#45191}

    Bug: b/325408567, b/319078685, b/351773023
    No-Presubmit: true
    No-Tree-Checks: true
    No-Try: true
    Change-Id: Ib7820a585f15940ea4d6ecb6075b80da85700e60
    Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/401580
    Reviewed-by: Jeremy Leconte <jleconte@google.com>
    Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
    Owners-Override: Mirko Bonadei <mbonadei@webrtc.org>
    Cr-Commit-Position: refs/heads/main@{#45192}

Diffstat:
Mthird_party/libwebrtc/README.mozilla.last-vendor | 4++--
Dthird_party/libwebrtc/moz-patch-stack/d552ad7fc0.no-op-cherry-pick-msg | 1-
Mthird_party/libwebrtc/moz-patch-stack/p0001.patch | 384++++++++-----------------------------------------------------------------------
Dthird_party/libwebrtc/moz-patch-stack/p0002.patch | 46----------------------------------------------
4 files changed, 41 insertions(+), 394 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 /home/mfroman/mozilla/elm/.moz-fast-forward/moz-libwebrtc --commit mozpatches libwebrtc -libwebrtc updated from /home/mfroman/mozilla/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2025-10-09T20:30:12.094121+00:00. +libwebrtc updated from /home/mfroman/mozilla/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2025-10-09T20:31:20.105212+00:00. # base of lastest vendoring -b690d7eb35 +d552ad7fc0 diff --git a/third_party/libwebrtc/moz-patch-stack/d552ad7fc0.no-op-cherry-pick-msg b/third_party/libwebrtc/moz-patch-stack/d552ad7fc0.no-op-cherry-pick-msg @@ -1 +0,0 @@ -We already cherry-picked this when we vendored b690d7eb35. diff --git a/third_party/libwebrtc/moz-patch-stack/p0001.patch b/third_party/libwebrtc/moz-patch-stack/p0001.patch @@ -1,352 +1,46 @@ -From: Michael Froman <mjfroman@mac.com> -Date: Thu, 9 Oct 2025 15:29:59 -0500 -Subject: (tmp-cherry-pick) Revert "Remove jni_generator_helper.h from WebRTC" - (d552ad7fc0) +From: Guido Urdaneta <guidou@webrtc.org> +Date: Thu, 24 Jul 2025 11:01:29 +0200 +Subject: (cherry-pick-branch-heads/7258) Use FieldTrialsView::IsEnabled for + DTLS 1.3 -This reverts commit b690d7eb3521c90ae78c0abf5e7454201855b953. +No behavior changes. -Reason for revert: Breaks downstream +(cherry picked from commit 5ff715d5666106e01d27205c1775d1e2d07ea254) -Bug: b/325408567, b/319078685, b/351773023 -Original change's description: -> Remove jni_generator_helper.h from WebRTC -> -> Bug: b/325408567, b/319078685, b/351773023 -> Change-Id: I84c168b4ef8c6936e2644ad85edda8687c6c491a -> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/401480 -> Reviewed-by: Jeremy Leconte <jleconte@google.com> -> Reviewed-by: Harald Alvestrand <hta@webrtc.org> -> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> -> Cr-Commit-Position: refs/heads/main@{#45191} - -Bug: b/325408567, b/319078685, b/351773023 -No-Presubmit: true -No-Tree-Checks: true -No-Try: true -Change-Id: Ib7820a585f15940ea4d6ecb6075b80da85700e60 -Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/401580 -Reviewed-by: Jeremy Leconte <jleconte@google.com> -Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> -Owners-Override: Mirko Bonadei <mbonadei@webrtc.org> -Cr-Commit-Position: refs/heads/main@{#45192} +Bug: webrtc:383141571, chromium:433885045, chromium:434133034 +Change-Id: Ice5f3e5cbd245ddea407248a6f29c61c646e6a72 +Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/401740 +Reviewed-by: Harald Alvestrand <hta@webrtc.org> +Commit-Queue: Guido Urdaneta <guidou@webrtc.org> +Cr-Original-Commit-Position: refs/heads/main@{#45206} +Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/402200 +Cr-Commit-Position: refs/branch-heads/7258@{#3} +Cr-Branched-From: 74fa937f86ed8432c07676f7a1ce0e5e2812b3d5-refs/heads/main@{#44974} --- - examples/androidnativeapi/BUILD.gn | 1 + - examples/androidvoip/BUILD.gn | 1 + - sdk/android/BUILD.gn | 21 ++++ - sdk/android/src/jni/OWNERS | 3 + - sdk/android/src/jni/jni_generator_helper.h | 114 +++++++++++++++++++++ - 5 files changed, 140 insertions(+) - create mode 100644 sdk/android/src/jni/jni_generator_helper.h + rtc_base/openssl_stream_adapter.cc | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) -diff --git a/examples/androidnativeapi/BUILD.gn b/examples/androidnativeapi/BUILD.gn -index 64cd43e923..d0f9014a66 100644 ---- a/examples/androidnativeapi/BUILD.gn -+++ b/examples/androidnativeapi/BUILD.gn -@@ -31,6 +31,7 @@ if (is_android) { - testonly = true - sources = [ "java/org/webrtc/examples/androidnativeapi/CallClient.java" ] - namespace = "webrtc_examples" -+ jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" - } - - rtc_shared_library("examples_androidnativeapi_jni") { -diff --git a/examples/androidvoip/BUILD.gn b/examples/androidvoip/BUILD.gn -index be28f08b3c..3f517b73c0 100644 ---- a/examples/androidvoip/BUILD.gn -+++ b/examples/androidvoip/BUILD.gn -@@ -40,6 +40,7 @@ if (is_android) { - testonly = true - sources = [ "java/org/webrtc/examples/androidvoip/VoipClient.java" ] - namespace = "webrtc_examples" -+ jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" - } - - rtc_shared_library("examples_androidvoip_jni") { -diff --git a/sdk/android/BUILD.gn b/sdk/android/BUILD.gn -index f3db81c780..ae44285fc9 100644 ---- a/sdk/android/BUILD.gn -+++ b/sdk/android/BUILD.gn -@@ -1000,6 +1000,7 @@ if (current_os == "linux" || is_android) { - "native_api/jni/class_loader.cc", - "native_api/jni/java_types.cc", - "native_api/jni/jvm.cc", -+ "src/jni/jni_generator_helper.h", - ] - - public = [ -@@ -1361,16 +1362,19 @@ if (current_os == "linux" || is_android) { - "java/util/ArrayList.class", - "java/lang/Enum.class", - ] -+ jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" - } - - generate_jni("generated_environment_jni") { - sources = [ "api/org/webrtc/Environment.java" ] - namespace = "webrtc::jni" -+ jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" - } - - generate_jni("generated_metrics_jni") { - sources = [ "api/org/webrtc/Metrics.java" ] - namespace = "webrtc::jni" -+ jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" - } - - # Generated JNI for public JNI targets, matching order of targets -@@ -1384,6 +1388,7 @@ if (current_os == "linux" || is_android) { - "src/java/org/webrtc/JniCommon.java", - ] - namespace = "webrtc::jni" -+ jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" - } - - generate_jni("generated_video_jni") { -@@ -1413,11 +1418,13 @@ if (current_os == "linux" || is_android) { - "src/java/org/webrtc/WrappedNativeI420Buffer.java", - ] - namespace = "webrtc::jni" -+ jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" - } - - generate_jni("generated_video_egl_jni") { - sources = [ "src/java/org/webrtc/EglBase10Impl.java" ] - namespace = "webrtc::jni" -+ jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" - } - - generate_jni("generated_libvpx_vp8_jni") { -@@ -1427,6 +1434,7 @@ if (current_os == "linux" || is_android) { - ] - - namespace = "webrtc::jni" -+ jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" - } - - generate_jni("generated_libvpx_vp9_jni") { -@@ -1436,18 +1444,21 @@ if (current_os == "linux" || is_android) { - ] - - namespace = "webrtc::jni" -+ jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" - } - - generate_jni("generated_libaom_av1_encoder_jni") { - sources = [ "api/org/webrtc/LibaomAv1Encoder.java" ] - - namespace = "webrtc::jni" -+ jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" - } - - generate_jni("generated_dav1d_jni") { - sources = [ "api/org/webrtc/Dav1dDecoder.java" ] - - namespace = "webrtc::jni" -+ jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" - } - - generate_jni("generated_swcodecs_jni") { -@@ -1457,11 +1468,13 @@ if (current_os == "linux" || is_android) { - ] - - namespace = "webrtc::jni" -+ jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" - } - - generate_jni("generated_rtcerror_jni") { - sources = [ "src/java/org/webrtc/RtcError.java" ] - namespace = "webrtc::jni" -+ jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" - } - - generate_jni("generated_peerconnection_jni") { -@@ -1498,11 +1511,13 @@ if (current_os == "linux" || is_android) { - "api/org/webrtc/TurnCustomizer.java", - ] - namespace = "webrtc::jni" -+ jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" - } - - generate_jni("generated_java_audio_jni") { - sources = [ "api/org/webrtc/audio/JavaAudioDeviceModule.java" ] - namespace = "webrtc::jni" -+ jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" - } - - generate_jni("generated_builtin_audio_codecs_jni") { -@@ -1511,6 +1526,7 @@ if (current_os == "linux" || is_android) { - "api/org/webrtc/BuiltinAudioEncoderFactoryFactory.java", - ] - namespace = "webrtc::jni" -+ jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" - } - - # Generated JNI for native API targets -@@ -1522,17 +1538,20 @@ if (current_os == "linux" || is_android) { - "src/java/org/webrtc/WebRtcClassLoader.java", - ] - namespace = "webrtc::jni" -+ jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" - } - - # Generated JNI for internal targets. - - generate_jni("generated_logging_jni") { - sources = [ "src/java/org/webrtc/JNILogging.java" ] -+ jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" - } - - generate_jni("generated_audio_device_module_base_jni") { - sources = [ "src/java/org/webrtc/audio/WebRtcAudioManager.java" ] - namespace = "webrtc::jni" -+ jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" - } - - generate_jni("generated_java_audio_device_module_native_jni") { -@@ -1541,6 +1560,7 @@ if (current_os == "linux" || is_android) { - "src/java/org/webrtc/audio/WebRtcAudioTrack.java", - ] - namespace = "webrtc::jni" -+ jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" +diff --git a/rtc_base/openssl_stream_adapter.cc b/rtc_base/openssl_stream_adapter.cc +index 7d7466b1cc..604a9465c7 100644 +--- a/rtc_base/openssl_stream_adapter.cc ++++ b/rtc_base/openssl_stream_adapter.cc +@@ -144,13 +144,15 @@ int GetForceDtls13(const FieldTrialsView* field_trials) { + return kForceDtls13Off; + } + #ifdef DTLS1_3_VERSION +- auto mode = field_trials->Lookup("WebRTC-ForceDtls13"); +- RTC_LOG(LS_WARNING) << "WebRTC-ForceDtls13: " << mode; +- if (mode == "Enabled") { ++ if (field_trials->IsEnabled("WebRTC-ForceDtls13")) { ++ RTC_LOG(LS_WARNING) << "WebRTC-ForceDtls13 Enabled"; + return kForceDtls13Enabled; +- } else if (mode == "Only") { ++ } ++ if (field_trials->Lookup("WebRTC-ForceDtls13") == "Only") { ++ RTC_LOG(LS_WARNING) << "WebRTC-ForceDtls13 Only"; + return kForceDtls13Only; } ++ RTC_LOG(LS_WARNING) << "WebRTC-ForceDtls13 Disabled"; + #endif + return kForceDtls13Off; } - -@@ -1788,6 +1808,7 @@ if (is_android) { - "native_unittests/org/webrtc/PeerConnectionFactoryInitializationHelper.java", - ] - namespace = "webrtc::jni" -+ jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" - } - - robolectric_binary("android_sdk_junit_tests") { -diff --git a/sdk/android/src/jni/OWNERS b/sdk/android/src/jni/OWNERS -index 557373424b..6d01899f22 100644 ---- a/sdk/android/src/jni/OWNERS -+++ b/sdk/android/src/jni/OWNERS -@@ -2,3 +2,6 @@ per-file androidhistogram.cc=xalep@webrtc.org - per-file androidmetrics.cc=xalep@webrtc.org - per-file androidvideotracksource.*=xalep@webrtc.org - per-file androidvideotracksource.cc=xalep@webrtc.org -+ -+per-file jni_generator_helper.cc=file://infra/OWNERS -+per-file jni_generator_helper.h=file://infra/OWNERS -diff --git a/sdk/android/src/jni/jni_generator_helper.h b/sdk/android/src/jni/jni_generator_helper.h -new file mode 100644 -index 0000000000..8fc711b8ac ---- /dev/null -+++ b/sdk/android/src/jni/jni_generator_helper.h -@@ -0,0 +1,114 @@ -+/* -+ * Copyright 2017 The WebRTC project authors. All Rights Reserved. -+ * -+ * Use of this source code is governed by a BSD-style license -+ * that can be found in the LICENSE file in the root of the source -+ * tree. An additional intellectual property rights grant can be found -+ * in the file PATENTS. All contributing project authors may -+ * be found in the AUTHORS file in the root of the source tree. -+ */ -+// Do not include this file directly. It's intended to be used only by the JNI -+// generation script. We are exporting types in strange namespaces in order to -+// be compatible with the generated code targeted for Chromium. -+ -+#ifndef SDK_ANDROID_SRC_JNI_JNI_GENERATOR_HELPER_H_ -+#define SDK_ANDROID_SRC_JNI_JNI_GENERATOR_HELPER_H_ -+ -+#include <jni.h> -+ -+#include <atomic> -+#include <cstdint> -+#include <cstring> -+ -+#include "third_party/jni_zero/jni_zero_internal.h" -+ -+#define JNI_REGISTRATION_EXPORT __attribute__((visibility("default"))) -+ -+#if defined(WEBRTC_ARCH_X86) -+// Dalvik JIT generated code doesn't guarantee 16-byte stack alignment on -+// x86 - use force_align_arg_pointer to realign the stack at the JNI -+// boundary. crbug.com/655248 -+#define JNI_GENERATOR_EXPORT \ -+ __attribute__((force_align_arg_pointer)) extern "C" JNIEXPORT JNICALL -+#else -+#define JNI_GENERATOR_EXPORT extern "C" JNIEXPORT JNICALL -+#endif -+ -+// Re-export helpers in the old jni_generator namespace. -+// TODO(b/319078685): Remove once all uses of the jni_generator has been -+// updated. -+namespace jni_generator { -+using jni_zero::internal::kJniStackMarkerValue; -+ -+// TODO(b/319078685): Remove JniJavaCallContextUnchecked once all uses of the -+// jni_generator has been updated. -+struct JniJavaCallContextUnchecked { -+ inline JniJavaCallContextUnchecked() { -+// TODO(ssid): Implement for other architectures. -+#if defined(__arm__) || defined(__aarch64__) -+ // This assumes that this method does not increment the stack pointer. -+ asm volatile("mov %0, sp" : "=r"(sp)); -+#else -+ sp = 0; -+#endif -+ } -+ -+ // Force no inline to reduce code size. -+ template <jni_zero::MethodID::Type type> -+ void Init(JNIEnv* env, -+ jclass clazz, -+ const char* method_name, -+ const char* jni_signature, -+ std::atomic<jmethodID>* atomic_method_id) { -+ env1 = env; -+ -+ // Make sure compiler doesn't optimize out the assignment. -+ memcpy(&marker, &kJniStackMarkerValue, sizeof(kJniStackMarkerValue)); -+ // Gets PC of the calling function. -+ pc = reinterpret_cast<uintptr_t>(__builtin_return_address(0)); -+ -+ method_id = jni_zero::MethodID::LazyGet<type>( -+ env, clazz, method_name, jni_signature, atomic_method_id); -+ } -+ -+ ~JniJavaCallContextUnchecked() { -+ // Reset so that spurious marker finds are avoided. -+ memset(&marker, 0, sizeof(marker)); -+ } -+ -+ uint64_t marker; -+ uintptr_t sp; -+ uintptr_t pc; -+ -+ JNIEnv* env1; -+ jmethodID method_id; -+}; -+ -+// TODO(b/319078685): Remove JniJavaCallContextChecked once all uses of the -+// jni_generator has been updated. -+// Context about the JNI call with exception unchecked to be stored in stack. -+struct JniJavaCallContextChecked { -+ // Force no inline to reduce code size. -+ template <jni_zero::MethodID::Type type> -+ void Init(JNIEnv* env, -+ jclass clazz, -+ const char* method_name, -+ const char* jni_signature, -+ std::atomic<jmethodID>* atomic_method_id) { -+ base.Init<type>(env, clazz, method_name, jni_signature, atomic_method_id); -+ // Reset `pc` to correct caller. -+ base.pc = reinterpret_cast<uintptr_t>(__builtin_return_address(0)); -+ } -+ -+ ~JniJavaCallContextChecked() { jni_zero::CheckException(base.env1); } -+ -+ JniJavaCallContextUnchecked base; -+}; -+ -+static_assert(sizeof(JniJavaCallContextChecked) == -+ sizeof(JniJavaCallContextUnchecked), -+ "Stack unwinder cannot work with structs of different sizes."); -+ -+} // namespace jni_generator -+ -+#endif // SDK_ANDROID_SRC_JNI_JNI_GENERATOR_HELPER_H_ diff --git a/third_party/libwebrtc/moz-patch-stack/p0002.patch b/third_party/libwebrtc/moz-patch-stack/p0002.patch @@ -1,46 +0,0 @@ -From: Guido Urdaneta <guidou@webrtc.org> -Date: Thu, 24 Jul 2025 11:01:29 +0200 -Subject: (cherry-pick-branch-heads/7258) Use FieldTrialsView::IsEnabled for - DTLS 1.3 - -No behavior changes. - -(cherry picked from commit 5ff715d5666106e01d27205c1775d1e2d07ea254) - -Bug: webrtc:383141571, chromium:433885045, chromium:434133034 -Change-Id: Ice5f3e5cbd245ddea407248a6f29c61c646e6a72 -Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/401740 -Reviewed-by: Harald Alvestrand <hta@webrtc.org> -Commit-Queue: Guido Urdaneta <guidou@webrtc.org> -Cr-Original-Commit-Position: refs/heads/main@{#45206} -Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/402200 -Cr-Commit-Position: refs/branch-heads/7258@{#3} -Cr-Branched-From: 74fa937f86ed8432c07676f7a1ce0e5e2812b3d5-refs/heads/main@{#44974} ---- - rtc_base/openssl_stream_adapter.cc | 10 ++++++---- - 1 file changed, 6 insertions(+), 4 deletions(-) - -diff --git a/rtc_base/openssl_stream_adapter.cc b/rtc_base/openssl_stream_adapter.cc -index 7d7466b1cc..604a9465c7 100644 ---- a/rtc_base/openssl_stream_adapter.cc -+++ b/rtc_base/openssl_stream_adapter.cc -@@ -144,13 +144,15 @@ int GetForceDtls13(const FieldTrialsView* field_trials) { - return kForceDtls13Off; - } - #ifdef DTLS1_3_VERSION -- auto mode = field_trials->Lookup("WebRTC-ForceDtls13"); -- RTC_LOG(LS_WARNING) << "WebRTC-ForceDtls13: " << mode; -- if (mode == "Enabled") { -+ if (field_trials->IsEnabled("WebRTC-ForceDtls13")) { -+ RTC_LOG(LS_WARNING) << "WebRTC-ForceDtls13 Enabled"; - return kForceDtls13Enabled; -- } else if (mode == "Only") { -+ } -+ if (field_trials->Lookup("WebRTC-ForceDtls13") == "Only") { -+ RTC_LOG(LS_WARNING) << "WebRTC-ForceDtls13 Only"; - return kForceDtls13Only; - } -+ RTC_LOG(LS_WARNING) << "WebRTC-ForceDtls13 Disabled"; - #endif - return kForceDtls13Off; - }