# HG changeset patch # User Wolfgang Rosenauer # Date 1641634879 -3600 # Node ID 7481543bab31d337adfe9367db65cc5ccbcc11db # Parent c384af864671646002266336cdeb680120e8e462 Firefox 95.0.2 diff -r c384af864671 -r 7481543bab31 MozillaFirefox/MozillaFirefox.changes --- a/MozillaFirefox/MozillaFirefox.changes Sat Dec 04 11:19:16 2021 +0100 +++ b/MozillaFirefox/MozillaFirefox.changes Sat Jan 08 10:41:19 2022 +0100 @@ -1,4 +1,79 @@ ------------------------------------------------------------------- +Tue Dec 28 17:45:28 UTC 2021 - Bjørn Lie + +- Add upstream patches: + * mozilla-bmo1745560.patch: Fix build against wayland 1.20. + * mozilla-bmo1744896.patch: Create WaylandVsyncSource on window + creation + +------------------------------------------------------------------- +Mon Dec 20 21:57:30 UTC 2021 - Wolfgang Rosenauer + +- Mozilla Firefox 95.0.2 + * Addresses frequent crashes experienced by users with C/E/Z-Series + "Bobcat" CPUs running on Windows 7, 8, and 8.1. +- updated constraints for ppc and x86-64 + +------------------------------------------------------------------- +Fri Dec 17 13:49:16 UTC 2021 - Wolfgang Rosenauer + +- Mozilla Firefox 95.0.1 (bsc#1193845) + * Fixed frequent + MOZILLA_PKIX_ERROR_OCSP_RESPONSE_FOR_CERT_MISSING error + messages when trying to connect to various microsoft.com + domains (bmo#1745600) + * Fix for a WebRender crash on some Linux/X11 systems (bmo#1741956) + * Fix for a frequent Windows shutdown crash (bmo#1738984) + * Fix websites contrast issues for some Linux users with + Dark mode set at OS level (bmo#1740518) + +------------------------------------------------------------------- +Sat Dec 4 12:07:21 UTC 2021 - Wolfgang Rosenauer + +- Mozilla Firefox 95.0 + * You can now move the Picture-in-Picture toggle button to the + opposite side of the video. Simply look for the new context menu + option Move Picture-in-Picture Toggle to Left (Right) Side. + * To better protect Firefox users against side-channel attacks such + as Spectre, Site Isolation is now enabled for all Firefox 95 users. + * https://www.mozilla.org/en-US/firefox/95.0/releasenotes + MFSA 2021-52 (bsc#1193485) + * CVE-2021-43536 (bmo#1730120) + URL leakage when navigating while executing asynchronous + function + * CVE-2021-43537 (bmo#1738237) + Heap buffer overflow when using structured clone + * CVE-2021-43538 (bmo#1739091) + Missing fullscreen and pointer lock notification when + requesting both + * CVE-2021-43539 (bmo#1739683) + GC rooting failure when calling wasm instance methods + * MOZ-2021-0010 (bmo#1735852) + Use-after-free in fullscreen objects on MacOS + * CVE-2021-43540 (bmo#1636629) + WebExtensions could have installed persistent ServiceWorkers + * CVE-2021-43541 (bmo#1696685) + External protocol handler parameters were unescaped + * CVE-2021-43542 (bmo#1723281) + XMLHttpRequest error codes could have leaked the existence of + an external protocol handler + * CVE-2021-43543 (bmo#1738418) + Bypass of CSP sandbox directive when embedding + * CVE-2021-43544 (bmo#1739934) + Receiving a malicious URL as text through a SEND intent could + have led to XSS + * CVE-2021-43545 (bmo#1720926) + Denial of Service when using the Location API in a loop + * CVE-2021-43546 (bmo#1737751) + Cursor spoofing could overlay user interface when native + cursor is zoomed + * MOZ-2021-0009 (bmo#1393362, bmo#1736046, bmo#1736751, + bmo#1737009, bmo#1739372, bmo#1739421) + Memory safety bugs fixed in Firefox 95 and Firefox ESR 91.4 +- requires + NSS >= 3.72 + +------------------------------------------------------------------- Thu Dec 2 20:32:42 UTC 2021 - Andreas Stieger - remove x-scheme-handler/ftp from firefox.desktop boo#1193321 diff -r c384af864671 -r 7481543bab31 MozillaFirefox/MozillaFirefox.spec --- a/MozillaFirefox/MozillaFirefox.spec Sat Dec 04 11:19:16 2021 +0100 +++ b/MozillaFirefox/MozillaFirefox.spec Sat Jan 08 10:41:19 2022 +0100 @@ -28,9 +28,9 @@ # orig_suffix b3 # major 69 # mainver %major.99 -%define major 94 +%define major 95 %define mainver %major.0.2 -%define orig_version 94.0.2 +%define orig_version 95.0.2 %define orig_suffix %{nil} %define update_channel release %define branding 1 @@ -223,6 +223,8 @@ Patch28: mozilla-libavcodec58_91.patch Patch29: mozilla-silence-no-return-type.patch Patch31: mozilla-bmo531915.patch +Patch32: mozilla-bmo1745560.patch +Patch33: mozilla-bmo1744896.patch # Firefox/browser Patch101: firefox-kde.patch Patch102: firefox-branded-icons.patch @@ -351,6 +353,8 @@ %patch28 -p1 %patch29 -p1 %patch31 -p1 +%patch32 -p1 +%patch33 -p1 # Firefox %patch101 -p1 %patch102 -p1 @@ -492,6 +496,8 @@ ac_add_options --with-google-safebrowsing-api-keyfile=%{SOURCE19} ac_add_options --with-unsigned-addon-scopes=app ac_add_options --allow-addon-sideload +# at least temporary until the "wasi-sysroot" issue is solved +ac_add_options --without-wasm-sandboxed-libraries %if %branding ac_add_options --enable-official-branding %endif @@ -548,6 +554,7 @@ ac_add_options --prefix=%{_prefix} ac_add_options --with-l10n-base=$RPM_BUILD_DIR/l10n ac_add_options --disable-updater +ac_add_options --without-wasm-sandboxed-libraries %if %branding ac_add_options --enable-official-branding %endif diff -r c384af864671 -r 7481543bab31 MozillaFirefox/_constraints --- a/MozillaFirefox/_constraints Sat Dec 04 11:19:16 2021 +0100 +++ b/MozillaFirefox/_constraints Sat Jan 08 10:41:19 2022 +0100 @@ -51,7 +51,7 @@ - 16 + 18 @@ -62,10 +62,10 @@ - 25 + 36 - 10 + 11 2500 diff -r c384af864671 -r 7481543bab31 MozillaFirefox/mozilla-bmo1602730.patch --- a/MozillaFirefox/mozilla-bmo1602730.patch Sat Dec 04 11:19:16 2021 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -../mozilla-bmo1602730.patch \ No newline at end of file diff -r c384af864671 -r 7481543bab31 MozillaFirefox/mozilla-bmo1725828.patch --- a/MozillaFirefox/mozilla-bmo1725828.patch Sat Dec 04 11:19:16 2021 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -../mozilla-bmo1725828.patch \ No newline at end of file diff -r c384af864671 -r 7481543bab31 MozillaFirefox/mozilla-bmo1729124.patch --- a/MozillaFirefox/mozilla-bmo1729124.patch Sat Dec 04 11:19:16 2021 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -../mozilla-bmo1729124.patch \ No newline at end of file diff -r c384af864671 -r 7481543bab31 MozillaFirefox/mozilla-bmo1744896.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MozillaFirefox/mozilla-bmo1744896.patch Sat Jan 08 10:41:19 2022 +0100 @@ -0,0 +1,1 @@ +../mozilla-bmo1744896.patch \ No newline at end of file diff -r c384af864671 -r 7481543bab31 MozillaFirefox/mozilla-bmo1745560.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MozillaFirefox/mozilla-bmo1745560.patch Sat Jan 08 10:41:19 2022 +0100 @@ -0,0 +1,1 @@ +../mozilla-bmo1745560.patch \ No newline at end of file diff -r c384af864671 -r 7481543bab31 MozillaFirefox/tar_stamps --- a/MozillaFirefox/tar_stamps Sat Dec 04 11:19:16 2021 +0100 +++ b/MozillaFirefox/tar_stamps Sat Jan 08 10:41:19 2022 +0100 @@ -1,10 +1,10 @@ PRODUCT="firefox" CHANNEL="release" -VERSION="94.0.2" +VERSION="95.0.2" VERSION_SUFFIX="" -PREV_VERSION="94.0.1" +PREV_VERSION="95.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="f09593707108af9f9f4d580cf748c3537639ecd4" -RELEASE_TIMESTAMP="20211119140621" +RELEASE_TAG="1ff2cec0bb36e389df1a209a9f882b443ed48495" +RELEASE_TIMESTAMP="20211218203254" diff -r c384af864671 -r 7481543bab31 mozilla-bmo1602730.patch --- a/mozilla-bmo1602730.patch Sat Dec 04 11:19:16 2021 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -# HG changeset patch -# User msirringhaus@suse.de -# Date 1582805890 -3600 -# Thu Feb 27 13:18:10 2020 +0100 -# Node ID 457cbe5705f2a3759d3da36a05c0ed66ec61ea12 -# Parent 7440f4b6bab85068ca2f84e9c48e0706d04330e8 -imported patch mozilla-bmo1602730-FF73.patch - -diff -r 7440f4b6bab8 gfx/layers/composite/CompositableHost.cpp ---- a/gfx/layers/composite/CompositableHost.cpp Thu Feb 27 13:17:56 2020 +0100 -+++ b/gfx/layers/composite/CompositableHost.cpp Wed Jun 17 15:33:32 2020 +0200 -@@ -92,9 +92,13 @@ - } - MOZ_ASSERT(source); - -+ // Setting an alpha-mask here breaks the URL-bar on big endian (s390x) -+ // if the typed URL is too long for the textbox (automatic scrolling needed) -+#if MOZ_LITTLE_ENDIAN() - RefPtr effect = - new EffectMask(source, source->GetSize(), aTransform); - aEffects.mSecondaryEffects[EffectTypes::MASK] = effect; -+#endif - return true; - } - diff -r c384af864671 -r 7481543bab31 mozilla-bmo1725828.patch --- a/mozilla-bmo1725828.patch Sat Dec 04 11:19:16 2021 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,553 +0,0 @@ -# HG changeset patch -# Parent fbca0d2a522cd1ab78001476293d3d79bfabb4cf - - - - - - Tree - rpms/firefox - src.fedoraproject.org - - - - - - - - - - - - - - - - - - -
- - -
-
-
-
-
-
-

