Accepting request 1216799 from GNOME:Factory
OBS-URL: https://build.opensuse.org/request/show/1216799 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/webkit2gtk3?expand=0&rev=204
This commit is contained in:
commit
29921ebfdb
@ -1,84 +0,0 @@
|
||||
From 8fd152326050b81559903682e0767d289adef9cb Mon Sep 17 00:00:00 2001
|
||||
From: Michael Catanzaro <mcatanzaro@redhat.com>
|
||||
Date: Wed, 16 Oct 2024 13:45:39 -0500
|
||||
Subject: [PATCH] REGRESSION(283414@main): [WPE][GTK] Crash in ProcessLauncher
|
||||
socket monitor callback https://bugs.webkit.org/show_bug.cgi?id=281495
|
||||
|
||||
Reviewed by NOBODY (OOPS!).
|
||||
|
||||
The socket monitor callback that I added in 283414@main accidentally
|
||||
deletes itself by calling m_socketMonitor.stop(). This causes the lambda
|
||||
capture to itself be deleted. We can change the socket monitor to wait
|
||||
until the callback has finished before deleting it.
|
||||
|
||||
* Source/WTF/wtf/glib/GSocketMonitor.cpp:
|
||||
(WTF::GSocketMonitor::~GSocketMonitor):
|
||||
(WTF::GSocketMonitor::socketSourceCallback):
|
||||
(WTF::GSocketMonitor::stop):
|
||||
---
|
||||
Source/WTF/wtf/glib/GSocketMonitor.cpp | 21 +++++++++++++++++++--
|
||||
Source/WTF/wtf/glib/GSocketMonitor.h | 2 ++
|
||||
2 files changed, 21 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/Source/WTF/wtf/glib/GSocketMonitor.cpp b/Source/WTF/wtf/glib/GSocketMonitor.cpp
|
||||
index c88ea9f91ca4..f3e31efb5053 100644
|
||||
--- a/Source/WTF/wtf/glib/GSocketMonitor.cpp
|
||||
+++ b/Source/WTF/wtf/glib/GSocketMonitor.cpp
|
||||
@@ -33,6 +33,7 @@ namespace WTF {
|
||||
|
||||
GSocketMonitor::~GSocketMonitor()
|
||||
{
|
||||
+ RELEASE_ASSERT(!m_isExecutingCallback);
|
||||
stop();
|
||||
}
|
||||
|
||||
@@ -40,7 +41,17 @@ gboolean GSocketMonitor::socketSourceCallback(GSocket*, GIOCondition condition,
|
||||
{
|
||||
if (g_cancellable_is_cancelled(monitor->m_cancellable.get()))
|
||||
return G_SOURCE_REMOVE;
|
||||
- return monitor->m_callback(condition);
|
||||
+
|
||||
+ monitor->m_isExecutingCallback = true;
|
||||
+ gboolean result = monitor->m_callback(condition);
|
||||
+ monitor->m_isExecutingCallback = false;
|
||||
+
|
||||
+ if (monitor->m_shouldDestroyCallback) {
|
||||
+ monitor->m_callback = nullptr;
|
||||
+ monitor->m_shouldDestroyCallback = false;
|
||||
+ }
|
||||
+
|
||||
+ return result;
|
||||
}
|
||||
|
||||
void GSocketMonitor::start(GSocket* socket, GIOCondition condition, RunLoop& runLoop, Function<gboolean(GIOCondition)>&& callback)
|
||||
@@ -65,7 +76,13 @@ void GSocketMonitor::stop()
|
||||
m_cancellable = nullptr;
|
||||
g_source_destroy(m_source.get());
|
||||
m_source = nullptr;
|
||||
- m_callback = nullptr;
|
||||
+
|
||||
+ // It's normal to stop the socket monitor from inside its callback.
|
||||
+ // Don't destroy the callback while it's still executing.
|
||||
+ if (m_isExecutingCallback)
|
||||
+ m_shouldDestroyCallback = true;
|
||||
+ else
|
||||
+ m_callback = nullptr;
|
||||
}
|
||||
|
||||
} // namespace WTF
|
||||
diff --git a/Source/WTF/wtf/glib/GSocketMonitor.h b/Source/WTF/wtf/glib/GSocketMonitor.h
|
||||
index 7ec383a6e37c..9393c546b593 100644
|
||||
--- a/Source/WTF/wtf/glib/GSocketMonitor.h
|
||||
+++ b/Source/WTF/wtf/glib/GSocketMonitor.h
|
||||
@@ -51,6 +51,8 @@ private:
|
||||
GRefPtr<GSource> m_source;
|
||||
GRefPtr<GCancellable> m_cancellable;
|
||||
Function<gboolean(GIOCondition)> m_callback;
|
||||
+ bool m_isExecutingCallback { false };
|
||||
+ bool m_shouldDestroyCallback { false };
|
||||
};
|
||||
|
||||
} // namespace WTF
|
||||
--
|
||||
2.46.1
|
||||
|
@ -1,3 +1,22 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Oct 21 15:09:18 UTC 2024 - Michael Gorse <mgorse@suse.com>
|
||||
|
||||
- Update to version 2.46.2:
|
||||
+ Own well-known bus name on a11y bus.
|
||||
+ Improve memory consumption when putImageData is used repeatedly
|
||||
on accelerated canvas.
|
||||
+ Disable cached web process suspension for now to prevent leaks.
|
||||
+ Improve text kerning with different combinations of antialias
|
||||
and hinting settings.
|
||||
+ Destroy all network sessions on process exit.
|
||||
+ Fix visible rectangle calculation when there are animations.
|
||||
+ Fix the build with ENABLE_NOTIFICATIONS=OFF.
|
||||
+ Fix the build with ENABLE_FULLSCREEN_API=OFF.
|
||||
+ Fix the build with ENABLE_WEB_AUDIO=OFF.
|
||||
+ Fix the build on ppc64le.
|
||||
+ Fix several crashes and rendering issues.
|
||||
- Drop bug281495.patch: fixed upstream.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 16 21:49:23 UTC 2024 - Michael Gorse <mgorse@suse.com>
|
||||
|
||||
|
@ -79,7 +79,7 @@ ExclusiveArch: do-not-build
|
||||
%endif
|
||||
|
||||
Name: webkit2%{_gtknamesuffix}
|
||||
Version: 2.46.1
|
||||
Version: 2.46.2
|
||||
Release: 0
|
||||
Summary: Library for rendering web content, GTK+ Port
|
||||
License: BSD-3-Clause AND LGPL-2.0-or-later
|
||||
@ -94,8 +94,6 @@ Source99: webkit2gtk3.keyring
|
||||
Patch0: reproducibility.patch
|
||||
# PATCH-FIX-UPSTREAM bug281492.patch mgorse@suse.com -- fix crash in AccessibilityObjectAtspi::textAttributes.
|
||||
Patch1: bug281492.patch
|
||||
# PATCH-FIX-UPSTREAM bug281495.patch mgorse@suse.com -- Fix crash in ProcessLauncher socket monitor callback.
|
||||
Patch2: bug281495.patch
|
||||
|
||||
BuildRequires: Mesa-libEGL-devel
|
||||
BuildRequires: Mesa-libGL-devel
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2a14faac359aff941d0bc4443eb5537e3702bcaf316b0a129e0e65f3ff8eaac0
|
||||
size 42776840
|
@ -1,16 +0,0 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEEAToBJ6ycZbNP+mJSbBAJtpOXU5MFAmb6Z+AACgkQbBAJtpOX
|
||||
U5NlAw/8CHhuDyRYXXA40eq/bBGdeqKprVXAMPReGMulG7ZPd4qu1eokED7XZCdO
|
||||
HUe/3Mdzppo/B9gqpPuCnb57/e0b6ma1E66bsHCE33+uUxy1n22kT43gsdEO7etZ
|
||||
toVMK/QUMhMEgwfJkXGIW8odIcvoqYKP9C0sMdpdhGbNr+OBRMJmk6eWAAhNP/mj
|
||||
csx3xUpBzCJ5vlDCfinYlOhPm2Bl40QgED6yocaMa6rlt/gOj5ctwr97v9BaU3qG
|
||||
OZKP6o9nOAh5aUbHdyFADg7CMP7opqBMpH+yBg7pqQQ73NnKNw9jPp6shWanOmKk
|
||||
FFSU8QgZu5lSvp/I3cBaSY0+QuQmUBeq1wFSlrKw8YmVZgFspj7i1WVfu4aDFdMQ
|
||||
1VeEG4atsKatS+oeW0h6NGhWjlIYlaKqB6Vylb/fv3/RvaRocSkWEsMikipf6dWX
|
||||
0KuBvf9Jr/6wSA62XuGqIPUxLjbRirGdADVQGqb4Yvk7spok8JnQGdxqixgfbuWc
|
||||
xURun7A3B6S5y4/UHARSmLyXqmO55o6bT1iuIlbzK06rd9AWfA8CgLNUySVsdWzO
|
||||
HHGvLweSeMDS5dlVr4vE0eczUICBtl6TB6A9ydsxTj1TvmgrmDlBVls5XWFK0vcs
|
||||
ErTeBoMPCjYcjD8lqo5O7nr0uDMNHLYlEvaq5t5EYVZergylVPo=
|
||||
=WrNA
|
||||
-----END PGP SIGNATURE-----
|
3
webkitgtk-2.46.2.tar.xz
Normal file
3
webkitgtk-2.46.2.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5aae1c5c0a30d5e9c5831652b6f1bdefc31d75e0ad81cb40185b0aed92ce79b6
|
||||
size 42803728
|
16
webkitgtk-2.46.2.tar.xz.asc
Normal file
16
webkitgtk-2.46.2.tar.xz.asc
Normal file
@ -0,0 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEEAToBJ6ycZbNP+mJSbBAJtpOXU5MFAmcWILAACgkQbBAJtpOX
|
||||
U5PrLhAAj7+VKmBfCV9pHsnla1zxC5O6pkgKhT1N0p/MMY7aKCLRpmGMrc2XEhny
|
||||
i/M5+O9ZIQkzImJ0vgLF3nSFsESPj2t3wljnapEwQtZKw/9KxM3O+A3RA19tKRfj
|
||||
t+16ot/QijHT2k9EcGkdfFeq5SWfTAtwH13Q9LxRH0hmohC7d3s8OVpiVUptVXii
|
||||
R15GsuOj7EmR+QGzVRfbdpBEXGqglEJHJ5qzMFIoCqFbIAilXr6C0NbzED2pbNd2
|
||||
CO8e4Q4FpxPbN2Y9W4P77uoyonc3tJbAUVPKJOcIicAH4ex/e0J8OwLpvRLY7xRp
|
||||
UJczw/PfZ0KWO6rf55h4q0Q7wLCt+wsxdtkP+hinxELKc4eyo/xxsvFMDXA0VBzE
|
||||
c353GC3pg8C0LRXXHXuVxGlRDyjq0RXT3IWMrDyv9SCS9GO0t2FfChc9MCtKrvQE
|
||||
mfS2tzFjfhVamSphl8oj6Nge3W6qHnq9nC3+HbjQBMgHhusIiYEdKPmbNz/beweX
|
||||
xmJReJdX+xmCC3FsWMx2aAjy8NbWZ638ee2Xv0h0Uq9Z7w96WRIqUNb4fvtGk+xe
|
||||
OInQTFp8/d9N54C09AdEQuK3LMnObpuS/VFdIJgMA6ombdmgWYHomLW9AGjpHUpw
|
||||
8vI5KTGf5uaMVmPmu+LTeoF3NGP7hPldMLS50A9zj+C2DijjT1s=
|
||||
=jVoY
|
||||
-----END PGP SIGNATURE-----
|
Loading…
x
Reference in New Issue
Block a user