Sync from SUSE:SLFO:Main MozillaFirefox revision ed3d0284bd290721570a04281eac6019
This commit is contained in:
parent
82448b4116
commit
3e6a22a862
@ -1,3 +1,37 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Sep 25 11:30:58 UTC 2024 - Martin Sirringhaus <martin.sirringhaus@suse.com>
|
||||||
|
|
||||||
|
- Firefox Extended Support Release 128.3.0 ESR
|
||||||
|
Placeholder changelog-entry (bsc#1230979)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Sep 9 20:57:49 UTC 2024 - Charles Robertson <cgrobertson@suse.com>
|
||||||
|
|
||||||
|
- Firefox Extended Support Release 128.2.0 ESR
|
||||||
|
* Fixed: Various security fixes and other quality improvements.
|
||||||
|
MFSA 2024-40 (bsc#1229821)
|
||||||
|
* CVE-2024-8385 (bmo#1911909)
|
||||||
|
WASM type confusion involving ArrayTypes
|
||||||
|
* CVE-2024-8381 (bmo#1912715)
|
||||||
|
Type confusion when looking up a property name in a "with"
|
||||||
|
block
|
||||||
|
* CVE-2024-8382 (bmo#1906744)
|
||||||
|
Internal event interfaces were exposed to web content when
|
||||||
|
browser EventHandler listener callbacks ran
|
||||||
|
* CVE-2024-8383 (bmo#1908496)
|
||||||
|
Firefox did not ask before openings news: links in an
|
||||||
|
external application
|
||||||
|
* CVE-2024-8384 (bmo#1911288)
|
||||||
|
Garbage collection could mis-color cross-compartment objects
|
||||||
|
in OOM conditions
|
||||||
|
* CVE-2024-8386 (bmo#1907032, bmo#1909163, bmo#1909529)
|
||||||
|
SelectElements could be shown over another site if popups are
|
||||||
|
allowed
|
||||||
|
* CVE-2024-8387 (bmo#1857607, bmo#1911858, bmo#1914009)
|
||||||
|
Memory safety bugs fixed in Firefox 130, Firefox ESR 128.2,
|
||||||
|
and Thunderbird 128.2
|
||||||
|
- Removed upstreamed patches mozilla-bmo1907511.patch mozilla-bmo1898476.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Jul 31 11:59:32 UTC 2024 - Martin Sirringhaus <martin.sirringhaus@suse.com>
|
Wed Jul 31 11:59:32 UTC 2024 - Martin Sirringhaus <martin.sirringhaus@suse.com>
|
||||||
|
|
||||||
|
@ -29,8 +29,8 @@
|
|||||||
# major 69
|
# major 69
|
||||||
# mainver %%major.99
|
# mainver %%major.99
|
||||||
%define major 128
|
%define major 128
|
||||||
%define mainver %major.1.0
|
%define mainver %major.3.0
|
||||||
%define orig_version 128.1.0
|
%define orig_version 128.3.0
|
||||||
%define orig_suffix esr
|
%define orig_suffix esr
|
||||||
%define update_channel release
|
%define update_channel release
|
||||||
%define branding 1
|
%define branding 1
|
||||||
@ -218,8 +218,6 @@ Patch18: mozilla-silence-no-return-type.patch
|
|||||||
Patch20: one_swizzle_to_rule_them_all.patch
|
Patch20: one_swizzle_to_rule_them_all.patch
|
||||||
Patch21: svg-rendering.patch
|
Patch21: svg-rendering.patch
|
||||||
Patch23: mozilla-rust-disable-future-incompat.patch
|
Patch23: mozilla-rust-disable-future-incompat.patch
|
||||||
Patch24: mozilla-bmo1898476.patch
|
|
||||||
Patch25: mozilla-bmo1907511.patch
|
|
||||||
%if (0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000)
|
%if (0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000)
|
||||||
Patch26: fix-sle12-build-errors.patch
|
Patch26: fix-sle12-build-errors.patch
|
||||||
%endif
|
%endif
|
||||||
|
BIN
firefox-128.1.0esr.source.tar.xz
(Stored with Git LFS)
BIN
firefox-128.1.0esr.source.tar.xz
(Stored with Git LFS)
Binary file not shown.
@ -1,16 +0,0 @@
|
|||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
|
|
||||||
iQIzBAABCgAdFiEErdcHlHlwDcrf3VM34207E/PZMnQFAmar6x4ACgkQ4207E/PZ
|
|
||||||
MnTMmQ//cw6QKvpth9q1vaMBAWW/Mb7Gk/7TvlOScT7eP1z3awzTKhJL/Uf298gH
|
|
||||||
hhhrcBS4tPbrvOuyMgOXwKbSg3e1Q0n5QitD4h7u36iMcnbf+tOyzg4JFcl6UIHM
|
|
||||||
aZ22StpBsRs9SYbxe7Q7/y29iHp825V5R4nPWxJRa+d058U/ppDXXbDJOla+75du
|
|
||||||
YqdgPJyZQJUy140vKWB4WxF/ClwIC8aVffWiLB2dUxNt3snyRMI6bTLr2826Rkwn
|
|
||||||
OBU72Kv6F8DR9ToKz6rjsr8Q/5KfJqf11Cga8S/F7r4hZR1M2MvpN5kNfrV2USVH
|
|
||||||
QxMMRUxmFubWZ6k0O6f35ZGR4ez1U4fI+Dvslvs4gn0FSgAN1meUnc2k6WsMjs9k
|
|
||||||
uvh7G669nBRTWR4LJgo0S4WSNGsEoMhNaV/m7Y4Gz1Y9tYEdYXF9qzUx0SnbMddp
|
|
||||||
ZQOVH2qKm0dWpf9a38A/+7YUVHbQ/IBfJkLXO5yIRNFrU6FT7hMTGfOMz7a1r6W2
|
|
||||||
kkCOIAw5qfY5y/tfB2pCYWLOBZ3CNrev0oJ7mE9J+ZfJDmgEo7UStFGIGXlvequU
|
|
||||||
RgJ2IvZxQlHwTlZpEjdZSDVRb9MhQq4ev6Y+qYrMl2lQ1qQHADby9Nuw+m4mr7A4
|
|
||||||
yX636jUM3jxDQZDmDJa++OjHOrnezelpSexMzeCMc/GEfrTHcHc=
|
|
||||||
=j9HX
|
|
||||||
-----END PGP SIGNATURE-----
|
|
BIN
firefox-128.3.0esr.source.tar.xz
(Stored with Git LFS)
Normal file
BIN
firefox-128.3.0esr.source.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
16
firefox-128.3.0esr.source.tar.xz.asc
Normal file
16
firefox-128.3.0esr.source.tar.xz.asc
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQIzBAABCgAdFiEErdcHlHlwDcrf3VM34207E/PZMnQFAmbxkrMACgkQ4207E/PZ
|
||||||
|
MnQ8khAA0WUg/6Ykv2Mbxq1840nUwoTqBy2OMyqCR4kuqHVJlKIbTn8U1Fqde4RS
|
||||||
|
qwgqkQ+eJUk6IAG/32KBZWJHsTFTUs+D0GYB+xqJnFGHDBcaK9IdvQz7SIIqzJUu
|
||||||
|
MlAqqbQm/vXfrVqjyIEvvG9dIaYVe85L3/KKGDcHQOSMGZxsTX/MvqOMMjGH7J6w
|
||||||
|
/kTFVjMcbrpjs1w1ovDtanNe66JNvuEnR5mdLvXa9o7Dg90ujJxq1jC/Z6h7A17f
|
||||||
|
lsey0v+7nbUBINhdiFNgg3HBlm6aj4axghd4SkEKB1Vb4eCZmlzqY0JgKY6Xw8FM
|
||||||
|
w9kKPAntGMaUXlSn0yR+XFlrwngTpi48+Ljgi/SxnKEGGOnWOj8XPpx0uxiRrIfp
|
||||||
|
xNpK/rDUT+5EEFkap7Prr0huIBzYE50H/JKx8hVIwHQFbPe/oLZE1IAwepG8wcxv
|
||||||
|
HQuYcYh+L+LG1uKqdLSlMi5EmLizobU0JWw+t989eR6wEPAyp5w+FZmYdNt9dgrk
|
||||||
|
33nc72RdaCFmkDOpF++uLf8I/s4hrpIEQ4DU5XHnaHdUFg0W7B6/BR7d1YACljHs
|
||||||
|
CkNm3XKcgYJJBeKHEskU5NozMpBbDC0OoXNzgGwpT1z2AmvsCI7JdAHTgSflTXe7
|
||||||
|
wX/7t30hbGGzFdC9fJ6ZqUsC7EmZzPtpDmY5XI50yx9uZL32rhk=
|
||||||
|
=1kCT
|
||||||
|
-----END PGP SIGNATURE-----
|
BIN
l10n-128.1.0esr.tar.xz
(Stored with Git LFS)
BIN
l10n-128.1.0esr.tar.xz
(Stored with Git LFS)
Binary file not shown.
BIN
l10n-128.3.0esr.tar.xz
(Stored with Git LFS)
Normal file
BIN
l10n-128.3.0esr.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -1,401 +0,0 @@
|
|||||||
|
|
||||||
# HG changeset patch
|
|
||||||
# User stransky <stransky@redhat.com>
|
|
||||||
# Date 1720609192 0
|
|
||||||
# Node ID f9323daf7abeb19f69ac5762a0a442c0dc15636e
|
|
||||||
# Parent 5afadee4e18fc5779d789d9371a3d2d67a29d1da
|
|
||||||
Bug 1898476 [Wayland] Move MozContainerSurfaceLock from MozContainerWayland to MozContainerSurfaceLock module r=emilio
|
|
||||||
|
|
||||||
Differential Revision: https://phabricator.services.mozilla.com/D214883
|
|
||||||
|
|
||||||
diff --git a/widget/gtk/MozContainerSurfaceLock.cpp b/widget/gtk/MozContainerSurfaceLock.cpp
|
|
||||||
new file mode 100644
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/widget/gtk/MozContainerSurfaceLock.cpp
|
|
||||||
@@ -0,0 +1,31 @@
|
|
||||||
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
||||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
||||||
+
|
|
||||||
+#include "MozContainerSurfaceLock.h"
|
|
||||||
+#include "MozContainer.h"
|
|
||||||
+#include "WidgetUtilsGtk.h"
|
|
||||||
+
|
|
||||||
+using namespace mozilla::widget;
|
|
||||||
+
|
|
||||||
+MozContainerSurfaceLock::MozContainerSurfaceLock(MozContainer* aContainer) {
|
|
||||||
+#ifdef MOZ_WAYLAND
|
|
||||||
+ mContainer = aContainer;
|
|
||||||
+ if (GdkIsWaylandDisplay()) {
|
|
||||||
+ // mSurface can be nullptr if we lock hidden MozContainer and
|
|
||||||
+ // that's correct, MozContainer is still locked.
|
|
||||||
+ mSurface = moz_container_wayland_surface_lock(aContainer);
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+MozContainerSurfaceLock::~MozContainerSurfaceLock() {
|
|
||||||
+#ifdef MOZ_WAYLAND
|
|
||||||
+ if (GdkIsWaylandDisplay()) {
|
|
||||||
+ moz_container_wayland_surface_unlock(mContainer, &mSurface);
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+struct wl_surface* MozContainerSurfaceLock::GetSurface() { return mSurface; }
|
|
||||||
diff --git a/widget/gtk/MozContainerSurfaceLock.h b/widget/gtk/MozContainerSurfaceLock.h
|
|
||||||
new file mode 100644
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/widget/gtk/MozContainerSurfaceLock.h
|
|
||||||
@@ -0,0 +1,28 @@
|
|
||||||
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
||||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
||||||
+
|
|
||||||
+#ifndef widget_gtk_MozContainerSurfaceLock_h
|
|
||||||
+#define widget_gtk_MozContainerSurfaceLock_h
|
|
||||||
+
|
|
||||||
+struct wl_surface;
|
|
||||||
+struct _MozContainer;
|
|
||||||
+typedef struct _MozContainer MozContainer;
|
|
||||||
+
|
|
||||||
+class MozContainerSurfaceLock {
|
|
||||||
+ public:
|
|
||||||
+ explicit MozContainerSurfaceLock(MozContainer* aContainer);
|
|
||||||
+ ~MozContainerSurfaceLock();
|
|
||||||
+
|
|
||||||
+ // wl_surface can be nullptr if we lock hidden MozContainer.
|
|
||||||
+ struct wl_surface* GetSurface();
|
|
||||||
+
|
|
||||||
+ private:
|
|
||||||
+#ifdef MOZ_WAYLAND
|
|
||||||
+ MozContainer* mContainer = nullptr;
|
|
||||||
+#endif
|
|
||||||
+ struct wl_surface* mSurface = nullptr;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+#endif // widget_gtk_MozContainerSurfaceLock_h
|
|
||||||
diff --git a/widget/gtk/MozContainerWayland.cpp b/widget/gtk/MozContainerWayland.cpp
|
|
||||||
--- a/widget/gtk/MozContainerWayland.cpp
|
|
||||||
+++ b/widget/gtk/MozContainerWayland.cpp
|
|
||||||
@@ -82,33 +82,16 @@ using namespace mozilla;
|
|
||||||
using namespace mozilla::widget;
|
|
||||||
|
|
||||||
static bool moz_container_wayland_surface_create_locked(
|
|
||||||
const MutexAutoLock& aProofOfLock, MozContainer* container);
|
|
||||||
static void moz_container_wayland_set_opaque_region_locked(
|
|
||||||
const MutexAutoLock& aProofOfLock, MozContainer* container,
|
|
||||||
const LayoutDeviceIntRegion&);
|
|
||||||
|
|
||||||
-// Lock mozcontainer and get wayland surface of it. You need to pair with
|
|
||||||
-// moz_container_wayland_surface_unlock() even
|
|
||||||
-// if moz_container_wayland_surface_lock() fails and returns nullptr.
|
|
||||||
-static struct wl_surface* moz_container_wayland_surface_lock(
|
|
||||||
- MozContainer* container);
|
|
||||||
-static void moz_container_wayland_surface_unlock(MozContainer* container,
|
|
||||||
- struct wl_surface** surface);
|
|
||||||
-
|
|
||||||
-MozContainerSurfaceLock::MozContainerSurfaceLock(MozContainer* aContainer) {
|
|
||||||
- mContainer = aContainer;
|
|
||||||
- mSurface = moz_container_wayland_surface_lock(aContainer);
|
|
||||||
-}
|
|
||||||
-MozContainerSurfaceLock::~MozContainerSurfaceLock() {
|
|
||||||
- moz_container_wayland_surface_unlock(mContainer, &mSurface);
|
|
||||||
-}
|
|
||||||
-struct wl_surface* MozContainerSurfaceLock::GetSurface() { return mSurface; }
|
|
||||||
-
|
|
||||||
// Invalidate gtk wl_surface to commit changes to wl_subsurface.
|
|
||||||
// wl_subsurface changes are effective when parent surface is commited.
|
|
||||||
static void moz_container_wayland_invalidate(MozContainer* container) {
|
|
||||||
LOGWAYLAND("moz_container_wayland_invalidate [%p]\n",
|
|
||||||
(void*)moz_container_get_nsWindow(container));
|
|
||||||
|
|
||||||
GdkWindow* window = gtk_widget_get_window(GTK_WIDGET(container));
|
|
||||||
if (!window) {
|
|
||||||
diff --git a/widget/gtk/MozContainerWayland.h b/widget/gtk/MozContainerWayland.h
|
|
||||||
--- a/widget/gtk/MozContainerWayland.h
|
|
||||||
+++ b/widget/gtk/MozContainerWayland.h
|
|
||||||
@@ -8,16 +8,17 @@
|
|
||||||
#ifndef __MOZ_CONTAINER_WAYLAND_H__
|
|
||||||
#define __MOZ_CONTAINER_WAYLAND_H__
|
|
||||||
|
|
||||||
#include <gtk/gtk.h>
|
|
||||||
#include <functional>
|
|
||||||
#include <vector>
|
|
||||||
#include "mozilla/Mutex.h"
|
|
||||||
#include "WindowSurface.h"
|
|
||||||
+#include "MozContainerSurfaceLock.h"
|
|
||||||
|
|
||||||
/*
|
|
||||||
* MozContainer
|
|
||||||
*
|
|
||||||
* This class serves three purposes in the nsIWidget implementation.
|
|
||||||
*
|
|
||||||
* - It provides objects to receive signals from GTK for events on native
|
|
||||||
* windows.
|
|
||||||
@@ -56,25 +57,22 @@ struct MozContainerWayland {
|
|
||||||
mozilla::Mutex container_lock{"MozContainerWayland::container_lock"};
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _MozContainer;
|
|
||||||
struct _MozContainerClass;
|
|
||||||
typedef struct _MozContainer MozContainer;
|
|
||||||
typedef struct _MozContainerClass MozContainerClass;
|
|
||||||
|
|
||||||
-class MozContainerSurfaceLock {
|
|
||||||
- MozContainer* mContainer;
|
|
||||||
- struct wl_surface* mSurface;
|
|
||||||
-
|
|
||||||
- public:
|
|
||||||
- explicit MozContainerSurfaceLock(MozContainer* aContainer);
|
|
||||||
- ~MozContainerSurfaceLock();
|
|
||||||
- struct wl_surface* GetSurface();
|
|
||||||
-};
|
|
||||||
+// Lock mozcontainer and get wayland surface of it. You need to pair with
|
|
||||||
+// moz_container_wayland_surface_unlock() even
|
|
||||||
+// if moz_container_wayland_surface_lock() fails and returns nullptr.
|
|
||||||
+struct wl_surface* moz_container_wayland_surface_lock(MozContainer* container);
|
|
||||||
+void moz_container_wayland_surface_unlock(MozContainer* container,
|
|
||||||
+ struct wl_surface** surface);
|
|
||||||
|
|
||||||
void moz_container_wayland_map(GtkWidget*);
|
|
||||||
gboolean moz_container_wayland_map_event(GtkWidget*, GdkEventAny*);
|
|
||||||
void moz_container_wayland_size_allocate(GtkWidget*, GtkAllocation*);
|
|
||||||
void moz_container_wayland_unmap(GtkWidget*);
|
|
||||||
|
|
||||||
struct wl_egl_window* moz_container_wayland_get_egl_window(
|
|
||||||
MozContainer* container, double scale);
|
|
||||||
diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build
|
|
||||||
--- a/widget/gtk/moz.build
|
|
||||||
+++ b/widget/gtk/moz.build
|
|
||||||
@@ -28,16 +28,17 @@ if CONFIG["MOZ_WAYLAND"]:
|
|
||||||
if CONFIG["MOZ_ENABLE_VAAPI"]:
|
|
||||||
DIRS += ["vaapitest"]
|
|
||||||
|
|
||||||
if CONFIG["MOZ_ENABLE_V4L2"]:
|
|
||||||
DIRS += ["v4l2test"]
|
|
||||||
|
|
||||||
EXPORTS += [
|
|
||||||
"MozContainer.h",
|
|
||||||
+ "MozContainerSurfaceLock.h",
|
|
||||||
"nsGTKToolkit.h",
|
|
||||||
"nsGtkUtils.h",
|
|
||||||
"nsImageToPixbuf.h",
|
|
||||||
]
|
|
||||||
|
|
||||||
EXPORTS.mozilla += [
|
|
||||||
"GfxInfo.h",
|
|
||||||
"GfxInfoUtils.h",
|
|
||||||
@@ -66,16 +67,17 @@ UNIFIED_SOURCES += [
|
|
||||||
"DMABufLibWrapper.cpp",
|
|
||||||
"DMABufSurface.cpp",
|
|
||||||
"GfxInfo.cpp",
|
|
||||||
"gtk3drawing.cpp",
|
|
||||||
"GtkCompositorWidget.cpp",
|
|
||||||
"IMContextWrapper.cpp",
|
|
||||||
"InProcessGtkCompositorWidget.cpp",
|
|
||||||
"MozContainer.cpp",
|
|
||||||
+ "MozContainerSurfaceLock.cpp",
|
|
||||||
"MPRISServiceHandler.cpp",
|
|
||||||
"NativeKeyBindings.cpp",
|
|
||||||
"NativeMenuGtk.cpp",
|
|
||||||
"NativeMenuSupport.cpp",
|
|
||||||
"nsApplicationChooser.cpp",
|
|
||||||
"nsAppShell.cpp",
|
|
||||||
"nsBidiKeyboard.cpp",
|
|
||||||
"nsClipboard.cpp",
|
|
||||||
@@ -109,16 +111,17 @@ if CONFIG["MOZ_WAYLAND"]:
|
|
||||||
UNIFIED_SOURCES += [
|
|
||||||
"MozContainerWayland.cpp",
|
|
||||||
"nsClipboardWayland.cpp",
|
|
||||||
"nsWaylandDisplay.cpp",
|
|
||||||
"WaylandBuffer.cpp",
|
|
||||||
"WindowSurfaceWaylandMultiBuffer.cpp",
|
|
||||||
]
|
|
||||||
EXPORTS.mozilla.widget += [
|
|
||||||
+ "MozContainerSurfaceLock.h",
|
|
||||||
"MozContainerWayland.h",
|
|
||||||
"nsWaylandDisplay.h",
|
|
||||||
"WaylandBuffer.h",
|
|
||||||
]
|
|
||||||
|
|
||||||
if CONFIG["MOZ_X11"]:
|
|
||||||
UNIFIED_SOURCES += [
|
|
||||||
"nsClipboardX11.cpp",
|
|
||||||
|
|
||||||
|
|
||||||
# HG changeset patch
|
|
||||||
# User stransky <stransky@redhat.com>
|
|
||||||
# Date 1720609193 0
|
|
||||||
# Node ID a264ff9e9f6f87ca0520a884b29c4be90001533e
|
|
||||||
# Parent f9323daf7abeb19f69ac5762a0a442c0dc15636e
|
|
||||||
Bug 1898476 [Wayland] Provide surface lock by GtkCompositorWidget r=emilio
|
|
||||||
|
|
||||||
Depends on D214883
|
|
||||||
|
|
||||||
Differential Revision: https://phabricator.services.mozilla.com/D214884
|
|
||||||
|
|
||||||
diff --git a/widget/gtk/GtkCompositorWidget.cpp b/widget/gtk/GtkCompositorWidget.cpp
|
|
||||||
--- a/widget/gtk/GtkCompositorWidget.cpp
|
|
||||||
+++ b/widget/gtk/GtkCompositorWidget.cpp
|
|
||||||
@@ -206,10 +206,14 @@ void GtkCompositorWidget::SetRenderingSu
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef MOZ_LOGGING
|
|
||||||
bool GtkCompositorWidget::IsPopup() {
|
|
||||||
return mWidget ? mWidget->IsPopup() : false;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+UniquePtr<MozContainerSurfaceLock> GtkCompositorWidget::LockSurface() {
|
|
||||||
+ return mWidget->LockSurface();
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
} // namespace widget
|
|
||||||
} // namespace mozilla
|
|
||||||
diff --git a/widget/gtk/GtkCompositorWidget.h b/widget/gtk/GtkCompositorWidget.h
|
|
||||||
--- a/widget/gtk/GtkCompositorWidget.h
|
|
||||||
+++ b/widget/gtk/GtkCompositorWidget.h
|
|
||||||
@@ -5,16 +5,18 @@
|
|
||||||
|
|
||||||
#ifndef widget_gtk_GtkCompositorWidget_h
|
|
||||||
#define widget_gtk_GtkCompositorWidget_h
|
|
||||||
|
|
||||||
#include "GLDefs.h"
|
|
||||||
#include "mozilla/DataMutex.h"
|
|
||||||
#include "mozilla/widget/CompositorWidget.h"
|
|
||||||
#include "WindowSurfaceProvider.h"
|
|
||||||
+#include "mozilla/UniquePtr.h"
|
|
||||||
+#include "MozContainerSurfaceLock.h"
|
|
||||||
|
|
||||||
class nsIWidget;
|
|
||||||
class nsWindow;
|
|
||||||
|
|
||||||
namespace mozilla {
|
|
||||||
|
|
||||||
namespace layers {
|
|
||||||
class NativeLayerRootWayland;
|
|
||||||
@@ -91,16 +93,18 @@ class GtkCompositorWidget : public Compo
|
|
||||||
RefPtr<mozilla::layers::NativeLayerRoot> GetNativeLayerRoot() override;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// PlatformCompositorWidgetDelegate Overrides
|
|
||||||
|
|
||||||
void NotifyClientSizeChanged(const LayoutDeviceIntSize& aClientSize) override;
|
|
||||||
GtkCompositorWidget* AsGtkCompositorWidget() override { return this; }
|
|
||||||
|
|
||||||
+ UniquePtr<MozContainerSurfaceLock> LockSurface();
|
|
||||||
+
|
|
||||||
private:
|
|
||||||
#if defined(MOZ_WAYLAND)
|
|
||||||
void ConfigureWaylandBackend();
|
|
||||||
#endif
|
|
||||||
#if defined(MOZ_X11)
|
|
||||||
void ConfigureX11Backend(Window aXWindow, bool aShaped);
|
|
||||||
#endif
|
|
||||||
#ifdef MOZ_LOGGING
|
|
||||||
diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
|
|
||||||
--- a/widget/gtk/nsWindow.cpp
|
|
||||||
+++ b/widget/gtk/nsWindow.cpp
|
|
||||||
@@ -10271,8 +10271,15 @@ void nsWindow::SetDragSource(GdkDragCont
|
|
||||||
mSourceDragContext = aSourceDragContext;
|
|
||||||
if (IsPopup() &&
|
|
||||||
(widget::GdkIsWaylandDisplay() || widget::IsXWaylandProtocol())) {
|
|
||||||
if (auto* menuPopupFrame = GetMenuPopupFrame(GetFrame())) {
|
|
||||||
menuPopupFrame->SetIsDragSource(!!aSourceDragContext);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+UniquePtr<MozContainerSurfaceLock> nsWindow::LockSurface() {
|
|
||||||
+ if (mIsDestroyed) {
|
|
||||||
+ return nullptr;
|
|
||||||
+ }
|
|
||||||
+ return MakeUnique<MozContainerSurfaceLock>(mContainer);
|
|
||||||
+}
|
|
||||||
diff --git a/widget/gtk/nsWindow.h b/widget/gtk/nsWindow.h
|
|
||||||
--- a/widget/gtk/nsWindow.h
|
|
||||||
+++ b/widget/gtk/nsWindow.h
|
|
||||||
@@ -8,16 +8,17 @@
|
|
||||||
#ifndef __nsWindow_h__
|
|
||||||
#define __nsWindow_h__
|
|
||||||
|
|
||||||
#include <gdk/gdk.h>
|
|
||||||
#include <gtk/gtk.h>
|
|
||||||
|
|
||||||
#include "CompositorWidget.h"
|
|
||||||
#include "MozContainer.h"
|
|
||||||
+#include "MozContainerSurfaceLock.h"
|
|
||||||
#include "VsyncSource.h"
|
|
||||||
#include "mozilla/EventForwards.h"
|
|
||||||
#include "mozilla/Maybe.h"
|
|
||||||
#include "mozilla/RefPtr.h"
|
|
||||||
#include "mozilla/TouchEvents.h"
|
|
||||||
#include "mozilla/UniquePtr.h"
|
|
||||||
#include "mozilla/RWLock.h"
|
|
||||||
#include "mozilla/widget/WindowSurface.h"
|
|
||||||
@@ -416,16 +417,18 @@ class nsWindow final : public nsBaseWidg
|
|
||||||
static bool TitlebarUseShapeMask();
|
|
||||||
bool IsRemoteContent() { return HasRemoteContent(); }
|
|
||||||
void NativeMoveResizeWaylandPopupCallback(const GdkRectangle* aFinalSize,
|
|
||||||
bool aFlippedX, bool aFlippedY);
|
|
||||||
static bool IsToplevelWindowTransparent();
|
|
||||||
|
|
||||||
static nsWindow* GetFocusedWindow();
|
|
||||||
|
|
||||||
+ mozilla::UniquePtr<MozContainerSurfaceLock> LockSurface();
|
|
||||||
+
|
|
||||||
#ifdef MOZ_WAYLAND
|
|
||||||
// Use xdg-activation protocol to transfer focus from gFocusWindow to aWindow.
|
|
||||||
static void TransferFocusToWaylandWindow(nsWindow* aWindow);
|
|
||||||
void FocusWaylandWindow(const char* aTokenID);
|
|
||||||
|
|
||||||
bool GetCSDDecorationOffset(int* aDx, int* aDy);
|
|
||||||
bool SetEGLNativeWindowSize(const LayoutDeviceIntSize& aEGLWindowSize);
|
|
||||||
void WaylandDragWorkaround(GdkEventButton* aEvent);
|
|
||||||
|
|
||||||
|
|
||||||
# HG changeset patch
|
|
||||||
# User stransky <stransky@redhat.com>
|
|
||||||
# Date 1720609193 0
|
|
||||||
# Node ID eb230ecdf8eb26a9ed340873b58fe7b71f94f8e8
|
|
||||||
# Parent a264ff9e9f6f87ca0520a884b29c4be90001533e
|
|
||||||
Bug 1898476 [Wayland] Lock Wayland surface before Swap buffers in RenderCompositorEGL r=emilio
|
|
||||||
|
|
||||||
Depends on D214884
|
|
||||||
|
|
||||||
Differential Revision: https://phabricator.services.mozilla.com/D214885
|
|
||||||
|
|
||||||
diff --git a/gfx/webrender_bindings/RenderCompositorEGL.cpp b/gfx/webrender_bindings/RenderCompositorEGL.cpp
|
|
||||||
--- a/gfx/webrender_bindings/RenderCompositorEGL.cpp
|
|
||||||
+++ b/gfx/webrender_bindings/RenderCompositorEGL.cpp
|
|
||||||
@@ -149,16 +149,26 @@ RenderedFrameId RenderCompositorEGL::End
|
|
||||||
const auto width = right - left;
|
|
||||||
const auto height = bottom - top;
|
|
||||||
|
|
||||||
bufferInvalid.OrWith(
|
|
||||||
gfx::IntRect(left, (GetBufferSize().height - bottom), width, height));
|
|
||||||
}
|
|
||||||
gl()->SetDamage(bufferInvalid);
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#ifdef MOZ_WIDGET_GTK
|
|
||||||
+ // Rendering on Wayland has to be atomic (buffer attach + commit) and
|
|
||||||
+ // wayland surface is also used by main thread so lock it before
|
|
||||||
+ // we paint at SwapBuffers().
|
|
||||||
+ UniquePtr<MozContainerSurfaceLock> lock;
|
|
||||||
+ if (auto* gtkWidget = mWidget->AsGTK()) {
|
|
||||||
+ lock = gtkWidget->LockSurface();
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
gl()->SwapBuffers();
|
|
||||||
return frameId;
|
|
||||||
}
|
|
||||||
|
|
||||||
void RenderCompositorEGL::Pause() { DestroyEGLSurface(); }
|
|
||||||
|
|
||||||
bool RenderCompositorEGL::Resume() {
|
|
||||||
if (kIsAndroid) {
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
|||||||
|
|
||||||
# HG changeset patch
|
|
||||||
# User stransky <stransky@redhat.com>
|
|
||||||
# Date 1720807971 0
|
|
||||||
# Node ID d8a0164db5db7090fd7549b03dd0391f7151649c
|
|
||||||
# Parent e243955016ffa880296b8d82cf531887dfb3ac22
|
|
||||||
Bug 1907511 [Linux/X11] Check mWindow at GtkCompositorWidget::LockSurface() r=emilio
|
|
||||||
|
|
||||||
Differential Revision: https://phabricator.services.mozilla.com/D216380
|
|
||||||
|
|
||||||
diff --git a/widget/gtk/GtkCompositorWidget.cpp b/widget/gtk/GtkCompositorWidget.cpp
|
|
||||||
--- a/widget/gtk/GtkCompositorWidget.cpp
|
|
||||||
+++ b/widget/gtk/GtkCompositorWidget.cpp
|
|
||||||
@@ -207,13 +207,13 @@ void GtkCompositorWidget::SetRenderingSu
|
|
||||||
|
|
||||||
#ifdef MOZ_LOGGING
|
|
||||||
bool GtkCompositorWidget::IsPopup() {
|
|
||||||
return mWidget ? mWidget->IsPopup() : false;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
UniquePtr<MozContainerSurfaceLock> GtkCompositorWidget::LockSurface() {
|
|
||||||
- return mWidget->LockSurface();
|
|
||||||
+ return mWidget ? mWidget->LockSurface() : nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace widget
|
|
||||||
} // namespace mozilla
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
|||||||
PRODUCT="firefox"
|
PRODUCT="firefox"
|
||||||
CHANNEL="release"
|
CHANNEL="release"
|
||||||
VERSION="128.1.0"
|
VERSION="128.3.0"
|
||||||
VERSION_SUFFIX="esr"
|
VERSION_SUFFIX="esr"
|
||||||
PREV_VERSION="128.0"
|
PREV_VERSION="128.2.0"
|
||||||
PREV_VERSION_SUFFIX="esr"
|
PREV_VERSION_SUFFIX="esr"
|
||||||
#SKIP_LOCALES="" # Uncomment to skip l10n and compare-locales-generation
|
#SKIP_LOCALES="" # Uncomment to skip l10n and compare-locales-generation
|
||||||
RELEASE_REPO="https://hg.mozilla.org/releases/mozilla-esr128"
|
RELEASE_REPO="https://hg.mozilla.org/releases/mozilla-esr128"
|
||||||
RELEASE_TAG="b5f945290d0a97227a9de2c841b6695e40a9f7c2"
|
RELEASE_TAG="e2cb3d9c8cfc18acad7f77add351416dc95b67c4"
|
||||||
RELEASE_TIMESTAMP="20240801161923"
|
RELEASE_TIMESTAMP="20240923123820"
|
||||||
|
Loading…
Reference in New Issue
Block a user