-

-
-
-

-rpms / firefox -

-
-
-
-
-
-
- - - Clone - - - -
-
-
-
- - -
-
- -
-
-
-
-
- -
-
- -
- -
-
-
- - -
- - Blob - - Blame - - History - - Raw -
- -
diff -up firefox-92.0/dom/media/gmp/GMPChild.cpp.1725828 firefox-92.0/dom/media/gmp/GMPChild.cpp
-
-diff --git a/dom/media/gmp/GMPChild.cpp b/dom/media/gmp/GMPChild.cpp
---- a/dom/media/gmp/GMPChild.cpp
-+++ b/dom/media/gmp/GMPChild.cpp
-@@ -227,18 +227,24 @@ mozilla::ipc::IPCResult GMPChild::RecvPr
-               .EqualsASCII(lib.Data(), lib.Length())) {
-         LoadLibraryW(char16ptr_t(whiteListedLib));
-         break;
-       }
-     }
-   }
- #elif defined(XP_LINUX)
-   constexpr static const char* whitelist[] = {
-+      // NSS libraries used by clearkey.
-       "libfreeblpriv3.so",
-       "libsoftokn3.so",
-+      // glibc libraries merged into libc.so.6; see bug 1725828 and
-+      // the corresponding code in GMPParent.cpp.
-+      "libdl.so.2",
-+      "libpthread.so.0",
-+      "librt.so.1",
-   };
- 
-   nsTArray libs;
-   SplitAt(", ", aLibs, libs);
-   for (const nsCString& lib : libs) {
-     for (const char* whiteListedLib : whitelist) {
-       if (lib.EqualsASCII(whiteListedLib)) {
-         auto libHandle = dlopen(whiteListedLib, RTLD_NOW | RTLD_GLOBAL);
-@@ -251,17 +257,17 @@ mozilla::ipc::IPCResult GMPChild::RecvPr
-           if (error) {
-             // We should always have an error, but gracefully handle just in
-             // case.
-             nsAutoCString nsError{error};
-             CrashReporter::AppendAppNotesToCrashReport(nsError);
-           }
-           // End bug 1698718 logging.
- 
--          MOZ_CRASH("Couldn't load lib needed by NSS");
-+          MOZ_CRASH("Couldn't load lib needed by media plugin");
-         }
-       }
-     }
-   }
- #endif
-   return IPC_OK();
- }
- 
-diff --git a/dom/media/gmp/GMPParent.cpp b/dom/media/gmp/GMPParent.cpp
---- a/dom/media/gmp/GMPParent.cpp
-+++ b/dom/media/gmp/GMPParent.cpp
-@@ -871,16 +871,30 @@ RefPtr GMPParent::ParseC
-     mLibs = "dxva2.dll"_ns;
- #endif
-   } else {
-     GMP_PARENT_LOG_DEBUG("%s: Unrecognized key system: %s, failing.",
-                          __FUNCTION__, mDisplayName.get());
-     return GenericPromise::CreateAndReject(NS_ERROR_FAILURE, __func__);
-   }
- 
-+#ifdef XP_LINUX
-+  // These glibc libraries were merged into libc.so.6 as of glibc
-+  // 2.34; they now exist only as stub libraries for compatibility and
-+  // newly linked code won't depend on them, so we need to ensure
-+  // they're loaded for plugins that may have been linked against a
-+  // different version of glibc.  (See also bug 1725828.)
-+  if (!mDisplayName.EqualsASCII("clearkey")) {
-+    if (!mLibs.IsEmpty()) {
-+      mLibs.AppendLiteral(", ");
-+    }
-+    mLibs.AppendLiteral("libdl.so.2, libpthread.so.0, librt.so.1");
-+  }
-+#endif
-+
-   nsCString codecsString = NS_ConvertUTF16toUTF8(m.mX_cdm_codecs);
-   nsTArray codecs;
-   SplitAt(",", codecsString, codecs);
- 
-   // Parse the codec strings in the manifest and map them to strings used
-   // internally by Gecko for capability recognition.
-   //
-   // Google's code to parse manifests can be used as a reference for strings
diff -r c384af864671 -r 7481543bab31 mozilla-bmo1729124.patch
--- a/mozilla-bmo1729124.patch	Sat Dec 04 11:19:16 2021 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-
-# HG changeset patch
-# User Zhao Jiazhong 
-# Date 1631000649 0
-# Node ID eac40293649628d32911c909219d514bebb8ce63
-# Parent  6582d77235867224aaf8621bad8ee167dfb31460
-Bug 1729124 - [MIPS64][ARM64] Fix gcc build issue. r=lth
-
-The SpecificRegs struct needs a constructor.
-
-Differential Revision: https://phabricator.services.mozilla.com/D124535
-
-diff --git a/js/src/wasm/WasmBCRegDefs.h b/js/src/wasm/WasmBCRegDefs.h
---- a/js/src/wasm/WasmBCRegDefs.h
-+++ b/js/src/wasm/WasmBCRegDefs.h
-@@ -374,25 +374,31 @@ struct SpecificRegs {
- };
- #elif defined(JS_CODEGEN_ARM)
- struct SpecificRegs {
-   RegI64 abiReturnRegI64;
- 
-   SpecificRegs() : abiReturnRegI64(ReturnReg64) {}
- };
- #elif defined(JS_CODEGEN_ARM64)
--struct SpecificRegs {};
-+struct SpecificRegs {
-+  // Required by gcc.
-+  SpecificRegs() {}
-+};
- #elif defined(JS_CODEGEN_MIPS32)
- struct SpecificRegs {
-   RegI64 abiReturnRegI64;
- 
-   SpecificRegs() : abiReturnRegI64(ReturnReg64) {}
- };
- #elif defined(JS_CODEGEN_MIPS64)
--struct SpecificRegs {};
-+struct SpecificRegs {
-+  // Required by gcc.
-+  SpecificRegs() {}
-+};
- #else
- struct SpecificRegs {
- #  ifndef JS_64BIT
-   RegI64 abiReturnRegI64;
- #  endif
- 
-   SpecificRegs() { MOZ_CRASH("BaseCompiler porting interface: SpecificRegs"); }
- };
-
diff -r c384af864671 -r 7481543bab31 mozilla-bmo1744896.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mozilla-bmo1744896.patch	Sat Jan 08 10:41:19 2022 +0100
@@ -0,0 +1,43 @@
+diff -up firefox-95.0.2/widget/gtk/nsWindow.cpp.1744896 firefox-95.0.2/widget/gtk/nsWindow.cpp
+--- firefox-95.0.2/widget/gtk/nsWindow.cpp.1744896	2021-12-23 11:54:31.522539340 +0100
++++ firefox-95.0.2/widget/gtk/nsWindow.cpp	2021-12-23 11:55:56.070270174 +0100
+@@ -5765,6 +5765,17 @@ nsresult nsWindow::Create(nsIWidget* aPa
+       }
+     }
+ #endif
++#ifdef MOZ_WAYLAND
++  // Initialize the window specific VsyncSource early in order to avoid races
++  // with BrowserParent::UpdateVsyncParentVsyncSource().
++  // Only use for toplevel windows for now, see bug 1619246.
++  if (GdkIsWaylandDisplay() &&
++      StaticPrefs::widget_wayland_vsync_enabled_AtStartup() &&
++      mWindowType == eWindowType_toplevel) {
++    mWaylandVsyncSource = new WaylandVsyncSource();
++    MOZ_RELEASE_ASSERT(mWaylandVsyncSource);
++  }
++#endif
+ 
+     // We create input contexts for all containers, except for
+     // toplevel popup windows
+@@ -6077,19 +6088,12 @@ void nsWindow::ResumeCompositorFromCompo
+ 
+ void nsWindow::WaylandStartVsync() {
+ #ifdef MOZ_WAYLAND
+-  // only use for toplevel windows for now - see bug 1619246
+-  if (!GdkIsWaylandDisplay() ||
+-      !StaticPrefs::widget_wayland_vsync_enabled_AtStartup() ||
+-      mWindowType != eWindowType_toplevel) {
++  if (!mWaylandVsyncSource) {
+     return;
+   }
+ 
+   LOG("nsWindow::WaylandStartVsync() [%p]\n", (void*)this);
+ 
+-  if (!mWaylandVsyncSource) {
+-    mWaylandVsyncSource = new WaylandVsyncSource();
+-  }
+-
+   WaylandVsyncSource::WaylandDisplay& display =
+       static_cast(
+           mWaylandVsyncSource->GetGlobalDisplay());
+
diff -r c384af864671 -r 7481543bab31 mozilla-bmo1745560.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mozilla-bmo1745560.patch	Sat Jan 08 10:41:19 2022 +0100
@@ -0,0 +1,15 @@
+diff --git a/widget/gtk/mozwayland/mozwayland.c b/widget/gtk/mozwayland/mozwayland.c
+--- a/widget/gtk/mozwayland/mozwayland.c
++++ b/widget/gtk/mozwayland/mozwayland.c
+@@ -200,3 +200,10 @@
+ 
+ MOZ_EXPORT void wl_list_insert_list(struct wl_list* list,
+                                     struct wl_list* other) {}
++
++MOZ_EXPORT struct wl_proxy* wl_proxy_marshal_flags(
++    struct wl_proxy* proxy, uint32_t opcode,
++    const struct wl_interface* interface, uint32_t version, uint32_t flags,
++    ...) {
++  return NULL;
++}
+
diff -r c384af864671 -r 7481543bab31 mozilla-kde.patch
--- a/mozilla-kde.patch	Sat Dec 04 11:19:16 2021 +0100
+++ b/mozilla-kde.patch	Sat Jan 08 10:41:19 2022 +0100
@@ -3,7 +3,7 @@
 # Date 1559294891 -7200
 #      Fri May 31 11:28:11 2019 +0200
 # Node ID c2aa7198fb925e7fde96abf65b6f68b9b755f112
-# Parent  9eb4df0e07175ce38fc6699b2b8544b9eda7f0ad
+# Parent  d065e5213c971b1f80d4a13458c412a3a25f7c1c
 Description: Add KDE integration to Firefox (toolkit parts)
 Author: Wolfgang Rosenauer 
 Author: Lubos Lunak 
@@ -31,7 +31,7 @@
  #ifdef MOZ_MEMORY
  #  include "mozmemory.h"
  #endif
-@@ -4634,16 +4635,27 @@ nsresult Preferences::InitInitialObjects
+@@ -4635,16 +4636,27 @@ nsresult Preferences::InitInitialObjects
      "unix.js"
  #  if defined(_AIX)
      ,
@@ -59,7 +59,7 @@
  
    // Load jar:$app/omni.jar!/defaults/preferences/*.js
    // or jar:$gre/omni.jar!/defaults/preferences/*.js.
-@@ -4708,17 +4720,17 @@ nsresult Preferences::InitInitialObjects
+@@ -4709,17 +4721,17 @@ nsresult Preferences::InitInitialObjects
        }
  
        nsCOMPtr path = do_QueryInterface(elem);
@@ -346,7 +346,7 @@
 diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build
 --- a/toolkit/xre/moz.build
 +++ b/toolkit/xre/moz.build
-@@ -91,17 +91,19 @@ elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "co
+@@ -92,17 +92,19 @@ elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "co
          "../components/printingui",
      ]
  elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "uikit":
