sm-commit AT lists.ibiblio.org
Subject: Source Mage code commit list
List archive
[[SM-Commit] ] GIT changes to master grimoire by Pavel Vinogradov (57f81b722e432ddbd29abe7948eda9c7bc0bae52)
- From: Pavel Vinogradov <scm AT sourcemage.org>
- To: sm-commit AT lists.ibiblio.org, sm-commit AT lists.sourcemage.org
- Subject: [[SM-Commit] ] GIT changes to master grimoire by Pavel Vinogradov (57f81b722e432ddbd29abe7948eda9c7bc0bae52)
- Date: Wed, 25 Mar 2026 00:22:23 +0000
GIT changes to master grimoire by Pavel Vinogradov <public AT sourcemage.org>:
http/firefox/HISTORY
| 3
http/firefox/patches-for-musl/0024-bgo-970694-fix-missing-stdint.h-on-musl.patch
| 11
http/firefox/patches-for-musl/0025-bgo-970537-add-missing-header-for-musl.patch
| 12
http/firefox/patches-for-musl/0025-bgo-970694-fix-missing-stdint.h-on-musl.patch
| 11
http/firefox/patches-for-musl/0026-bgo-970537-add-missing-header-for-musl.patch
| 12
http/firefox/patches/0010-gcc-lto-pgo-gentoo.patch
| 13 -
http/firefox/patches/0021-bgo-966424-PR_GetEnv-non-unified-build-fix.patch
| 10
http/firefox/patches/0026-bmo-2022238-revert-bug-2001075-to-avoid-toolbar-freeze.patch
| 127 ++++++++++
8 files changed, 159 insertions(+), 40 deletions(-)
New commits:
commit 57f81b722e432ddbd29abe7948eda9c7bc0bae52
Author: Pavel Vinogradov <public AT sourcemage.org>
Commit: Pavel Vinogradov <public AT sourcemage.org>
http/firefox: updated patches for 149.0
diff --git a/http/firefox/HISTORY b/http/firefox/HISTORY
index 6c4ec6a..9334f58 100644
--- a/http/firefox/HISTORY
+++ b/http/firefox/HISTORY
@@ -1,3 +1,6 @@
+2026-03-24 Pavel Vinogradov <public AT sourcemage.org>
+ * patches/*, patches-for-musl/*: updated
+
2026-03-23 Pavel Vinogradov <public AT sourcemage.org>
* DETAILS: version 149.0, SECURITY_PATCH++
* DEPENDS: nss >= 3.121
diff --git
a/http/firefox/patches-for-musl/0024-bgo-970694-fix-missing-stdint.h-on-musl.patch
b/http/firefox/patches-for-musl/0024-bgo-970694-fix-missing-stdint.h-on-musl.patch
new file mode 100644
index 0000000..15f1abd
--- /dev/null
+++
b/http/firefox/patches-for-musl/0024-bgo-970694-fix-missing-stdint.h-on-musl.patch
@@ -0,0 +1,11 @@
+$ cat /etc/portage/patches/www-client/firefox/missing-stdint.h
+--- a/xpcom/base/nsVersionComparator.h 2026-02-16 13:37:51.000000000 -0500
++++ b/xpcom/base/nsVersionComparator.h 2026-02-28 06:44:50.529920953 -0500
+@@ -10,6 +10,7 @@
+ #ifndef nsVersionComparator_h__
+ #define nsVersionComparator_h__
+
++#include <stdint.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <assert.h>
diff --git
a/http/firefox/patches-for-musl/0025-bgo-970537-add-missing-header-for-musl.patch
b/http/firefox/patches-for-musl/0025-bgo-970537-add-missing-header-for-musl.patch
new file mode 100644
index 0000000..59716d8
--- /dev/null
+++
b/http/firefox/patches-for-musl/0025-bgo-970537-add-missing-header-for-musl.patch
@@ -0,0 +1,12 @@
+diff --git
a/third_party/libwebrtc/modules/desktop_capture/desktop_capturer.h
b/third_party/libwebrtc/modules/desktop_capture/desktop_capturer.h
+index 9b1efa0..a2dbee2 100644
+--- a/third_party/libwebrtc/modules/desktop_capture/desktop_capturer.h
++++ b/third_party/libwebrtc/modules/desktop_capture/desktop_capturer.h
+@@ -17,6 +17,7 @@
+ #include <string>
+ #include <type_traits>
+ #include <vector>
++#include <sys/types.h>
+
+ // TODO(alcooper): Update include usage in downstream consumers and then
change
+ // this to a forward declaration.
diff --git
a/http/firefox/patches-for-musl/0025-bgo-970694-fix-missing-stdint.h-on-musl.patch
b/http/firefox/patches-for-musl/0025-bgo-970694-fix-missing-stdint.h-on-musl.patch
deleted file mode 100644
index 15f1abd..0000000
---
a/http/firefox/patches-for-musl/0025-bgo-970694-fix-missing-stdint.h-on-musl.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-$ cat /etc/portage/patches/www-client/firefox/missing-stdint.h
---- a/xpcom/base/nsVersionComparator.h 2026-02-16 13:37:51.000000000 -0500
-+++ b/xpcom/base/nsVersionComparator.h 2026-02-28 06:44:50.529920953 -0500
-@@ -10,6 +10,7 @@
- #ifndef nsVersionComparator_h__
- #define nsVersionComparator_h__
-
-+#include <stdint.h>
- #include <stdlib.h>
- #include <string.h>
- #include <assert.h>
diff --git
a/http/firefox/patches-for-musl/0026-bgo-970537-add-missing-header-for-musl.patch
b/http/firefox/patches-for-musl/0026-bgo-970537-add-missing-header-for-musl.patch
deleted file mode 100644
index 59716d8..0000000
---
a/http/firefox/patches-for-musl/0026-bgo-970537-add-missing-header-for-musl.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git
a/third_party/libwebrtc/modules/desktop_capture/desktop_capturer.h
b/third_party/libwebrtc/modules/desktop_capture/desktop_capturer.h
-index 9b1efa0..a2dbee2 100644
---- a/third_party/libwebrtc/modules/desktop_capture/desktop_capturer.h
-+++ b/third_party/libwebrtc/modules/desktop_capture/desktop_capturer.h
-@@ -17,6 +17,7 @@
- #include <string>
- #include <type_traits>
- #include <vector>
-+#include <sys/types.h>
-
- // TODO(alcooper): Update include usage in downstream consumers and then
change
- // this to a forward declaration.
diff --git a/http/firefox/patches/0010-gcc-lto-pgo-gentoo.patch
b/http/firefox/patches/0010-gcc-lto-pgo-gentoo.patch
index 3bb116b..581d362 100644
--- a/http/firefox/patches/0010-gcc-lto-pgo-gentoo.patch
+++ b/http/firefox/patches/0010-gcc-lto-pgo-gentoo.patch
@@ -135,11 +135,10 @@ index c346b8574921..f682ef9f2923 100644
DEFINES["NS_NO_XPCOM"] = True
DisableStlWrapping()
-diff --git a/toolkit/components/terminator/nsTerminator.cpp
b/toolkit/components/terminator/nsTerminator.cpp
-index a96b4f3..b8d5ede 100644
---- a/toolkit/components/terminator/nsTerminator.cpp
-+++ b/toolkit/components/terminator/nsTerminator.cpp
-@@ -328,6 +328,11 @@ void nsTerminator::StartWatchdog() {
+diff -up firefox-149.0/toolkit/components/terminator/nsTerminator.cpp.pgo
firefox-149.0/toolkit/components/terminator/nsTerminator.cpp
+--- firefox-149.0/toolkit/components/terminator/nsTerminator.cpp.pgo
2026-03-18 19:54:05.000000000 +0100
++++ firefox-149.0/toolkit/components/terminator/nsTerminator.cpp
2026-03-19 16:01:55.737755729 +0100
+@@ -338,6 +338,11 @@ void nsTerminator::StartWatchdog() {
}
#endif
@@ -149,5 +148,5 @@ index a96b4f3..b8d5ede 100644
+ crashAfterMS = INT32_MAX;
+
UniquePtr<Options> options(new Options());
- // crashAfterTicks is guaranteed to be > 0 as
- // crashAfterMS >= ADDITIONAL_WAIT_BEFORE_CRASH_MS >>
HEARTBEAT_INTERVAL_MS
+ // Guarantee that crashAfterTicks is non-zero
+ options->crashAfterTicks = std::max(1, crashAfterMS /
HEARTBEAT_INTERVAL_MS);
diff --git
a/http/firefox/patches/0021-bgo-966424-PR_GetEnv-non-unified-build-fix.patch
b/http/firefox/patches/0021-bgo-966424-PR_GetEnv-non-unified-build-fix.patch
index 310014c..c78e4c5 100644
---
a/http/firefox/patches/0021-bgo-966424-PR_GetEnv-non-unified-build-fix.patch
+++
b/http/firefox/patches/0021-bgo-966424-PR_GetEnv-non-unified-build-fix.patch
@@ -8,16 +8,6 @@
#include "mozilla/Vector.h"
#include <algorithm>
---- a/toolkit/components/telemetry/pingsender/pingsender.h
-+++ b/toolkit/components/telemetry/pingsender/pingsender.h
-@@ -6,6 +6,7 @@
- #ifndef mozilla_telemetry_pingsender_h
- #define mozilla_telemetry_pingsender_h
-
-+#include <cstdint>
- #include <string>
-
- #ifdef DEBUG
--- a/widget/gtk/WakeLockListener.cpp
+++ b/widget/gtk/WakeLockListener.cpp
@@ -14,6 +14,7 @@
diff --git
a/http/firefox/patches/0026-bmo-2022238-revert-bug-2001075-to-avoid-toolbar-freeze.patch
b/http/firefox/patches/0026-bmo-2022238-revert-bug-2001075-to-avoid-toolbar-freeze.patch
new file mode 100644
index 0000000..3d86868
--- /dev/null
+++
b/http/firefox/patches/0026-bmo-2022238-revert-bug-2001075-to-avoid-toolbar-freeze.patch
@@ -0,0 +1,127 @@
+diff --git a/widget/gtk/nsDragService.h b/widget/gtk/nsDragService.h
+--- a/widget/gtk/nsDragService.h
++++ b/widget/gtk/nsDragService.h
+@@ -328,21 +328,17 @@
+ void SourceBeginDrag(GdkDragContext* aContext);
+
+ // set the drag icon during drag-begin
+ void SetDragIcon(GdkDragContext* aContext);
+
+- void MarkAsActive();
+- bool IsActive() const;
+- RefPtr<GdkDragContext> GetSourceDragContext();
++ void MarkAsActive() { mActive = true; }
++ bool IsActive() const { return mActive; }
+
+ protected:
+ virtual ~nsDragSession();
+
+ private:
+- // Used to cancel initiated D&D operation from nsWindow.
+- RefPtr<GdkDragContext> mSourceDragContext;
+-
+ // target/destination side vars
+ // These variables keep track of the state of the current drag.
+
+ // mCachedDragData/mCachedDragFlavors are tied to mCachedDragContext.
+ // mCachedDragContext is not ref counted and may be already deleted
+@@ -367,10 +363,13 @@
+
+ // source side vars
+
+ // the source of our drags
+ GtkWidget* mHiddenWidget;
++ // Workaround for Bug 1979719. We consider D&D session running only after
++ // first "move" event on Wayland.
++ bool mActive = false;
+
+ // get a list of the sources in gtk's format
+ GtkTargetList* GetSourceList(void);
+
+ // attempts to create a semi-transparent drag image. Returns TRUE if
+diff --git a/widget/gtk/nsDragService.cpp b/widget/gtk/nsDragService.cpp
+--- a/widget/gtk/nsDragService.cpp
++++ b/widget/gtk/nsDragService.cpp
+@@ -562,10 +562,13 @@
+ g_signal_connect(mHiddenWidget, "drag-failed",
+ G_CALLBACK(invisibleSourceDragFailed), this);
+
+ // set up our logging module
+ mTempFileTimerID = 0;
++#ifdef MOZ_X11
++ mActive = widget::GdkIsX11Display();
++#endif
+
+ static std::once_flag onceFlag;
+ std::call_once(onceFlag, [] {
+ sJPEGImageMimeAtom = gdk_atom_intern(kJPEGImageMime, FALSE);
+ sJPGImageMimeAtom = gdk_atom_intern(kJPGImageMime, FALSE);
+@@ -2414,13 +2417,10 @@
+ nsresult rv = transferable->FlavorsTransferableCanImport(flavors);
+ if (NS_FAILED(rv)) {
+ LOGDRAGSERVICE(" FlavorsTransferableCanImport failed!");
+ return;
+ }
+- if (widget::GdkIsWaylandDisplay()) {
+- mSourceDragContext = aContext;
+- }
+
+ for (uint32_t i = 0; i < flavors.Length(); ++i) {
+ if (flavors[i].EqualsLiteral(kFilePromiseDestFilename)) {
+ nsCOMPtr<nsISupports> data;
+ rv = transferable->GetTransferData(kFilePromiseDestFilename,
+@@ -2530,18 +2530,10 @@
+ } else {
+ LOGDRAGSERVICE(" Surface is missing!");
+ }
+ }
+
+-void nsDragSession::MarkAsActive() { mSourceDragContext = nullptr; }
+-
+-bool nsDragSession::IsActive() const { return !!mSourceDragContext; }
+-
+-RefPtr<GdkDragContext> nsDragSession::GetSourceDragContext() {
+- return mSourceDragContext;
+-}
+-
+ static void invisibleSourceDragBegin(GtkWidget* aWidget,
+ GdkDragContext* aContext, gpointer
aData) {
+ LOGDRAGSERVICESTATIC("invisibleSourceDragBegin (%p)", aContext);
+ nsDragSession* dragSession = (nsDragSession*)aData;
+
+diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
+--- a/widget/gtk/nsWindow.cpp
++++ b/widget/gtk/nsWindow.cpp
+@@ -7534,28 +7534,20 @@
+ if (!dragService) {
+ return;
+ }
+ nsCOMPtr<nsIDragSession> currentDragSession =
+ dragService->GetCurrentSession(aWindow);
+-
+- RefPtr<nsDragSession> session =
+- currentDragSession ?
static_cast<nsDragSession*>(currentDragSession.get())
+- : nullptr;
+- if (!session || session->IsActive()) {
++ if (!currentDragSession ||
++ static_cast<nsDragSession*>(currentDragSession.get())->IsActive()) {
+ return;
+ }
+
+ LOGDRAG("WaylandDragWorkaround applied, quit D&D session");
+ NS_WARNING(
+ "Quit unfinished Wayland Drag and Drop operation. Buggy Wayland "
+ "compositor?");
+-
+- nsDragSession::AutoEventLoop loop(session);
+- session->SetCanDrop(false);
+- session->SetDragAction(nsIDragService::DRAGDROP_ACTION_NONE);
+- session->ScheduleDropEvent(aWindow, session->GetSourceDragContext().get(),
+- LayoutDeviceIntPoint(), 0);
++ currentDragSession->EndDragSession(true, 0);
+ }
+
+ static nsWindow* get_window_for_gtk_widget(GtkWidget* widget) {
+ gpointer user_data = g_object_get_data(G_OBJECT(widget), "nsWindow");
+ return static_cast<nsWindow*>(user_data);
+
- [[SM-Commit] ] GIT changes to master grimoire by Pavel Vinogradov (57f81b722e432ddbd29abe7948eda9c7bc0bae52), Pavel Vinogradov, 03/24/2026
Archive powered by MHonArc 2.6.24.