git: 76efafbdb666 - 2026Q3 - www/waterfox: Update 6.6.16.1 => 6.7.0-beta.3

Vladimir Druzenko <[email protected]> Sun, 02 Aug 2026 16:55:00 +0000
Newsgroups gmane.os.freebsd.devel.cvs.ports
Message-ID <[email protected]>
The branch 2026Q3 has been updated by vvd:

URL: https://cgit.FreeBSD.org/ports/commit/?id=76efafbdb6660839c5055fc2521b88ca1bf9904f

commit 76efafbdb6660839c5055fc2521b88ca1bf9904f
Author:     Martin Filla <[email protected]>
AuthorDate: 2026-08-02 16:48:06 +0000
Commit:     Vladimir Druzenko <[email protected]>
CommitDate: 2026-08-02 16:54:36 +0000

    www/waterfox: Update 6.6.16.1 => 6.7.0-beta.3
    
    First 6.7.0 beta moving Waterfox to the ESR 153 platform.
    
    Release Notes:
    https://www.waterfox.com/releases/6.7.0-beta.1/
    https://www.waterfox.com/releases/6.7.0-beta.2/
    https://www.waterfox.com/releases/6.7.0-beta.3/
    
    PR:             297209
    Sponsored by:   UNIS Labs
    MFH:            2026Q3
    
    (cherry picked from commit 66176a33aca4cf06c82d140b93720aa5cadd4c0e)
---
 www/waterfox/Makefile                              |     6 +-
 www/waterfox/distinfo                              |    10 +-
 www/waterfox/files/patch-bug1504834_comment10      |    36 -
 www/waterfox/files/patch-bug1504834_comment5       |    34 +-
 www/waterfox/files/patch-bug1626236                |    92 -
 www/waterfox/files/patch-bug1716707                |    56 -
 www/waterfox/files/patch-bug1876632                |    35 -
 www/waterfox/files/patch-bug2023597                |    25 -
 www/waterfox/files/patch-build_gn__processor.py    |    26 +-
 www/waterfox/files/patch-dns-resolve-https-rr      |    10 +-
 ...dom_media_webrtc_libwebrtc__overrides_moz.build |    25 +
 www/waterfox/files/patch-hal_moz.build             |    18 +
 www/waterfox/files/patch-i386-protobuf-alignment   |    15 -
 www/waterfox/files/patch-ipc_glue_ForkServer.cpp   |    35 +
 .../files/patch-ipc_glue_GeckoChildProcessHost.cpp |    13 -
 .../files/patch-languageid-de-constexpr-ify        |   138 +
 www/waterfox/files/patch-libwebrtc-generated       | 41463 +++++++++----------
 www/waterfox/files/patch-media_libopus_moz.build   |    21 +
 .../files/patch-modules_fdlibm_src_math__private.h |    27 -
 www/waterfox/files/patch-pipewire_init             |   106 +-
 www/waterfox/files/patch-python_sites_build.txt    |    17 +
 www/waterfox/files/patch-python_sites_mach.txt     |    32 +-
 ...d__party_chromium_build_toolchain_toolchain.gni |    18 +
 ...rd__party_libwebrtc_build_config_BUILDCONFIG.gn |    63 +-
 ...tc_modules_desktop__capture_desktop__capturer.h |    20 +
 ..._desktop__capture_linux_wayland__egl__dmabuf.cc |    23 +-
 ...arty_libwebrtc_modules_portal_pipewire__utils.h |    19 +
 ...hird__party_sqlite3_ext_sqlite-vec_sqlite-vec.c |     9 +-
 ..._google_protobuf_io_zero__copy__stream__impl.cc |    23 +
 ...eakpad_src_common_linux_memory__mapped__file.cc |    40 +
 www/waterfox/files/patch-toolkit_library_moz.build |    22 +
 .../files/patch-xpcom_base_nsMemoryInfoDumper.cpp  |    19 +
 32 files changed, 20466 insertions(+), 22030 deletions(-)

diff --git a/www/waterfox/Makefile b/www/waterfox/Makefile
index 855cc89e859b..7e32c289cd53 100644
--- a/www/waterfox/Makefile
+++ b/www/waterfox/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	waterfox
-DISTVERSION=	6.6.16.1
+DISTVERSION=	6.7.0-beta.3
 PORTEPOCH=	1
 CATEGORIES=	www
 
@@ -11,7 +11,7 @@ LICENSE=	MPL20
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
 BUILD_DEPENDS=	nspr>=4.32:devel/nspr \
-		nss>=3.124.0:security/nss \
+		nss>=3.125.0:security/nss \
 		icu>=76.1:devel/icu \
 		libevent>=2.1.8:devel/libevent \
 		harfbuzz>=10.1.0:print/harfbuzz \
@@ -31,7 +31,7 @@ BUILD_DEPENDS=	nspr>=4.32:devel/nspr \
 USE_GECKO=	gecko
 USE_GITHUB=	yes
 GH_ACCOUNT=	BrowserWorks
-GH_TUPLE=	BrowserWorks:l10n:a2e5c9b:l10n/waterfox/browser/locales
+GH_TUPLE=	BrowserWorks:l10n:cc8b91c:l10n/waterfox/browser/locales
 USE_MOZILLA=	-sqlite
 # work around bindgen not finding ICU, e.g.
 # dist/include/mozilla/intl/ICU4CGlue.h:8:10: fatal error: 'unicode/uenum.h' file not found, err: true