@@ -360,12 +360,12 @@
 +        "nsKDEUtils.cpp",
          "nsNativeAppSupportUnix.cpp",
      ]
+     CXXFLAGS += CONFIG["MOZ_X11_SM_CFLAGS"]
  else:
      UNIFIED_SOURCES += [
          "nsNativeAppSupportDefault.cpp",
      ]
  
- if CONFIG["MOZ_HAS_REMOTE"]:
 diff --git a/toolkit/xre/nsKDEUtils.cpp b/toolkit/xre/nsKDEUtils.cpp
 new file mode 100644
 --- /dev/null
diff -r c384af864671 -r 7481543bab31 mozilla-pgo.patch
--- a/mozilla-pgo.patch	Sat Dec 04 11:19:16 2021 +0100
+++ b/mozilla-pgo.patch	Sat Jan 08 10:41:19 2022 +0100
@@ -1,37 +1,48 @@
 # HG changeset patch
 # User Wolfgang Rosenauer 
-# Parent  ed9681bd4359b83145247fb6b01a56a2c84879fd
+# Parent  066aba2f6d1fbc0fe31d1864d539714041404fe6
 
 diff --git a/build/moz.configure/lto-pgo.configure b/build/moz.configure/lto-pgo.configure
 --- a/build/moz.configure/lto-pgo.configure
 +++ b/build/moz.configure/lto-pgo.configure
