Firefox 112.0.2 firefox112
authorWolfgang Rosenauer <wr@rosenauer.org>
Tue, 09 May 2023 23:09:18 +0200
branchfirefox112
changeset 1188 a2caa2a2494f
parent 1187 17bc5a064ab4
child 1189 ba0c97b018a6
Firefox 112.0.2
MozillaFirefox/MozillaFirefox.changes
MozillaFirefox/MozillaFirefox.spec
MozillaFirefox/mozilla-bmo1807652.patch
MozillaFirefox/tar_stamps
mozilla-bmo1568145.patch
mozilla-bmo1807652.patch
mozilla-kde.patch
mozilla-libavcodec58_91.patch
mozilla-silence-no-return-type.patch
series
--- a/MozillaFirefox/MozillaFirefox.changes	Mon Apr 10 23:42:16 2023 +0200
+++ b/MozillaFirefox/MozillaFirefox.changes	Tue May 09 23:09:18 2023 +0200
@@ -1,4 +1,99 @@
 -------------------------------------------------------------------
+Sun May  7 19:47:00 UTC 2023 - Aaron Puchert <aaronpuchert@alice-dsl.net>
+
+- Fix i586 build by reducing debug info to -g1. (boo#1210168)
+
+-------------------------------------------------------------------
+Tue Apr 25 16:01:07 UTC 2023 - Andreas Stieger <andreas.stieger@gmx.de>
+
+- Mozilla Firefox 112.0.2
+  * Fix a high memory usage issue with animated images in minimized
+    (or completely covered) windows, especially when using animated
+    themes (bmo#1828587)
+  * Fix an issue where Linux users with bitmap fonts installed may
+    have had entire sections of text invisible to them on some
+    sites (bmo#1827950)
+
+-------------------------------------------------------------------
+Fri Apr 21 09:48:25 UTC 2023 - Manfred Hollstein <manfred.h@gmx.net>
+
+- Include Leap 15.5 in check for which python version is required.
+
+-------------------------------------------------------------------
+Thu Apr 20 13:24:13 UTC 2023 - Andreas Stieger <Andreas.Stieger@gmx.de>
+
+- Mozilla Firefox 112.0.1
+  * Fix a bug where cookie dates appear to be set in the far
+    future after updating Firefox. This may have caused cookies to
+    be unintentionally purged (bmo#1827669)
+
+-------------------------------------------------------------------
+Mon Apr 10 21:58:19 UTC 2023 - Wolfgang Rosenauer <wr@rosenauer.org>
+
+- Mozilla Firefox 112.0
+  * https://www.mozilla.org/en-US/firefox/112.0/releasenotes/
+  MFSA 2023-13 (bsc#1210212)
+  * CVE-2023-29531 (bmo#1794292)
+    Out-of-bound memory access in WebGL on macOS
+  * CVE-2023-29532 (bmo#1806394)
+    Mozilla Maintenance Service Write-lock bypass
+  * CVE-2023-29533 (bmo#1798219, bmo#1814597)
+    Fullscreen notification obscured
+  * CVE-2023-29534 (bmo#1816007, bmo#1816059, bmo#1821155, bmo#1821576,
+    bmo#1821906, bmo#1822298, bmo#1822305)
+    Fullscreen notification could have been obscured on Firefox
+    for Android
+  * MFSA-TMP-2023-0001 (bmo#1819244)
+    Double-free in libwebp
+  * CVE-2023-29535 (bmo#1820543)
+    Potential Memory Corruption following Garbage Collector compaction
+  * CVE-2023-29536 (bmo#1821959)
+    Invalid free from JavaScript code
+  * CVE-2023-29537 (bmo#1823365, bmo#1824200, bmo#1825569)
+    Data Races in font initialization code
+  * CVE-2023-29538 (bmo#1685403)
+    Directory information could have been leaked to WebExtensions
+  * CVE-2023-29539 (bmo#1784348)
+    Content-Disposition filename truncation leads to Reflected
+    File Download
+  * CVE-2023-29540 (bmo#1790542)
+    Iframe sandbox bypass using redirects and sourceMappingUrls
+  * CVE-2023-29541 (bmo#1810191)
+    Files with malicious extensions could have been downloaded
+    unsafely on Linux
+  * CVE-2023-29542 (bmo#1810793, bmo#1815062)
+    Bypass of file download extension restrictions
+  * CVE-2023-29543 (bmo#1816158)
+    Use-after-free in debugging APIs
+  * CVE-2023-29544 (bmo#1818781)
+    Memory Corruption in garbage collector
+  * CVE-2023-29545 (bmo#1823077)
+    Windows Save As dialog resolved environment variables
+  * CVE-2023-29546 (bmo#1780842)
+    Screen recording in Private Browsing included address bar on
+    Android
+  * CVE-2023-29547 (bmo#1783536)
+    Secure document cookie could be spoofed with insecure cookie
+  * CVE-2023-29548 (bmo#1822754)
+    Incorrect optimization result on ARM64
+  * CVE-2023-29549 (bmo#1823042)
+    Javascript's bind function may have failed
+  * CVE-2023-29550 (bmo#1720594, bmo#1751945, bmo#1812498, bmo#1814217,
+    bmo#1818357, bmo#1818762, bmo#1819493, bmo#1820389, bmo#1820602,
+    bmo#1821448, bmo#1822413, bmo#1824828)
+    Memory safety bugs fixed in Firefox 112 and Firefox ESR 102.10
+  * CVE-2023-29551 (bmo#1763625, bmo#1814314, bmo#1815798, bmo#1815890,
+    bmo#1819239, bmo#1819465, bmo#1819486, bmo#1819492, bmo#1819957,
+    bmo#1820514, bmo#1820776, bmo#1821838, bmo#1822175, bmo#1823547)
+    Memory safety bugs fixed in Firefox 112
+- requires
+  * NSS 3.89
+  * Python >= 3.7 (for build)
+- removed obsolete mozilla-bmo1807652.patch
+- Fix Icons displayed incorrectly on GNOME/wayland via WMCLASS
+  in desktop file
+
+-------------------------------------------------------------------
 Mon Mar 27 15:17:17 UTC 2023 - Wolfgang Rosenauer <wr@rosenauer.org>
 
 - Mozilla Firefox 111.0.1 (boo#1209688)
--- a/MozillaFirefox/MozillaFirefox.spec	Mon Apr 10 23:42:16 2023 +0200
+++ b/MozillaFirefox/MozillaFirefox.spec	Tue May 09 23:09:18 2023 +0200
@@ -28,9 +28,9 @@
 # orig_suffix b3
 # major 69
 # mainver %%major.99
-%define major          111
-%define mainver        %major.0.1
-%define orig_version   111.0.1
+%define major          112
+%define mainver        %major.0.2
+%define orig_version   112.0.2
 %define orig_suffix    %{nil}
 %define update_channel release
 %define branding       1
@@ -120,17 +120,23 @@
 BuildRequires:  libproxy-devel
 BuildRequires:  makeinfo
 BuildRequires:  mozilla-nspr-devel >= 4.35
-BuildRequires:  mozilla-nss-devel >= 3.88.1
+BuildRequires:  mozilla-nss-devel >= 3.89
 BuildRequires:  nasm >= 2.14
 BuildRequires:  nodejs >= 10.22.1
 %if 0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000
 BuildRequires:  python-libxml2
 BuildRequires:  python36
 %else
-BuildRequires:  python3 >= 3.5
+%if 0%{?sle_version} >= 150000 && 0%{?sle_version} <= 150500
+BuildRequires:  python39
+BuildRequires:  python39-curses
+BuildRequires:  python39-devel
+%else
+BuildRequires:  python3 >= 3.7
 BuildRequires:  python3-curses
 BuildRequires:  python3-devel
 %endif
+%endif
 BuildRequires:  rust-cbindgen >= 0.24.3
 BuildRequires:  unzip
 BuildRequires:  update-desktop-files
@@ -228,7 +234,6 @@
 Patch25:        one_swizzle_to_rule_them_all.patch
 Patch26:        svg-rendering.patch
 Patch27:        mozilla-buildfixes.patch
-Patch28:        mozilla-bmo1807652.patch
 # Firefox/browser
 Patch101:       firefox-kde.patch
 Patch102:       firefox-branded-icons.patch
@@ -247,7 +252,7 @@
 %if 0%{?devpkg} == 0
 Obsoletes:      %{name}-devel < %{version}
 %endif
-ExcludeArch:    armv6l armv6hl ppc ppc64 ppc64le %ix86
+ExcludeArch:    armv6l armv6hl ppc ppc64 ppc64le
 
 %description
 Mozilla Firefox is a standalone web browser, designed for standards
@@ -396,6 +401,10 @@
 export CFLAGS="\$CFLAGS -mminimal-toc"
 %endif
 %endif
+%ifarch %ix86
+# Not enough memory on 32-bit systems, reduce debug info.
+export CFLAGS="\$CFLAGS -g1"
+%endif
 export CXXFLAGS="\$CFLAGS"
 export MOZCONFIG=$RPM_BUILD_DIR/mozconfig
 EOF
@@ -618,7 +627,8 @@
 mkdir -p %{buildroot}%{_datadir}/applications
 sed "s:%%NAME:%{appname}:g
 s:%%EXEC:%{progname}:g
-s:%%ICON:%{progname}:g" \
+s:%%ICON:%{progname}:g
+s:%%WMCLASS:%{progname}%{major}:g" \
   %{SOURCE1} > %{buildroot}%{_datadir}/applications/%{desktop_file_name}.desktop
 %suse_update_desktop_file %{desktop_file_name} Network WebBrowser GTK
 # additional mime-types
--- a/MozillaFirefox/mozilla-bmo1807652.patch	Mon Apr 10 23:42:16 2023 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-../mozilla-bmo1807652.patch
\ No newline at end of file
--- a/MozillaFirefox/tar_stamps	Mon Apr 10 23:42:16 2023 +0200
+++ b/MozillaFirefox/tar_stamps	Tue May 09 23:09:18 2023 +0200
@@ -1,10 +1,10 @@
 PRODUCT="firefox"
 CHANNEL="release"
-VERSION="111.0.1"
+VERSION="112.0.2"
 VERSION_SUFFIX=""
-PREV_VERSION="111.0"
+PREV_VERSION="112.0.1"
 PREV_VERSION_SUFFIX=""
 #SKIP_LOCALES="" # Uncomment to skip l10n and compare-locales-generation
 RELEASE_REPO="https://hg.mozilla.org/releases/mozilla-release"
-RELEASE_TAG="6e9b4327e238def619d5640de74b611fe51834ba"
-RELEASE_TIMESTAMP="20230321111920"
+RELEASE_TAG="50d8cc21a93a1343250b71090f4a9c9fee37091c"
+RELEASE_TIMESTAMP="20230424110519"
--- a/mozilla-bmo1568145.patch	Mon Apr 10 23:42:16 2023 +0200
+++ b/mozilla-bmo1568145.patch	Tue May 09 23:09:18 2023 +0200
@@ -10,14 +10,14 @@
 diff --git a/python/mozbuild/mozbuild/action/langpack_manifest.py b/python/mozbuild/mozbuild/action/langpack_manifest.py
 --- a/python/mozbuild/mozbuild/action/langpack_manifest.py
 +++ b/python/mozbuild/mozbuild/action/langpack_manifest.py
-@@ -13,16 +13,17 @@
- 
+@@ -14,16 +14,17 @@
  import argparse
  import datetime
  import io
  import json
  import logging
  import os
+ import re
  import sys
 +import time
  
@@ -28,7 +28,7 @@
  from fluent.syntax.parser import FluentParser
  from mozpack.chrome.manifest import Manifest, ManifestLocale, parse_manifest
  
-@@ -101,17 +102,17 @@ def get_dt_from_hg(path):
+@@ -102,17 +103,17 @@ def get_dt_from_hg(path):
  #    ts == "20170914215617"
  ###
  def get_timestamp_for_locale(path):
--- a/mozilla-bmo1807652.patch	Mon Apr 10 23:42:16 2023 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,185 +0,0 @@
-diff --git a/tools/profiler/core/platform.cpp b/tools/profiler/core/platform.cpp
---- a/tools/profiler/core/platform.cpp
-+++ b/tools/profiler/core/platform.cpp
-@@ -1176,11 +1176,11 @@
-       if (!profiledThreadData) {
-         // This thread was not profiled, continue with the next one.
-         continue;
-       }
-       ThreadRegistry::OffThreadRef::RWFromAnyThreadWithLock lockedThreadData =
--          offThreadRef.LockedRWFromAnyThread();
-+          offThreadRef.GetLockedRWFromAnyThread();
-       MOZ_RELEASE_ASSERT(array.append(ProfiledThreadListElement{
-           profiledThreadData->Info().RegisterTime(),
-           lockedThreadData->GetJSContext(), profiledThreadData}));
-     }
- 
-@@ -4208,11 +4208,11 @@
-                   ProfileBufferEntry::Kind::RunningTimes, runningTimesDiff);
-             }
- 
-             if (threadStackSampling) {
-               ThreadRegistry::OffThreadRef::RWFromAnyThreadWithLock
--                  lockedThreadData = offThreadRef.LockedRWFromAnyThread();
-+                  lockedThreadData = offThreadRef.GetLockedRWFromAnyThread();
-               // Suspend the thread and collect its stack data in the local
-               // buffer.
-               mSampler.SuspendAndSampleAndResumeThread(
-                   lock, lockedThreadData.DataCRef(), now,
-                   [&](const Registers& aRegs, const TimeStamp& aNow) {
-@@ -4922,11 +4922,11 @@
-     ThreadProfilingFeatures threadProfilingFeatures =
-         ActivePS::ProfilingFeaturesForThread(
-             aLock, aOffThreadRef.UnlockedConstReaderCRef().Info());
-     if (threadProfilingFeatures != ThreadProfilingFeatures::NotProfiled) {
-       ThreadRegistry::OffThreadRef::RWFromAnyThreadWithLock
--          lockedRWFromAnyThread = aOffThreadRef.LockedRWFromAnyThread();
-+          lockedRWFromAnyThread = aOffThreadRef.GetLockedRWFromAnyThread();
- 
-       ProfiledThreadData* profiledThreadData = ActivePS::AddLiveProfiledThread(
-           aLock, MakeUnique<ProfiledThreadData>(
-                      aOffThreadRef.UnlockedConstReaderCRef().Info()));
-       lockedRWFromAnyThread->SetProfilingFeaturesAndData(
-@@ -5788,11 +5788,11 @@
- 
-     ThreadProfilingFeatures threadProfilingFeatures =
-         ActivePS::ProfilingFeaturesForThread(aLock, info);
-     if (threadProfilingFeatures != ThreadProfilingFeatures::NotProfiled) {
-       ThreadRegistry::OffThreadRef::RWFromAnyThreadWithLock lockedThreadData =
--          offThreadRef.LockedRWFromAnyThread();
-+          offThreadRef.GetLockedRWFromAnyThread();
-       ProfiledThreadData* profiledThreadData = ActivePS::AddLiveProfiledThread(
-           aLock, MakeUnique<ProfiledThreadData>(info));
-       lockedThreadData->SetProfilingFeaturesAndData(threadProfilingFeatures,
-                                                     profiledThreadData, aLock);
-       lockedThreadData->GetNewCpuTimeInNs();
-@@ -6012,11 +6012,11 @@
-         ThreadProfilingFeatures::NotProfiled) {
-       continue;
-     }
- 
-     ThreadRegistry::OffThreadRef::RWFromAnyThreadWithLock lockedThreadData =
--        offThreadRef.LockedRWFromAnyThread();
-+        offThreadRef.GetLockedRWFromAnyThread();
- 
-     lockedThreadData->ClearProfilingFeaturesAndData(aLock);
- 
-     if (ActivePS::FeatureJS(aLock)) {
-       lockedThreadData->StopJSSampling();
-@@ -6355,11 +6355,11 @@
- 
-   // We don't call StopJSSampling() here; there's no point doing that for a JS
-   // thread that is in the process of disappearing.
- 
-   ThreadRegistration::OnThreadRef::RWOnThreadWithLock lockedThreadData =
--      aOnThreadRef.LockedRWOnThread();
-+      aOnThreadRef.GetLockedRWOnThread();
- 
-   ProfiledThreadData* profiledThreadData =
-       lockedThreadData->GetProfiledThreadData(lock);
-   lockedThreadData->ClearProfilingFeaturesAndData(lock);
- 
-@@ -6876,11 +6876,11 @@
-         }
- 
-         // The profiler mutex must be locked before the ThreadRegistration's.
-         PSAutoLock lock;
-         ThreadRegistration::OnThreadRef::RWOnThreadWithLock lockedThreadData =
--            aOnThreadRef.LockedRWOnThread();
-+            aOnThreadRef.GetLockedRWOnThread();
- 
-         if (ProfiledThreadData* profiledThreadData =
-                 lockedThreadData->GetProfiledThreadData(lock);
-             profiledThreadData && ActivePS::Exists(lock) &&
-             ActivePS::FeatureJS(lock)) {
-diff --git a/tools/profiler/public/ProfilerThreadRegistration.h b/tools/profiler/public/ProfilerThreadRegistration.h
---- a/tools/profiler/public/ProfilerThreadRegistration.h
-+++ b/tools/profiler/public/ProfilerThreadRegistration.h
-@@ -212,18 +212,18 @@
- 
-       LockedRWOnThread& mLockedRWOnThread;
-       DataLock mDataLock;
-     };
- 
--    [[nodiscard]] RWOnThreadWithLock LockedRWOnThread() {
-+    [[nodiscard]] RWOnThreadWithLock GetLockedRWOnThread() {
-       return RWOnThreadWithLock{mThreadRegistration->mData,
-                                 mThreadRegistration->mDataMutex};
-     }
- 
-     template <typename F>
-     auto WithLockedRWOnThread(F&& aF) {
--      RWOnThreadWithLock lockedData = LockedRWOnThread();
-+      RWOnThreadWithLock lockedData = GetLockedRWOnThread();
-       return std::forward<F>(aF)(lockedData.DataRef());
-     }
- 
-     // This is needed to allow OnThreadPtr::operator-> to return a temporary
-     // OnThreadRef object, for which `->` must work; Here it provides a pointer
-diff --git a/tools/profiler/public/ProfilerThreadRegistry.h b/tools/profiler/public/ProfilerThreadRegistry.h
---- a/tools/profiler/public/ProfilerThreadRegistry.h
-+++ b/tools/profiler/public/ProfilerThreadRegistry.h
-@@ -175,18 +175,18 @@
- 
-       LockedRWFromAnyThread& mLockedRWFromAnyThread;
-       ThreadRegistration::DataLock mDataLock;
-     };
- 
--    [[nodiscard]] RWFromAnyThreadWithLock LockedRWFromAnyThread() {
-+    [[nodiscard]] RWFromAnyThreadWithLock GetLockedRWFromAnyThread() {
-       return RWFromAnyThreadWithLock{mThreadRegistration->mData,
-                                      mThreadRegistration->mDataMutex};
-     }
- 
-     template <typename F>
-     auto WithLockedRWFromAnyThread(F&& aF) {
--      RWFromAnyThreadWithLock lockedData = LockedRWFromAnyThread();
-+      RWFromAnyThreadWithLock lockedData = GetLockedRWFromAnyThread();
-       return std::forward<F>(aF)(lockedData.DataRef());
-     }
- 
-    private:
-     // Only ThreadRegistry should construct an OnThreadRef.
-diff --git a/tools/profiler/tests/gtest/GeckoProfiler.cpp b/tools/profiler/tests/gtest/GeckoProfiler.cpp
---- a/tools/profiler/tests/gtest/GeckoProfiler.cpp
-+++ b/tools/profiler/tests/gtest/GeckoProfiler.cpp
-@@ -620,11 +620,11 @@
-       // non-const LockedRWOnThread
- 
-       EXPECT_FALSE(TR::IsDataMutexLockedOnCurrentThread());
-       {
-         TR::OnThreadRef::RWOnThreadWithLock rwOnThreadWithLock =
--            aOnThreadRef.LockedRWOnThread();
-+            aOnThreadRef.GetLockedRWOnThread();
-         EXPECT_TRUE(TR::IsDataMutexLockedOnCurrentThread());
-         TestConstLockedRWOnThread(rwOnThreadWithLock.DataCRef(),
-                                   beforeRegistration, afterRegistration,
-                                   &onStackChar);
-         TestLockedRWOnThread(rwOnThreadWithLock.DataRef(), beforeRegistration,
-@@ -1019,11 +1019,11 @@
-         // non-const LockedRWFromAnyThread
- 
-         EXPECT_FALSE(TR::IsDataMutexLockedOnCurrentThread());
-         {
-           TRy::OffThreadRef::RWFromAnyThreadWithLock rwFromAnyThreadWithLock =
--              aOffThreadRef.LockedRWFromAnyThread();
-+              aOffThreadRef.GetLockedRWFromAnyThread();
-           if (profiler_current_thread_id() == testThreadId) {
-             EXPECT_TRUE(TR::IsDataMutexLockedOnCurrentThread());
-           }
-           TestLockedRWFromAnyThread(rwFromAnyThreadWithLock.DataRef(),
-                                     beforeRegistration, afterRegistration,
-@@ -1156,11 +1156,11 @@
-                                                     aOffThreadRef) {
-           if (otherThreadLoops % 1000 == 0) {
-             PR_Sleep(PR_MillisecondsToInterval(1));
-           }
-           TRy::OffThreadRef::RWFromAnyThreadWithLock rwFromAnyThreadWithLock =
--              aOffThreadRef.LockedRWFromAnyThread();
-+              aOffThreadRef.GetLockedRWFromAnyThread();
-           ++otherThreadReads;
-           if (otherThreadReads % 1000 == 0) {
-             PR_Sleep(PR_MillisecondsToInterval(1));
-           }
-         });
-
--- a/mozilla-kde.patch	Mon Apr 10 23:42:16 2023 +0200
+++ b/mozilla-kde.patch	Tue May 09 23:09:18 2023 +0200
@@ -3,7 +3,7 @@
 # Date 1559294891 -7200
 #      Fri May 31 11:28:11 2019 +0200
 # Node ID c2aa7198fb925e7fde96abf65b6f68b9b755f112
-# Parent  191cd9e24a9e0812f74c808ceef611c8b10141e1
+# Parent  b6b4d42b51c6a815116505bf7e9b34a5e2f0c65b
 Description: Add KDE integration to Firefox (toolkit parts)
 Author: Wolfgang Rosenauer <wolfgang@rosenauer.org>
 Author: Lubos Lunak <lunak@suse.com>
@@ -31,7 +31,7 @@
  #ifdef MOZ_MEMORY
  #  include "mozmemory.h"
  #endif
-@@ -4882,16 +4883,27 @@ nsresult Preferences::InitInitialObjects
+@@ -4908,16 +4909,27 @@ nsresult Preferences::InitInitialObjects
      "unix.js"
  #  if defined(_AIX)
      ,
@@ -57,9 +57,9 @@
      NS_WARNING("Error parsing application default preferences.");
    }
  
- #if defined(MOZ_WIDGET_GTK)
-   // Under Flatpak/Snap package, load /etc/firefox/defaults/pref/*.js.
-@@ -4973,17 +4985,17 @@ nsresult Preferences::InitInitialObjects
+   // Load jar:$app/omni.jar!/defaults/preferences/*.js
+   // or jar:$gre/omni.jar!/defaults/preferences/*.js.
+@@ -4982,17 +4994,17 @@ nsresult Preferences::InitInitialObjects
        }
  
        nsCOMPtr<nsIFile> path = do_QueryInterface(elem);
@@ -73,11 +73,11 @@
      }
    }
  
-   if (XRE_IsParentProcess()) {
-     SetupTelemetryPref();
-   }
- 
-   if (aIsStartup) {
+ #if defined(MOZ_WIDGET_GTK)
+   // To ensure the system-wide preferences are not overwritten by
+   // firefox/browser/defauts/preferences/*.js we need to load
+   // the /etc/firefox/defaults/pref/*.js settings as last.
+   // Under Flatpak, the NS_OS_SYSTEM_CONFIG_DIR points to /app/etc/firefox
 diff --git a/modules/libpref/moz.build b/modules/libpref/moz.build
 --- a/modules/libpref/moz.build
 +++ b/modules/libpref/moz.build
@@ -165,7 +165,7 @@
 diff --git a/toolkit/mozapps/downloads/HelperAppDlg.jsm b/toolkit/mozapps/downloads/HelperAppDlg.jsm
 --- a/toolkit/mozapps/downloads/HelperAppDlg.jsm
 +++ b/toolkit/mozapps/downloads/HelperAppDlg.jsm
-@@ -1240,36 +1240,66 @@ nsUnknownContentTypeDialog.prototype = {
+@@ -1250,36 +1250,66 @@ nsUnknownContentTypeDialog.prototype = {
          params.handlerApp &&
          params.handlerApp.executable &&
          params.handlerApp.executable.isFile()
@@ -347,7 +347,7 @@
 diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build
 --- a/toolkit/xre/moz.build
 +++ b/toolkit/xre/moz.build
-@@ -92,17 +92,19 @@ elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "co
+@@ -91,17 +91,19 @@ elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "co
          "../components/printingui",
      ]
  elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "uikit":
@@ -1055,7 +1055,7 @@
 diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
 --- a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
 +++ b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
-@@ -1,46 +1,49 @@
+@@ -1,48 +1,51 @@
  /* -*- Mode: C++; tab-width: 3; indent-tabs-mode: nil; c-basic-offset: 2 -*-
   *
   * This Source Code Form is subject to the terms of the Mozilla Public
@@ -1082,10 +1082,12 @@
  
  NS_IMETHODIMP
  nsMIMEInfoUnix::GetHasDefaultHandler(bool* _retval) {
-   // if mDefaultApplication is set, it means the application has been set from
+   // if a default app is set, it means the application has been set from
    // either /etc/mailcap or ${HOME}/.mailcap, in which case we don't want to
    // give the GNOME answer.
-   if (mDefaultApplication) return nsMIMEInfoImpl::GetHasDefaultHandler(_retval);
+   if (GetDefaultApplication()) {
+     return nsMIMEInfoImpl::GetHasDefaultHandler(_retval);
+   }
  
    *_retval = false;
  
@@ -1110,11 +1112,11 @@
    if (*_retval) return NS_OK;
  
    return NS_OK;
-@@ -50,16 +53,33 @@ nsresult nsMIMEInfoUnix::LaunchDefaultWi
-   // if mDefaultApplication is set, it means the application has been set from
-   // either /etc/mailcap or ${HOME}/.mailcap, in which case we don't want to
+@@ -54,16 +57,33 @@ nsresult nsMIMEInfoUnix::LaunchDefaultWi
    // give the GNOME answer.
-   if (mDefaultApplication) return nsMIMEInfoImpl::LaunchDefaultWithFile(aFile);
+   if (GetDefaultApplication()) {
+     return nsMIMEInfoImpl::LaunchDefaultWithFile(aFile);
+   }
  
    nsAutoCString nativePath;
    aFile->GetNativePath(nativePath);
@@ -1130,10 +1132,10 @@
 +      if( nsKDEUtils::command( command ))
 +        return NS_OK;
 +    }
-+    if (!mDefaultApplication)
++    if (!GetDefaultApplication())
 +      return NS_ERROR_FILE_NOT_FOUND;
 +
-+    return LaunchWithIProcess(mDefaultApplication, nativePath);
++    return LaunchWithIProcess(GetDefaultApplication(), nativePath);
 +  }
 +
    nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID);
@@ -1245,7 +1247,7 @@
 diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build
 --- a/widget/gtk/moz.build
 +++ b/widget/gtk/moz.build
-@@ -147,16 +147,17 @@ FINAL_LIBRARY = "xul"
+@@ -142,16 +142,17 @@ FINAL_LIBRARY = "xul"
  
  LOCAL_INCLUDES += [
      "/layout/base",
@@ -1283,7 +1285,7 @@
  #include "nsGtkUtils.h"
  #include "nsIFileURL.h"
  #include "nsIGIOService.h"
-@@ -21,16 +22,18 @@
+@@ -23,16 +24,18 @@
  #include "nsArrayEnumerator.h"
  #include "nsEnumeratorUtils.h"
  #include "nsNetUtil.h"
@@ -1302,7 +1304,7 @@
  #  include "Units.h"
  extern mozilla::LazyLogModule gWidgetLog;
  #  define LOG(args) MOZ_LOG(gWidgetLog, mozilla::LogLevel::Debug, args)
-@@ -235,17 +238,19 @@ nsFilePicker::AppendFilters(int32_t aFil
+@@ -237,17 +240,19 @@ nsFilePicker::AppendFilters(int32_t aFil
    mAllowURLs = !!(aFilterMask & filterAllowURLs);
    return nsBaseFilePicker::AppendFilters(aFilterMask);
  }
@@ -1323,7 +1325,7 @@
  
    mFilters.AppendElement(filter);
    mFilterNames.AppendElement(name);
-@@ -345,16 +350,39 @@ nsresult nsFilePicker::Show(int16_t* aRe
+@@ -347,16 +352,39 @@ nsresult nsFilePicker::Show(nsIFilePicke
    return NS_OK;
  }
  
@@ -1339,7 +1341,7 @@
 +    NS_ADDREF_THIS();
 +    g_idle_add([](gpointer data) -> gboolean {
 +      nsFilePicker* queuedPicker = (nsFilePicker*) data;
-+      int16_t result;
++      nsIFilePicker::ResultCode result;
 +      queuedPicker->kdeFileDialog(&result);
 +      if (queuedPicker->mCallback) {
 +        queuedPicker->mCallback->Done(result);
@@ -1363,7 +1365,7 @@
    GtkFileChooserAction action = GetGtkFileChooserAction(mMode);
  
    const gchar* accept_button;
-@@ -574,16 +602,244 @@ void nsFilePicker::Done(void* file_choos
+@@ -628,16 +656,244 @@ void nsFilePicker::Done(void* file_choos
      mCallback->Done(result);
      mCallback = nullptr;
    } else {
@@ -1395,7 +1397,7 @@
 +    return GDK_WINDOW_XID( gdk_window );
 +    }
 +
-+NS_IMETHODIMP nsFilePicker::kdeFileDialog(PRInt16 *aReturn)
++NS_IMETHODIMP nsFilePicker::kdeFileDialog(nsIFilePicker::ResultCode *aReturn)
 +    {
 +    NS_ENSURE_ARG_POINTER(aReturn);
 +
@@ -1569,7 +1571,7 @@
 +    }
 +
 +
-+NS_IMETHODIMP nsFilePicker::kdeAppsDialog(PRInt16 *aReturn)
++NS_IMETHODIMP nsFilePicker::kdeAppsDialog(nsIFilePicker::ResultCode *aReturn)
 +    {
 +    NS_ENSURE_ARG_POINTER(aReturn);
 +
@@ -1611,7 +1613,7 @@
 diff --git a/widget/gtk/nsFilePicker.h b/widget/gtk/nsFilePicker.h
 --- a/widget/gtk/nsFilePicker.h
 +++ b/widget/gtk/nsFilePicker.h
-@@ -67,16 +67,22 @@ class nsFilePicker : public nsBaseFilePi
+@@ -69,16 +69,22 @@ class nsFilePicker : public nsBaseFilePi
    nsString mDefaultExtension;
  
    nsTArray<nsCString> mFilters;
@@ -1622,8 +1624,8 @@
  
 +  bool kdeRunning();
 +  bool getKdeRunning();
-+  NS_IMETHODIMP kdeFileDialog(PRInt16 *aReturn);
-+  NS_IMETHODIMP kdeAppsDialog(PRInt16 *aReturn);
++  NS_IMETHODIMP kdeFileDialog(nsIFilePicker::ResultCode *aReturn);
++  NS_IMETHODIMP kdeAppsDialog(nsIFilePicker::ResultCode *aReturn);
 +  nsCString kdeMakeFilter( int index );
 +
    void* GtkFileChooserNew(const gchar* title, GtkWindow* parent,
@@ -1807,7 +1809,7 @@
  #  include "prmem.h"
  #  include "plbase64.h"
  
-@@ -2157,20 +2158,29 @@ nsLocalFile::SetPersistentDescriptor(con
+@@ -2167,20 +2168,29 @@ nsLocalFile::SetPersistentDescriptor(con
  
  NS_IMETHODIMP
  nsLocalFile::Reveal() {
@@ -1839,7 +1841,7 @@
      ::CFRelease(url);
      return rv;
    }
-@@ -2182,16 +2192,23 @@ nsLocalFile::Reveal() {
+@@ -2192,16 +2202,23 @@ nsLocalFile::Reveal() {
  
  NS_IMETHODIMP
  nsLocalFile::Launch() {
--- a/mozilla-libavcodec58_91.patch	Mon Apr 10 23:42:16 2023 +0200
+++ b/mozilla-libavcodec58_91.patch	Tue May 09 23:09:18 2023 +0200
@@ -1,17 +1,17 @@
 # HG changeset patch
-# Parent  63747fd31719c6e4f7810512a3c57e75a02b8bfd
+# Parent  60fc1933af9d4f1769025a6f1d9a60db6b899315
 
 diff --git a/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp b/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp
 --- a/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp
 +++ b/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp
-@@ -34,16 +34,18 @@ static const char* sLibs[] = {
-   "libavcodec.55.dylib",
+@@ -36,16 +36,18 @@ static const char* sLibs[] = {
    "libavcodec.54.dylib",
    "libavcodec.53.dylib",
  #elif defined(XP_OPENBSD)
    "libavcodec.so", // OpenBSD hardly controls the major/minor library version
                     // of ffmpeg and update it regulary on ABI/API changes
  #else
+   "libavcodec.so.60",
    "libavcodec.so.59",
 +  "libavcodec.so.58.134",
 +  "libavcodec.so.58.91",
--- a/mozilla-silence-no-return-type.patch	Mon Apr 10 23:42:16 2023 +0200
+++ b/mozilla-silence-no-return-type.patch	Tue May 09 23:09:18 2023 +0200
@@ -1,5 +1,5 @@
 # HG changeset patch
-# Parent  c9ee7d75ce3f624221f3ba8ef7c821f501c9a028
+# Parent  6bace0b1d6e9c82e8d3f557cac1a4bcc10ec9c13
 
 diff --git a/Cargo.lock b/Cargo.lock
 --- a/Cargo.lock
@@ -26,7 +26,7 @@
 diff --git a/Cargo.toml b/Cargo.toml
 --- a/Cargo.toml
 +++ b/Cargo.toml
-@@ -158,16 +158,17 @@ chardetng_c = { git = "https://github.co
+@@ -161,16 +161,17 @@ chardetng_c = { git = "https://github.co
  coremidi = { git = "https://github.com/chris-zen/coremidi.git", rev="fc68464b5445caf111e41f643a2e69ccce0b4f83" }
  firefox-on-glean = { path = "toolkit/components/glean/api" }
  libudev-sys = { path = "dom/webauthn/libudev-sys" }
@@ -37,13 +37,13 @@
  warp = { git = "https://github.com/glandium/warp", rev = "4af45fae95bc98b0eba1ef0db17e1dac471bb23d" }
 +glslopt = { path = "third_party/rust/glslopt/" }
  
- cssparser = { git = "https://github.com/servo/rust-cssparser", rev = "d3670a89bae26ba3a8db4758eb7976616113987d" }
+ cssparser = { git = "https://github.com/servo/rust-cssparser", rev = "b196a164dcbb317016d4aa6c58c13147e6045ebb" }
  
  # application-services overrides to make updating them all simpler.
- interrupt-support = { git = "https://github.com/bendk/application-services", rev = "ecb35df5fc40357c49922f90e86bf4147fa52953" }
- sql-support = { git = "https://github.com/bendk/application-services", rev = "ecb35df5fc40357c49922f90e86bf4147fa52953" }
- sync15 = { git = "https://github.com/bendk/application-services", rev = "ecb35df5fc40357c49922f90e86bf4147fa52953" }
- tabs = { git = "https://github.com/bendk/application-services", rev = "ecb35df5fc40357c49922f90e86bf4147fa52953" }
+ interrupt-support = { git = "https://github.com/mozilla/application-services", rev = "fe2867dbe82a2aaa85a856648107be94b1534683" }
+ sql-support = { git = "https://github.com/mozilla/application-services", rev = "fe2867dbe82a2aaa85a856648107be94b1534683" }
+ sync15 = { git = "https://github.com/mozilla/application-services", rev = "fe2867dbe82a2aaa85a856648107be94b1534683" }
+ tabs = { git = "https://github.com/mozilla/application-services", rev = "fe2867dbe82a2aaa85a856648107be94b1534683" }
 diff --git a/gfx/skia/skia/include/codec/SkEncodedOrigin.h b/gfx/skia/skia/include/codec/SkEncodedOrigin.h
 --- a/gfx/skia/skia/include/codec/SkEncodedOrigin.h
 +++ b/gfx/skia/skia/include/codec/SkEncodedOrigin.h
@@ -2161,22 +2161,6 @@
  VideoSendStream::StreamStats::~StreamStats() = default;
  
  std::string VideoSendStream::StreamStats::ToString() const {
-diff --git a/third_party/libwebrtc/modules/audio_processing/agc/clipping_predictor.cc b/third_party/libwebrtc/modules/audio_processing/agc/clipping_predictor.cc
---- a/third_party/libwebrtc/modules/audio_processing/agc/clipping_predictor.cc
-+++ b/third_party/libwebrtc/modules/audio_processing/agc/clipping_predictor.cc
-@@ -373,11 +373,12 @@ std::unique_ptr<ClippingPredictor> Creat
-           /*adaptive_step_estimation=*/true);
-     case ClippingPredictorMode::kFixedStepClippingPeakPrediction:
-       return std::make_unique<ClippingPeakPredictor>(
-           num_channels, config.window_length, config.reference_window_length,
-           config.reference_window_delay, config.clipping_threshold,
-           /*adaptive_step_estimation=*/false);
-   }
-   RTC_DCHECK_NOTREACHED();
-+  return nullptr;
- }
- 
- }  // namespace webrtc
 diff --git a/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc.cc b/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc.cc
 --- a/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc.cc
 +++ b/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc.cc
@@ -2220,7 +2204,7 @@
  
  // Maximum lengths that frame of samples being passed from the render side to
  // the capture side can have (does not apply to AEC3).
-@@ -1980,16 +1981,17 @@ void AudioProcessingImpl::InitializeNois
+@@ -1982,16 +1983,17 @@ void AudioProcessingImpl::InitializeNois
              case NoiseSuppresionConfig::kModerate:
                return NsConfig::SuppressionLevel::k12dB;
              case NoiseSuppresionConfig::kHigh:
--- a/series	Mon Apr 10 23:42:16 2023 +0200
+++ b/series	Tue May 09 23:09:18 2023 +0200
@@ -22,7 +22,6 @@
 one_swizzle_to_rule_them_all.patch
 svg-rendering.patch
 mozilla-buildfixes.patch
-mozilla-bmo1807652.patch
 
 # Firefox patches
 firefox-kde.patch