diff --git a/www/waterfox/distinfo b/www/waterfox/distinfo
index e0a6eba815c4..6977253f1b95 100644
--- a/www/waterfox/distinfo
+++ b/www/waterfox/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1783838383
-SHA256 (BrowserWorks-waterfox-6.6.16.1_GH0.tar.gz) = b0b4086cbff68cc1dc0e28321a99055482f19a243f14fa674adc8800b5b83d84
-SIZE (BrowserWorks-waterfox-6.6.16.1_GH0.tar.gz) = 926640559
-SHA256 (BrowserWorks-l10n-a2e5c9b_GH0.tar.gz) = b59e1ad5a16b3fcfb4266edb7a641098c511ce593b8f2ff291cc7dc3ca054b03
-SIZE (BrowserWorks-l10n-a2e5c9b_GH0.tar.gz) = 25811834
+TIMESTAMP = 1785511261
+SHA256 (BrowserWorks-waterfox-6.7.0-beta.3_GH0.tar.gz) = f79f539de265e2ed17115adb4d9b4b29b1d4814d5aa9e366bbab4da226191ada
+SIZE (BrowserWorks-waterfox-6.7.0-beta.3_GH0.tar.gz) = 1053034744
+SHA256 (BrowserWorks-l10n-cc8b91c_GH0.tar.gz) = 4e1edf9d95cb273003778cb798c0adfe039a5716a0242078da552aae3b5573d0
+SIZE (BrowserWorks-l10n-cc8b91c_GH0.tar.gz) = 94276518
diff --git a/www/waterfox/files/patch-bug1504834_comment10 b/www/waterfox/files/patch-bug1504834_comment10
deleted file mode 100644
index 2d584adb17ef..000000000000
--- a/www/waterfox/files/patch-bug1504834_comment10
+++ /dev/null
@@ -1,36 +0,0 @@
-https://bugzilla.mozilla.org/show_bug.cgi?id=1504834#c10
-https://bug1504834.bmoattachments.org/attachment.cgi?id=9111147
-mozilla-bmo1504834-part4.patch
-
-# HG changeset patch
-# Parent  46ea866ca3acb8bb5e1709ceb799b9c94f591dec
-Problem description: Tab-titles that are too long to fit into a tab get faded out.
-                     On big endian this is broken and instead of fading out, the 
-                     tab gets white and the font transparent, leading to an unreadable
-                     tab-title
-Solution: This is not a real solution, but a hack. The real solution would have been
-          to byte-swap the correct buffer, but I could not find it.
-          So the next best thing is to deactivate the fading-effect. Now all tab-titles
-          are readable, albeit not as pretty to look at as they could be. 
-Side-effects: I have not yet found an unwanted side-effect.
-
-diff --git gfx/2d/DrawTargetSkia.cpp gfx/2d/DrawTargetSkia.cpp
-index 6bbef8d..161b96f 100644
---- gfx/2d/DrawTargetSkia.cpp
-+++ gfx/2d/DrawTargetSkia.cpp
-@@ -1903,6 +1903,14 @@ void DrawTargetSkia::PushLayerWithBlend(bool aOpaque, Float aOpacity,
-       SkCanvas::kPreserveLCDText_SaveLayerFlag |
-           (aCopyBackground ? SkCanvas::kInitWithPrevious_SaveLayerFlag : 0));
- 
-+#if MOZ_BIG_ENDIAN()
-+  // Pushing a layer where an aMask is defined produces wrong output.
-+  // We _should_ endian swap the data, but I couldn't find a workable way to do so
-+  // Therefore I deactivate those layers in the meantime.
-+  // The result is: Tab-titles that are longer than the available space should be faded out.
-+  //                The fading doesn't work, so we deactivate the fading-effect here.
-+  if (!aMask)
-+#endif
-   mCanvas->saveLayer(saveRec);
- 
-   SetPermitSubpixelAA(aOpaque);
-
diff --git a/www/waterfox/files/patch-bug1504834_comment5 b/www/waterfox/files/patch-bug1504834_comment5
index b9897e0b7f66..ee4d57b507a1 100644
--- a/www/waterfox/files/patch-bug1504834_comment5
+++ b/www/waterfox/files/patch-bug1504834_comment5
@@ -4,10 +4,10 @@ Rough progress patch
 
 
 diff --git gfx/2d/DrawTargetSkia.cpp gfx/2d/DrawTargetSkia.cpp
-index 6bbef8d..82b04ba 100644
+index 050d9ae44e13..6f9bc7a88317 100644
 --- gfx/2d/DrawTargetSkia.cpp
 +++ gfx/2d/DrawTargetSkia.cpp