-@@ -235,23 +235,23 @@ def lto(
-                 "configure."
-             )
+@@ -243,34 +243,34 @@ def lto(
+             "configure."
+         )
+ 
+     if c_compiler.type == "clang":
+         if value == "full":
+             cflags.append("-flto")
+             ldflags.append("-flto")
+         else:
+-            cflags.append("-flto=thin")
+-            ldflags.append("-flto=thin")
++            cflags.append("-flto")
++            ldflags.append("-flto")
  
-         if c_compiler.type == "clang":
-             if len(value) and value[0].lower() == "full":
-                 cflags.append("-flto")
-                 ldflags.append("-flto")
-             else:
--                cflags.append("-flto=thin")
--                ldflags.append("-flto=thin")
-+                cflags.append("-flto")
-+                ldflags.append("-flto")
-         elif c_compiler.type == "clang-cl":
-             if len(value) and value[0].lower() == "full":
-                 cflags.append("-flto")
-             else:
--                cflags.append("-flto=thin")
-+                cflags.append("-flto")
-             # With clang-cl, -flto can only be used with -c or -fuse-ld=lld.
-             # AC_TRY_LINKs during configure don't have -c, so pass -fuse-ld=lld.
-             cflags.append("-fuse-ld=lld")
+         if target.os == "Android" and value == "cross":
+             # Work around https://github.com/rust-lang/rust/issues/90088
+             # by enabling the highest level of SSE the rust targets default
+             # to.
+             # https://github.com/rust-lang/rust/blob/bdfcb88e8b6203ccb46a2fb6649979b773efc8ac/compiler/rustc_target/src/spec/i686_linux_android.rs#L13
+             # https://github.com/rust-lang/rust/blob/8d1083e319841624f64400e1524805a40d725439/compiler/rustc_target/src/spec/x86_64_linux_android.rs#L7
+             if target.cpu == "x86":
+                 ldflags.append("-Wl,-plugin-opt=-mattr=+ssse3")
+             elif target.cpu == "x86_64":
+                 ldflags.append("-Wl,-plugin-opt=-mattr=+sse4.2")
+     elif c_compiler.type == "clang-cl":
+         if value == "full":
+             cflags.append("-flto")
+         else:
+-            cflags.append("-flto=thin")
++            cflags.append("-flto")
+         # With clang-cl, -flto can only be used with -c or -fuse-ld=lld.
+         # AC_TRY_LINKs during configure don't have -c, so pass -fuse-ld=lld.
+         cflags.append("-fuse-ld=lld")
  