-@@ -154,8 +154,7 @@ static IntRect CalculateSurfaceBounds(const IntSize& aSize, const Rect* aBounds,
+@@ -166,8 +166,7 @@ static IntRect CalculateSurfaceBounds(const IntSize& aSize, const Rect* aBounds,
    return surfaceBounds.Intersect(bounds);
  }
  
@@ -17,29 +17,11 @@ index 6bbef8d..82b04ba 100644
  
  static bool VerifyRGBXFormat(uint8_t* aData, const IntSize& aSize,
                               const int32_t aStride, SurfaceFormat aFormat) {
-diff --git gfx/2d/Types.h gfx/2d/Types.h
-index 6b3bdc7..7c6c342 100644
---- gfx/2d/Types.h
-+++ gfx/2d/Types.h
-@@ -90,15 +90,8 @@ enum class SurfaceFormat : int8_t {
- // The following values are endian-independent synonyms. The _UINT32 suffix
- // indicates that the name reflects the layout when viewed as a uint32_t
- // value.
--#if MOZ_LITTLE_ENDIAN()
-   A8R8G8B8_UINT32 = B8G8R8A8,  // 0xAARRGGBB
-   X8R8G8B8_UINT32 = B8G8R8X8,  // 0x00RRGGBB
--#elif MOZ_BIG_ENDIAN()
--  A8R8G8B8_UINT32 = A8R8G8B8,  // 0xAARRGGBB
--  X8R8G8B8_UINT32 = X8R8G8B8,  // 0x00RRGGBB
--#else
--#  error "bad endianness"
--#endif
- 
-   // The following values are OS and endian-independent synonyms.
-   //
---- gfx/skia/skia/modules/skcms/skcms.cc.orig
+diff --git gfx/skia/skia/modules/skcms/skcms.cc gfx/skia/skia/modules/skcms/skcms.cc
+index 00b19eca7ed3..e6426c296df9 100644
+--- gfx/skia/skia/modules/skcms/skcms.cc
 +++ gfx/skia/skia/modules/skcms/skcms.cc
-@@ -30,6 +30,8 @@
+@@ -31,6 +31,8 @@
          #include <avx512fintrin.h>
          #include <avx512dqintrin.h>
      #endif
@@ -47,8 +29,8 @@ index 6b3bdc7..7c6c342 100644
 +    #define SKCMS_PORTABLE
  #endif
  
- static bool runtime_cpu_detection = true;
-@@ -324,20 +326,28 @@
+ using namespace skcms_private;
+@@ -379,20 +381,28 @@ enum {
  static uint16_t read_big_u16(const uint8_t* ptr) {
      uint16_t be;
      memcpy(&be, ptr, sizeof(be));
diff --git a/www/waterfox/files/patch-bug1626236 b/www/waterfox/files/patch-bug1626236
deleted file mode 100644
index ae3b522f6b90..000000000000
--- a/www/waterfox/files/patch-bug1626236
+++ /dev/null
@@ -1,92 +0,0 @@
-https://bugzilla.mozilla.org/show_bug.cgi?id=1626236
-https://bug1626236.bmoattachments.org/attachment.cgi?id=9137096
-
-# HG changeset patch
-# User [email protected]
-# Date 1582805876 -3600
-#      Thu Feb 27 13:17:56 2020 +0100
-# Node ID cc3d09abea31068e57f1ab918782f9f86fc6a158
-# Parent  9cd90914846f667f18babc491a74c164ae5d6e9f
-imported patch decoder_workaround.patch
-
-diff --git image/decoders/nsGIFDecoder2.cpp image/decoders/nsGIFDecoder2.cpp
-index ebb0b7d..d52ef47 100644
---- image/decoders/nsGIFDecoder2.cpp
-+++ image/decoders/nsGIFDecoder2.cpp
-@@ -422,6 +422,9 @@ void nsGIFDecoder2::ConvertColormap(uint32_t* aColormap, uint32_t aColors) {
-   MOZ_ASSERT(mSwizzleFn);
-   uint8_t* data = reinterpret_cast<uint8_t*>(aColormap);
-   mSwizzleFn(data, data, aColors);
-+#if MOZ_BIG_ENDIAN()
-+  SwizzleRow(SurfaceFormat::A8R8G8B8, SurfaceFormat::B8G8R8A8)(data, data, aColors);
-+#endif
- }
- 
- LexerResult nsGIFDecoder2::DoDecode(SourceBufferIterator& aIterator,
-diff --git image/decoders/nsJPEGDecoder.cpp image/decoders/nsJPEGDecoder.cpp
-index 9ea4403..d82772c 100644
---- image/decoders/nsJPEGDecoder.cpp
-+++ image/decoders/nsJPEGDecoder.cpp
-@@ -257,6 +257,9 @@ LexerTransition<nsJPEGDecoder::State> nsJPEGDecoder::ReadJPEGData(
-         case JCS_YCbCr:
-           // By default, we will output directly to BGRA. If we need to apply
-           // special color transforms, this may change.
-+#if MOZ_BIG_ENDIAN()
-+          mInfo.out_color_space = MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB;
-+#else
-           switch (SurfaceFormat::OS_RGBX) {
-             case SurfaceFormat::B8G8R8X8:
-               mInfo.out_color_space = JCS_EXT_BGRX;
-@@ -271,6 +274,7 @@ LexerTransition<nsJPEGDecoder::State> nsJPEGDecoder::ReadJPEGData(
-               mState = JPEG_ERROR;
-               return Transition::TerminateFailure();
-           }
-+#endif
-           break;
-         case JCS_CMYK:
-         case JCS_YCCK:
-diff --git image/decoders/nsPNGDecoder.cpp image/decoders/nsPNGDecoder.cpp
-index e3e4ef4..3cc7315 100644
---- image/decoders/nsPNGDecoder.cpp
-+++ image/decoders/nsPNGDecoder.cpp
-@@ -356,7 +356,7 @@ LexerResult nsPNGDecoder::DoDecode(SourceBufferIterator& aIterator,
-                                    IResumable* aOnResume) {
-   MOZ_ASSERT(!HasError(), "Shouldn't call DoDecode after error!");
- 
--  return mLexer.Lex(aIterator, aOnResume,
-+  LexerResult res = mLexer.Lex(aIterator, aOnResume,
-                     [=](State aState, const char* aData, size_t aLength) {
-                       switch (aState) {
-                         case State::PNG_DATA:
-@@ -366,6 +366,14 @@ LexerResult nsPNGDecoder::DoDecode(SourceBufferIterator& aIterator,
-                       }
-                       MOZ_CRASH("Unknown State");
-                     });
-+
-+#if MOZ_BIG_ENDIAN()
-+  if(res.is<TerminalState>() && res.as<TerminalState>() == TerminalState::SUCCESS) {
-+      NativeEndian::swapToLittleEndianInPlace<uint32_t>((uint32_t*)(mImageData), mImageDataLength / 4);
-+  }
-+#endif
-+
-+  return res;
- }
- 
- LexerTransition<nsPNGDecoder::State> nsPNGDecoder::ReadPNGData(
-diff --git image/decoders/nsWebPDecoder.cpp image/decoders/nsWebPDecoder.cpp
-index e58ca92..2056ebb 100644
---- image/decoders/nsWebPDecoder.cpp
-+++ image/decoders/nsWebPDecoder.cpp
-@@ -247,7 +247,12 @@ nsresult nsWebPDecoder::CreateFrame(const OrientedIntRect& aFrameRect) {
-   // WebP doesn't guarantee that the alpha generated matches the hint in the
-   // header, so we always need to claim the input is BGRA. If the output is
-   // BGRX, swizzling will mask off the alpha channel.
-+#if MOZ_BIG_ENDIAN()
-+  mBuffer.colorspace = MODE_ARGB;
-+  SurfaceFormat inFormat = mFormat;
-+#else
-   SurfaceFormat inFormat = SurfaceFormat::OS_RGBA;
-+#endif
- 
-   SurfacePipeFlags pipeFlags = SurfacePipeFlags();
-   if (mFormat == SurfaceFormat::OS_RGBA &&
diff --git a/www/waterfox/files/patch-bug1716707 b/www/waterfox/files/patch-bug1716707
deleted file mode 100644
index 33ff73450b73..000000000000
--- a/www/waterfox/files/patch-bug1716707
+++ /dev/null
@@ -1,56 +0,0 @@
-commit ce7a2f400d4f599c72e32e2635fee7ea94c0848c
-Author: Christoph Moench-Tegeder <[email protected]>
-Date:   Wed Apr 13 14:44:46 2022 +0200
-
-    big-endian color fixes, but without breaking little-endian
-    
-    as le is what most people actually use
-
-diff --git gfx/webrender_bindings/RenderCompositorSWGL.cpp gfx/webrender_bindings/RenderCompositorSWGL.cpp
-index dbf137c849ee..243a01ff9cf3 100644
---- gfx/webrender_bindings/RenderCompositorSWGL.cpp
-+++ gfx/webrender_bindings/RenderCompositorSWGL.cpp
-@@ -7,6 +7,7 @@
- #include "RenderCompositorSWGL.h"
- 
- #include "mozilla/gfx/Logging.h"
-+#include "mozilla/gfx/Swizzle.h"
- #include "mozilla/widget/CompositorWidget.h"
- 
- #ifdef MOZ_WIDGET_GTK
-@@ -235,6 +236,13 @@ void RenderCompositorSWGL::CommitMappedBuffer(bool aDirty) {
-   }
-   mDT->Flush();
- 
-+#if MOZ_BIG_ENDIAN()
-+  // One swizzle to rule them all.
-+  gfx::SwizzleData(mMappedData, mMappedStride, gfx::SurfaceFormat::B8G8R8A8,
-+                   mMappedData, mMappedStride, gfx::SurfaceFormat::A8R8G8B8,
-+                   mDT->GetSize());
-+#endif
-+
-   // Done with the DT. Hand it back to the widget and clear out any trace of it.
-   mWidget->EndRemoteDrawingInRegion(mDT, mDirtyRegion);
-   mDirtyRegion.SetEmpty();
-diff --git image/imgFrame.cpp image/imgFrame.cpp
-index e58c3dd5b2d4..c1e7e77c362b 100644
---- image/imgFrame.cpp
-+++ image/imgFrame.cpp
-@@ -372,6 +372,17 @@ nsresult imgFrame::InitWithDrawable(gfxDrawable* aDrawable,
-     return NS_ERROR_OUT_OF_MEMORY;
-   }
- 
-+#if MOZ_BIG_ENDIAN()
-+  if (aBackend == gfx::BackendType::SKIA && canUseDataSurface) {
-+    // SKIA is lying about what format it returns on big endian
-+    for (int ii=0; ii < mRawSurface->GetSize().Height()*mRawSurface->Stride() / 4; ++ii) {
-+      uint32_t *vals = (uint32_t*)(mRawSurface->GetData());
-+      uint32_t val = ((vals[ii] << 8) & 0xFF00FF00 ) | ((vals[ii] >> 8) & 0xFF00FF );
-+      vals[ii] = (val << 16) | (val >> 16);
-+    }
-+  }
-+#endif
-+
-   if (!canUseDataSurface) {
-     // We used an offscreen surface, which is an "optimized" surface from
-     // imgFrame's perspective.
diff --git a/www/waterfox/files/patch-bug1876632 b/www/waterfox/files/patch-bug1876632
deleted file mode 100644
index 3932b1deccc9..000000000000
--- a/www/waterfox/files/patch-bug1876632
+++ /dev/null
@@ -1,35 +0,0 @@
-commit 4f531ca86d24be5d4de673f6e652ed899151d20c
-Author: Jesper Schmitz Mouridsen <[email protected]>
-Date:   Wed Jul 23 22:01:31 2025 +0000
-
-    Bug 1876632 Fix aslr allocations on FreeBSD r=spidermonkey-reviewers,sfink
-    
-    Without the alignment flag the desired address
-    gets randomized by aslr in a way which causes it to not
-    be aligned. Furthermore the TryToAlignChunk almost always
-    fails. With this fix it never gets to TryToAlignChunk
-    because the flag guarantees upfront alignment.
-    
-    Differential Revision: https://phabricator.services.mozilla.com/D257824
-
-diff --git js/src/gc/Memory.cpp js/src/gc/Memory.cpp
-index e790f1784ede..13639c9a6eb4 100644
---- js/src/gc/Memory.cpp
-+++ js/src/gc/Memory.cpp
-@@ -608,7 +608,16 @@ static void* MapAlignedPagesRandom(size_t length, size_t alignment) {
-   for (size_t i = 1; i <= 1024; ++i) {
-     if (i & 0xf) {
-       uint64_t desired = alignment * GetNumberInRange(minNum, maxNum);
-+#  if defined(__FreeBSD__) && defined(__aarch64__)
-+      int flags = MAP_PRIVATE | MAP_ANON |
-+                  MAP_ALIGNED(mozilla::CeilingLog2Size(alignment));
-+      region = MozTaggedAnonymousMmap((void*)(uintptr_t)desired, length,
-+                                      int(PageAccess::ReadWrite), flags, -1, 0,
-+                                      "js-gc-heap");
-+#  else
-       region = MapMemoryAtFuzzy(reinterpret_cast<void*>(desired), length);
-+
-+#  endif
-       if (!region) {
-         continue;
-       }
diff --git a/www/waterfox/files/patch-bug2023597 b/www/waterfox/files/patch-bug2023597
deleted file mode 100644
index e4dd6184fe39..000000000000
--- a/www/waterfox/files/patch-bug2023597
+++ /dev/null
@@ -1,25 +0,0 @@
-commit c41de3cb5bd2b6fb243e10b150b705435d2db63c
-Author: Alex Hochheiden <[email protected]>
-Date:   Wed Apr 1 18:11:37 2026 +0000
-
-    Bug 2023597 - Use `wasm32-wasip1` target for clang >= 22.1 r=firefox-build-system-reviewers,sergesanspaille
-    
-    https://github.com/llvm/llvm-project/pull/165345
-    https://releases.llvm.org/22.1.0/tools/clang/docs/ReleaseNotes.html
-    
-    Differential Revision: https://phabricator.services.mozilla.com/D291023
-
-diff --git build/moz.configure/toolchain.configure build/moz.configure/toolchain.configure
-index 10d715866b1f..4b07f9d7a8de 100644
---- build/moz.configure/toolchain.configure
-+++ build/moz.configure/toolchain.configure
-@@ -695,6 +695,9 @@ def check_compiler(configure_cache, compiler, language, target, android_version)
-         # This makes clang define __ANDROID_API__ and use versioned library
-         # directories from the NDK.
-         toolchain = "%s%d" % (target.toolchain, android_version)
-+    elif target.kernel == "WASI" and info.type == "clang" and info.version >= Version("22.1"):
-+        # The wasm32-wasi target was renamed to wasm32-wasip1 in LLVM 22.1.
-+        toolchain = "wasm32-wasip1"
-     else:
-         toolchain = target.toolchain
- 
diff --git a/www/waterfox/files/patch-build_gn__processor.py b/www/waterfox/files/patch-build_gn__processor.py
index be5e10347483..602bab3dafc5 100644
--- a/www/waterfox/files/patch-build_gn__processor.py
+++ b/www/waterfox/files/patch-build_gn__processor.py
@@ -1,13 +1,13 @@
-commit 0e5bcbefae64b35a5c8df360e3980258a565fa72
-Author: Christoph Moench-Tegeder <[email protected]>
+commit fd751cfbeaf9e78c2b525c3f5226eb73aa90f0cd
+Author: Christoph Moench-Tegeder <[email protected]>
 
-    chase gn_processor.py move
+    FreeBSD workings for webrtc configure (gn_processor.py)
 
 diff --git build/gn_processor.py build/gn_processor.py
-index 2ba8b92c2751..91170efb9a5d 100644
+index 9f7f51c9f93f..ab7b60ee725f 100644
 --- build/gn_processor.py
 +++ build/gn_processor.py
-@@ -186,6 +186,7 @@ def filter_gn_config(path, gn_result, sandbox_vars, input_vars, gn_target):
+@@ -215,6 +215,7 @@ def filter_gn_config(path, gn_result, sandbox_vars, input_vars, gn_target):
      }
      oses = {
          "android": "Android",
@@ -15,12 +15,12 @@ index 2ba8b92c2751..91170efb9a5d 100644
          "linux": "Linux",
          "mac": "Darwin",
          "openbsd": "OpenBSD",
-@@ -780,17 +781,17 @@ def main():
+@@ -1035,17 +1036,17 @@ def generate_gn_configs(topsrcdir, config):
  
      vars_set = []
      for is_debug in (True, False):
 -        for target_os in ("android", "linux", "mac", "openbsd", "win"):
-+        for target_os in ("freebsd",):
++        for target_os in ("freebsd", ):
              target_cpus = ["x64"]
 -            if target_os in ("android", "linux", "mac", "win", "openbsd"):
 +            if target_os in ("android", "freebsd", "linux", "mac", "win", "openbsd"):
@@ -38,12 +38,12 @@ index 2ba8b92c2751..91170efb9a5d 100644
                  target_cpus.extend(["loong64", "ppc64", "mipsel", "mips64el"])
              for target_cpu in target_cpus:
                  vars = {
-@@ -799,7 +800,7 @@ def main():
-                     "target_cpu": target_cpu,
-                     "target_os": target_os,
-                 }
+@@ -1059,7 +1060,7 @@ def generate_gn_configs(topsrcdir, config):
+                 vars.update(config_args.get("*", {}))
+                 vars.update(config_args.get(target_os, {}))
+ 
 -                if target_os == "linux":
 +                if target_os in ("freebsd", "linux"):
-                     for use_x11 in (True, False):
-                         vars["use_x11"] = use_x11
+                     for enable_x11 in (True, False):
+                         vars["ozone_platform_x11"] = enable_x11
                          vars_set.append(vars.copy())
diff --git a/www/waterfox/files/patch-dns-resolve-https-rr b/www/waterfox/files/patch-dns-resolve-https-rr
index e00af766c62a..b0517900dd0a 100644
--- a/www/waterfox/files/patch-dns-resolve-https-rr
+++ b/www/waterfox/files/patch-dns-resolve-https-rr
@@ -1,4 +1,4 @@
-commit be323da0618d99573ef61a096fa4ae1b147378d9
+commit c6452bc491ef6b531ae4e948926bd8d863ad1fc3
 Author: Christoph Moench-Tegeder <[email protected]>
 
     enable resolving HTTPS RRs via the OS's resolver on FreeBSD
@@ -7,10 +7,10 @@ Author: Christoph Moench-Tegeder <[email protected]>
     on HTTPS RRs.
 
 diff --git netwerk/dns/moz.build netwerk/dns/moz.build
-index b2456d23a6df..3785da5d6e87 100644
+index 2369794f2407..7e3bff4b5092 100644
 --- netwerk/dns/moz.build
 +++ netwerk/dns/moz.build
-@@ -58,6 +58,8 @@ if CONFIG["MOZ_WIDGET_TOOLKIT"] == "windows":
+@@ -56,6 +56,8 @@ if CONFIG["MOZ_WIDGET_TOOLKIT"] == "windows":
  elif CONFIG["OS_TARGET"] == "Linux":
      SOURCES += ["PlatformDNSUnix.cpp"]
      OS_LIBS += ["resolv"]
@@ -20,10 +20,10 @@ index b2456d23a6df..3785da5d6e87 100644
      SOURCES += ["PlatformDNSMac.cpp"]
  elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "android":
 diff --git netwerk/dns/nsHostResolver.cpp netwerk/dns/nsHostResolver.cpp
-index b7e3763ffeb5..a36edf32dc76 100644
+index 2ef4006a3b17..29c4c7cf5730 100644
 --- netwerk/dns/nsHostResolver.cpp
 +++ netwerk/dns/nsHostResolver.cpp
-@@ -213,7 +213,7 @@ nsresult nsHostResolver::Init() MOZ_NO_THREAD_SAFETY_ANALYSIS {
+@@ -175,7 +175,7 @@ nsresult nsHostResolver::Init() MOZ_NO_THREAD_SAFETY_ANALYSIS {
  #elif defined(MOZ_WIDGET_ANDROID)
    // android_res_nquery only got added in API level 29
    sNativeHTTPSSupported = jni::GetAPIVersion() >= 29;
diff --git a/www/waterfox/files/patch-dom_media_webrtc_libwebrtc__overrides_moz.build b/www/waterfox/files/patch-dom_media_webrtc_libwebrtc__overrides_moz.build
new file mode 100644
index 000000000000..ac01cff0e211
--- /dev/null
+++ b/www/waterfox/files/patch-dom_media_webrtc_libwebrtc__overrides_moz.build
@@ -0,0 +1,25 @@
+commit 18ea032974539d7f4db64d21a87fd174333b9e2c
+Author: Christoph Moench-Tegeder <[email protected]>
+
+    build XErrorTrap for FreeBSD, too
+
+diff --git dom/media/webrtc/libwebrtc_overrides/moz.build dom/media/webrtc/libwebrtc_overrides/moz.build
+index ed9c450e5649..1ac213e48b28 100644
+--- dom/media/webrtc/libwebrtc_overrides/moz.build
++++ dom/media/webrtc/libwebrtc_overrides/moz.build
+@@ -49,13 +49,13 @@
+     "call/call_basic_stats.cc",
+ ]
+ 
+-if CONFIG["OS_TARGET"] == "OpenBSD":
++if CONFIG["OS_TARGET"] in ("FreeBSD", "OpenBSD"):
+     CXXFLAGS += CONFIG["MOZ_X11_CFLAGS"]
+     UNIFIED_SOURCES += [
+         "modules/desktop_capture/linux/x11/x_error_trap.cc",
+     ]
+ 
+-if CONFIG["TARGET_CPU"] in ("loongarch64", "ppc64"):
++if CONFIG["TARGET_CPU"] in ("loongarch64"):
+     UNIFIED_SOURCES += [
+         "modules/desktop_capture/linux/x11/x_error_trap.cc",
+     ]
diff --git a/www/waterfox/files/patch-hal_moz.build b/www/waterfox/files/patch-hal_moz.build
new file mode 100644
index 000000000000..1c3eb3fa2853
--- /dev/null
+++ b/www/waterfox/files/patch-hal_moz.build
@@ -0,0 +1,18 @@
+commit b4a1f15edc3ebc2b68d2aae22bb59e2ce779cce7
+Author: Christoph Moench-Tegeder <[email protected]>
+
+    try to enable gamepad interface on FreeBSD
+
+diff --git hal/moz.build hal/moz.build
+index bb486ec1e411..60e44128840f 100644
+--- hal/moz.build
++++ hal/moz.build
+@@ -19,7 +19,7 @@ EXPORTS.mozilla += [
+     "HalWakeLockInformation.h",
+ ]
+ 
+-if CONFIG["OS_TARGET"] == "Linux":
++if CONFIG["OS_TARGET"] == "Linux" or CONFIG["OS_TARGET"] == "FreeBSD":
+     EXPORTS.mozilla += [
+         "linux/UdevLib.h",
+     ]
diff --git a/www/waterfox/files/patch-i386-protobuf-alignment b/www/waterfox/files/patch-i386-protobuf-alignment
deleted file mode 100644
index 0d58c8644e79..000000000000
--- a/www/waterfox/files/patch-i386-protobuf-alignment
+++ /dev/null
@@ -1,15 +0,0 @@
-# On FreeBSD/i386's LLVM, actual alignment for atomic types requires
-# stricter alignment rules, mostly on 8 byte boundaries instead of 4 byte
-# as indicated by max_align_t.
-
---- ./toolkit/components/protobuf/src/google/protobuf/arena_impl.h.orig	2022-08-20 20:07:57.096818000 +0200
-+++ ./toolkit/components/protobuf/src/google/protobuf/arena_impl.h	2022-08-20 21:40:47.821690000 +0200
-@@ -640,7 +640,7 @@
- #ifdef _MSC_VER
- #pragma warning(disable : 4324)
- #endif
--  struct alignas(kCacheAlignment) CacheAlignedLifecycleIdGenerator {
-+  struct alignas(alignof(std::atomic<LifecycleIdAtomic>)) CacheAlignedLifecycleIdGenerator {
-     std::atomic<LifecycleIdAtomic> id;
-   };
-   static CacheAlignedLifecycleIdGenerator lifecycle_id_generator_;
diff --git a/www/waterfox/files/patch-ipc_glue_ForkServer.cpp b/www/waterfox/files/patch-ipc_glue_ForkServer.cpp
new file mode 100644
index 000000000000..6632ff89fa51
--- /dev/null
+++ b/www/waterfox/files/patch-ipc_glue_ForkServer.cpp
@@ -0,0 +1,35 @@
+commit cf2fba7d3f8414cfc993b6a2d9ab01b43f6669d5
+Author: Christoph Moench-Tegeder <[email protected]>
+
+    we need signal.h and BinaryPath.h
+
+diff --git ipc/glue/ForkServer.cpp ipc/glue/ForkServer.cpp
+index d18fab02d686..837d0ac62f40 100644
+--- ipc/glue/ForkServer.cpp
++++ ipc/glue/ForkServer.cpp
+@@ -22,12 +22,15 @@
+ #include <string.h>
+ #include <sys/wait.h>
+ #include <unistd.h>
++#if defined(XP_FREEBSD)
++#include <signal.h>
++#endif
+ 
+ #if defined(XP_LINUX) && defined(MOZ_SANDBOX)
+ #  include "mozilla/SandboxLaunch.h"
+ #endif
+ 
+-#if defined(XP_OPENBSD)
++#if defined(XP_OPENBSD) || defined(XP_FREEBSD)
+ #  include "BinaryPath.h"
+ #  include <err.h>
+ #endif
+@@ -76,7 +79,7 @@ ForkServer::ForkServer(int* aArgc, char*** aArgv) : mArgc(aArgc), mArgv(aArgv) {
+  */
+ static void ForkServerPreload(int& aArgc, char** aArgv) {
+   Omnijar::ChildProcessInit(aArgc, aArgv);
+-#if defined(XP_OPENBSD)
++#if defined(XP_OPENBSD) || defined(XP_FREEBSD)
+   char binaryPath[MAXPATHLEN];
+   nsresult rv = mozilla::BinaryPath::Get(binaryPath);
+   if (NS_FAILED(rv)) {
diff --git a/www/waterfox/files/patch-ipc_glue_GeckoChildProcessHost.cpp b/www/waterfox/files/patch-ipc_glue_GeckoChildProcessHost.cpp
deleted file mode 100644
index 42f5f25add33..000000000000
--- a/www/waterfox/files/patch-ipc_glue_GeckoChildProcessHost.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git ipc/glue/GeckoChildProcessHost.cpp ipc/glue/GeckoChildProcessHost.cpp
-index 9bb8314bd98c..2bc0382a9385 100644
---- ipc/glue/GeckoChildProcessHost.cpp
-+++ ipc/glue/GeckoChildProcessHost.cpp
-@@ -1121,7 +1121,7 @@ Result<Ok, LaunchError> BaseProcessLauncher::DoSetup() {
- #if defined(MOZ_WIDGET_COCOA) || defined(XP_WIN)
-     geckoargs::sCrashReporter.Put(CrashReporter::GetChildNotificationPipe(),
-                                   mChildArgs);
--#elif defined(XP_UNIX) && !defined(XP_IOS)
-+#elif defined(XP_UNIX) && !defined(XP_IOS) && !defined(XP_FREEBSD)
-     UniqueFileHandle childCrashFd = CrashReporter::GetChildNotificationPipe();
-     if (!childCrashFd) {
-       return Err(LaunchError("DuplicateFileHandle failed"));
diff --git a/www/waterfox/files/patch-languageid-de-constexpr-ify b/www/waterfox/files/patch-languageid-de-constexpr-ify
new file mode 100644
index 000000000000..1c2a522f5bf5
--- /dev/null
+++ b/www/waterfox/files/patch-languageid-de-constexpr-ify
@@ -0,0 +1,138 @@
+commit 87f49da7a84ed9bbce4b8ef263d85b9bd5c42eac
+Author: Christoph Moench-Tegeder <[email protected]>
+
+    Partially de-constexpr'ify LanguageId code
+    
+    This is to deal with our (FreeBSD) libc++, where in some cases
+    std:pair<> is not a "literal type" (suitable for constexpr), even
+    if the same std:pair<> is just fine on all other relevant systems.
+    
+    This removes just enough constexpr annotations to make the code
+    compile.
+    
+    Sample compiler error message:
+    
+    /wrkdirs/usr/ports/www/firefox/work/firefox-151.0/js/src/util/LanguageId.h:234:66: error: constexpr function's return type 'mozilla::Maybe<std::pair<LanguageId>
+      234 |   static constexpr mozilla::Maybe<std::pair<LanguageId, size_t>> from(
+          |                                                                  ^
+    /wrkdirs/usr/ports/www/firefox/work/.build/dist/include/mozilla/Maybe.h:367:7: note: 'Maybe<std::pair<js::LanguageId, unsigned long>>' is not literal because i>
+      367 |     : private detail::MaybeStorage<T>,
+          |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+diff --git js/src/builtin/intl/LocaleNegotiation.cpp js/src/builtin/intl/LocaleNegotiation.cpp
+index 0aff7274eda1..5c25e53b8ea1 100644
+--- js/src/builtin/intl/LocaleNegotiation.cpp
++++ js/src/builtin/intl/LocaleNegotiation.cpp
+@@ -1124,13 +1124,13 @@ struct OldStyleLanguageTagMapping {
+   LanguageId oldStyle;
+   LanguageId modernStyle;
+ 
+-  consteval OldStyleLanguageTagMapping(std::string_view oldStyle,
++  OldStyleLanguageTagMapping(std::string_view oldStyle,
+                                        std::string_view modernStyle)
+       : oldStyle(LanguageId::fromValidBcp49(oldStyle)),
+         modernStyle(LanguageId::fromValidBcp49(modernStyle)) {}
+ };
+ 
+-static constexpr OldStyleLanguageTagMapping oldStyleLanguageTagMappings[] = {
++static OldStyleLanguageTagMapping oldStyleLanguageTagMappings[] = {
+     {"pa-PK", "pa-Arab-PK"}, {"zh-CN", "zh-Hans-CN"}, {"zh-HK", "zh-Hant-HK"},
+     {"zh-SG", "zh-Hans-SG"}, {"zh-TW", "zh-Hant-TW"},
+ };
+diff --git js/src/builtin/intl/SharedIntlData.cpp js/src/builtin/intl/SharedIntlData.cpp
+index 581c9d1e6ebd..9dd3a50acb1c 100644
+--- js/src/builtin/intl/SharedIntlData.cpp
++++ js/src/builtin/intl/SharedIntlData.cpp
+@@ -431,11 +431,11 @@ bool js::intl::SharedIntlData::getAvailableLocales(
+   // directly support it (but does support it through fallback, e.g. supporting
+   // "en-GB" indirectly using "en" support).
+   {
+-    static constexpr auto lastDitch = LastDitchLocale();
+-    static_assert(std::string_view{lastDitch.toString()} == "en-GB");
++    static auto lastDitch = LastDitchLocale();
++    // static_assert(std::string_view{lastDitch.toString()} == "en-GB");
+ 
+ #ifdef DEBUG
+-    static constexpr auto lastDitchParent = lastDitch.parentLocale();
++    static auto lastDitchParent = lastDitch.parentLocale();
+     static_assert(std::string_view{lastDitchParent.toString()} == "en");
+ 
+     MOZ_ASSERT(locales.has(lastDitchParent),
+diff --git js/src/util/LanguageId.h js/src/util/LanguageId.h
+index 7c193c3e2e07..bf391ef39717 100644
+--- js/src/util/LanguageId.h
++++ js/src/util/LanguageId.h
+@@ -231,7 +231,7 @@ class LanguageId final {
+ 
+  private:
+   template <char... separators, typename CharT>
+-  static constexpr mozilla::Maybe<std::pair<LanguageId, size_t>> from(
++  static /* constexpr */ mozilla::Maybe<std::pair<LanguageId, size_t>> from(
+       std::basic_string_view<CharT> localeId) {
+     // Return true iff |sv| starts with a subtag of length |len|.
+     auto hasSubtag = [](std::basic_string_view<CharT> sv, size_t len) {
+@@ -313,7 +313,7 @@ class LanguageId final {
+    *
+    * Subtags in ICU and Unicode locale identifiers are separated by "-" or "_".
+    */
+-  static constexpr auto fromId(std::string_view localeId) {
++  static auto fromId(std::string_view localeId) {
+     return from<'-', '_'>(localeId);
+   }
+ 
+@@ -327,7 +327,7 @@ class LanguageId final {
+    *
+    * Subtags in ICU and Unicode locale identifiers are separated by "-" or "_".
+    */
+-  static constexpr auto fromId(mozilla::Span<const char> localeId) {
++  static auto fromId(mozilla::Span<const char> localeId) {
+     return fromId(std::string_view{localeId.data(), localeId.size()});
+   }
+ 
+@@ -341,7 +341,7 @@ class LanguageId final {
+    *
+    * Subtags in BCP 47 locale identifiers are separated by "-".
+    */
+-  static constexpr auto fromBcp49(std::string_view localeId) {
++  static auto fromBcp49(std::string_view localeId) {
+     return from<'-'>(localeId);
+   }
+ 
+@@ -355,7 +355,7 @@ class LanguageId final {
+    *
+    * Subtags in BCP 47 locale identifiers are separated by "-".
+    */
+-  static constexpr auto fromBcp49(std::u16string_view localeId) {
++  static auto fromBcp49(std::u16string_view localeId) {
+     return from<u'-'>(localeId);
+   }
+ 
+@@ -370,7 +370,7 @@ class LanguageId final {
+    * Subtags in BCP 47 locale identifiers are separated by "-".
+    */
+   template <typename CharT>
+-  static constexpr auto fromBcp49(mozilla::Span<const CharT> localeId) {
++  static auto fromBcp49(mozilla::Span<const CharT> localeId) {
+     return fromBcp49(std::basic_string_view{localeId.data(), localeId.size()});
+   }
+ 
+@@ -381,7 +381,7 @@ class LanguageId final {
+    *
+    * Subtags in BCP 47 locale identifiers are separated by "-".
+    */
+-  static consteval auto fromValidBcp49(std::string_view localeId) {
++  static auto fromValidBcp49(std::string_view localeId) {
+     return fromBcp49(localeId)->first;
+   }
+ 
+@@ -408,8 +408,8 @@ class LanguageId final {
+   /**
+    * Return the language identifier for the undetermined locale "und".
+    */
+-  static constexpr auto und() {
+-    constexpr LanguageId locale = fromValidBcp49("und");
++  static auto und() {
++    LanguageId locale = fromValidBcp49("und");
+     return locale;
+   }
+ 
diff --git a/www/waterfox/files/patch-libwebrtc-generated b/www/waterfox/files/patch-libwebrtc-generated
index eb715bc55fbe..e4db36d2ca60 100644
--- a/www/waterfox/files/patch-libwebrtc-generated
+++ b/www/waterfox/files/patch-libwebrtc-generated
@@ -1,20 +1,22 @@
-commit f65492631f8fa8714d72d09ba3fa5edf3b08bac3
+commit aff9c9149a23dfc8998b7259d90d58ce61387b53
 Author: Christoph Moench-Tegeder <[email protected]>
 
-    regenerate FreeBSD libwebrtc patch for gecko 140
+    regenerate FreeBSD libwebrtc patch for gecko 153
 
 diff --git third_party/libwebrtc/api/adaptation/resource_adaptation_api_gn/moz.build third_party/libwebrtc/api/adaptation/resource_adaptation_api_gn/moz.build
-index a29aef4b45e5..c193c4232adf 100644
+index 2060d5597a7c..643ec6ab666e 100644
 --- third_party/libwebrtc/api/adaptation/resource_adaptation_api_gn/moz.build
 +++ third_party/libwebrtc/api/adaptation/resource_adaptation_api_gn/moz.build
-@@ -13,11 +13,20 @@ DEFINES["ABSL_ALLOCATOR_NOTHROW"] = "1"
+@@ -13,13 +13,22 @@ DEFINES["ABSL_ALLOCATOR_NOTHROW"] = "1"
  DEFINES["PROTOBUF_ENABLE_DEBUG_LOGGING_MAY_LEAK_PII"] = "0"
  DEFINES["RTC_DAV1D_IN_INTERNAL_DECODER_FACTORY"] = True
  DEFINES["RTC_ENABLE_VP9"] = True
 +DEFINES["USE_GLIB"] = "1"
 +DEFINES["USE_OZONE"] = "1"
 +DEFINES["WEBRTC_BSD"] = True
+ DEFINES["WEBRTC_DEPRECATE_PLAN_B"] = True
  DEFINES["WEBRTC_ENABLE_PROTOBUF"] = "0"
+ DEFINES["WEBRTC_ENCODER_PSNR_STATS"] = True
  DEFINES["WEBRTC_LIBRARY_IMPL"] = True
  DEFINES["WEBRTC_MOZILLA_BUILD"] = True
  DEFINES["WEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS"] = "0"
@@ -28,7 +30,7 @@ index a29aef4b45e5..c193c4232adf 100644
  
  FINAL_LIBRARY = "xul"
  
-@@ -44,179 +53,32 @@ if not CONFIG["MOZ_DEBUG"]:
+@@ -47,86 +56,7 @@ if not CONFIG["MOZ_DEBUG"]:
  if CONFIG["MOZ_DEBUG"] == "1":
  
      DEFINES["DYNAMIC_ANNOTATIONS_ENABLED"] = "1"
@@ -36,13 +38,14 @@ index a29aef4b45e5..c193c4232adf 100644
 -if CONFIG["OS_TARGET"] == "Android":
 -
 -    DEFINES["ANDROID"] = True
--    DEFINES["ANDROID_NDK_VERSION_ROLL"] = "r22_1"
+-    DEFINES["ANDROID_NDK_VERSION_ROLL"] = "r27_1"
 -    DEFINES["HAVE_SYS_UIO_H"] = True
 -    DEFINES["WEBRTC_ANDROID"] = True
 -    DEFINES["WEBRTC_ANDROID_OPENSLES"] = True
 -    DEFINES["WEBRTC_LINUX"] = True
 -    DEFINES["WEBRTC_POSIX"] = True
 -    DEFINES["_GNU_SOURCE"] = True
+-    DEFINES["__ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__"] = True
 -    DEFINES["__STDC_CONSTANT_MACROS"] = True
 -    DEFINES["__STDC_FORMAT_MACROS"] = True
 -
@@ -54,8 +57,6 @@ index a29aef4b45e5..c193c4232adf 100644
 -
 -    DEFINES["WEBRTC_MAC"] = True
 -    DEFINES["WEBRTC_POSIX"] = True
--    DEFINES["_LIBCPP_HAS_NO_ALIGNED_ALLOCATION"] = True
--    DEFINES["__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES"] = "0"
 -    DEFINES["__STDC_CONSTANT_MACROS"] = True
 -    DEFINES["__STDC_FORMAT_MACROS"] = True
 -
@@ -63,7 +64,6 @@ index a29aef4b45e5..c193c4232adf 100644
 -
 -    DEFINES["USE_AURA"] = "1"
 -    DEFINES["USE_GLIB"] = "1"
--    DEFINES["USE_NSS_CERTS"] = "1"
 -    DEFINES["USE_OZONE"] = "1"
 -    DEFINES["USE_UDEV"] = True
 -    DEFINES["WEBRTC_LINUX"] = True
@@ -78,7 +78,6 @@ index a29aef4b45e5..c193c4232adf 100644
 -
 -    DEFINES["USE_GLIB"] = "1"
 -    DEFINES["USE_OZONE"] = "1"
--    DEFINES["USE_X11"] = "1"
 -    DEFINES["WEBRTC_BSD"] = True
 -    DEFINES["WEBRTC_POSIX"] = True
 -    DEFINES["_FILE_OFFSET_BITS"] = "64"
@@ -102,6 +101,7 @@ index a29aef4b45e5..c193c4232adf 100644
 -    DEFINES["WINAPI_FAMILY"] = "WINAPI_FAMILY_DESKTOP_APP"
 -    DEFINES["WINVER"] = "0x0A00"
 -    DEFINES["_ATL_NO_OPENGL"] = True
+-    DEFINES["_CRT_NONSTDC_NO_WARNINGS"] = True
 -    DEFINES["_CRT_RAND_S"] = True
 -    DEFINES["_CRT_SECURE_NO_DEPRECATE"] = True
 -    DEFINES["_ENABLE_EXTENDED_ALIGNED_STORAGE"] = True
@@ -112,13 +112,15 @@ index a29aef4b45e5..c193c4232adf 100644
 -    DEFINES["_UNICODE"] = True
 -    DEFINES["_WIN32_WINNT"] = "0x0A00"
 -    DEFINES["_WINDOWS"] = True
+-    DEFINES["_WINSOCK_DEPRECATED_NO_WARNINGS"] = True
 -    DEFINES["__STD_C"] = True
 +    DEFINES["_DEBUG"] = True
  
  if CONFIG["TARGET_CPU"] == "aarch64":
  
-     DEFINES["WEBRTC_ARCH_ARM64"] = True
+@@ -134,82 +64,21 @@ if CONFIG["TARGET_CPU"] == "aarch64":
      DEFINES["WEBRTC_HAS_NEON"] = True
+     DEFINES["__ARM_NEON__"] = "1"
  
 -if CONFIG["TARGET_CPU"] == "arm":
 -
@@ -172,16 +174,6 @@ index a29aef4b45e5..c193c4232adf 100644
 -
 -    DEFINES["_HAS_ITERATOR_DEBUGGING"] = "0"
 -
--if CONFIG["MOZ_X11"] == "1" and CONFIG["OS_TARGET"] == "Linux":
--
--    DEFINES["USE_X11"] = "1"
--
--if CONFIG["OS_TARGET"] == "Android" and CONFIG["TARGET_CPU"] == "arm":
--
--    OS_LIBS += [
--        "unwind"
--    ]
--
 -if CONFIG["OS_TARGET"] == "Android" and CONFIG["TARGET_CPU"] == "x86":
 -
      CXXFLAGS += [
@@ -197,35 +189,35 @@ index a29aef4b45e5..c193c4232adf 100644
 -    DEFINES["_GNU_SOURCE"] = True
 -
 -if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "x86":
-+    DEFINES["WEBRTC_ENABLE_AVX2"] = True
- 
+-
 -    CXXFLAGS += [
 -        "-msse2"
 -    ]
-+if CONFIG["TARGET_CPU"] == "x86_64":
- 
+-
 -    DEFINES["_GNU_SOURCE"] = True
 +    DEFINES["WEBRTC_ENABLE_AVX2"] = True
  
 -if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "x86_64":
-+if CONFIG["MOZ_X11"] == "1" and CONFIG["OS_TARGET"] == "FreeBSD":
++if CONFIG["TARGET_CPU"] == "x86_64":
  
 -    DEFINES["_GNU_SOURCE"] = True
-+    DEFINES["USE_X11"] = "1"
++    DEFINES["WEBRTC_ENABLE_AVX2"] = True
  
  Library("resource_adaptation_api_gn")
-diff --git third_party/libwebrtc/api/array_view_gn/moz.build third_party/libwebrtc/api/array_view_gn/moz.build
-index 642158f0b8be..994364e58ce4 100644
---- third_party/libwebrtc/api/array_view_gn/moz.build
-+++ third_party/libwebrtc/api/array_view_gn/moz.build
-@@ -13,11 +13,20 @@ DEFINES["ABSL_ALLOCATOR_NOTHROW"] = "1"
+diff --git third_party/libwebrtc/api/async_dns_resolver_gn/moz.build third_party/libwebrtc/api/async_dns_resolver_gn/moz.build
+index c293b9edb72e..d51f92b1c6c2 100644
+--- third_party/libwebrtc/api/async_dns_resolver_gn/moz.build
++++ third_party/libwebrtc/api/async_dns_resolver_gn/moz.build
+@@ -13,13 +13,22 @@ DEFINES["ABSL_ALLOCATOR_NOTHROW"] = "1"
  DEFINES["PROTOBUF_ENABLE_DEBUG_LOGGING_MAY_LEAK_PII"] = "0"
  DEFINES["RTC_DAV1D_IN_INTERNAL_DECODER_FACTORY"] = True
  DEFINES["RTC_ENABLE_VP9"] = True
 +DEFINES["USE_GLIB"] = "1"
 +DEFINES["USE_OZONE"] = "1"
 +DEFINES["WEBRTC_BSD"] = True
+ DEFINES["WEBRTC_DEPRECATE_PLAN_B"] = True
  DEFINES["WEBRTC_ENABLE_PROTOBUF"] = "0"
+ DEFINES["WEBRTC_ENCODER_PSNR_STATS"] = True
  DEFINES["WEBRTC_LIBRARY_IMPL"] = True
  DEFINES["WEBRTC_MOZILLA_BUILD"] = True
  DEFINES["WEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS"] = "0"
@@ -239,7 +231,7 @@ index 642158f0b8be..994364e58ce4 100644
  
  FINAL_LIBRARY = "xul"
  
*** 90747 LINES SKIPPED ***