-             # Explicitly set the CPU to optimize for so the linker doesn't
-             # choose a poor default.  Rust compilation by default uses the
-             # pentium4 CPU on x86:
-             #
+         # Explicitly set the CPU to optimize for so the linker doesn't
+         # choose a poor default.  Rust compilation by default uses the
+         # pentium4 CPU on x86:
+         #
 diff --git a/build/pgo/profileserver.py b/build/pgo/profileserver.py
 --- a/build/pgo/profileserver.py
 +++ b/build/pgo/profileserver.py
@@ -155,7 +166,7 @@
 diff --git a/toolkit/components/terminator/nsTerminator.cpp b/toolkit/components/terminator/nsTerminator.cpp
 --- a/toolkit/components/terminator/nsTerminator.cpp
 +++ b/toolkit/components/terminator/nsTerminator.cpp
-@@ -451,16 +451,21 @@ void nsTerminator::StartWatchdog() {
+@@ -461,16 +461,21 @@ void nsTerminator::StartWatchdog() {
        // Defend against overflow
        crashAfterMS = INT32_MAX;
      } else {
diff -r c384af864671 -r 7481543bab31 series
--- a/series	Sat Dec 04 11:19:16 2021 +0100
+++ b/series	Sat Jan 08 10:41:19 2022 +0100
@@ -17,15 +17,14 @@
 mozilla-fix-top-level-asm.patch
 mozilla-bmo1504834-part4.patch
 mozilla-bmo849632.patch
-mozilla-bmo1602730.patch
 mozilla-bmo998749.patch
 mozilla-bmo1626236.patch
 mozilla-s390x-skia-gradient.patch
 mozilla-libavcodec58_91.patch
 mozilla-silence-no-return-type.patch
-mozilla-bmo1725828.patch
 mozilla-bmo531915.patch
-mozilla-bmo1729124.patch
+mozilla-bmo1745560.patch
+mozilla-bmo1744896.patch
 
 # Firefox patches
 firefox-kde.patch