[webkit-changes] [WebKit/WebKit] 530aeb: Cherry-pick 274137 at main (51e2f83568c5). <bug>
Georges Basile Stavracas Neto
noreply at github.com
Wed Feb 7 03:10:51 PST 2024
Branch: refs/heads/webkitglib/2.42
Home: https://github.com/WebKit/WebKit
Commit: 530aebcff409d721f8af115bbe97ef27f237976c
https://github.com/WebKit/WebKit/commit/530aebcff409d721f8af115bbe97ef27f237976c
Author: Patrick Griffis <pgriffis at igalia.com>
Date: 2024-02-07 (Wed, 07 Feb 2024)
Changed paths:
M Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
Log Message:
-----------
Cherry-pick 274137 at main (51e2f83568c5). <bug>
Unreviewed, [GLib] Fix incorrect format string
%lu is incorrect on some platforms. PRIu64 is defined for this.
* Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp:
(WebKit::bubblewrapSpawn):
Canonical link: https://commits.webkit.org/274137@main
Commit: 1ddd227e1a05a0962c9a35f18b1c905fc46cc6f7
https://github.com/WebKit/WebKit/commit/1ddd227e1a05a0962c9a35f18b1c905fc46cc6f7
Author: Philippe Normand <philn at igalia.com>
Date: 2024-02-07 (Wed, 07 Feb 2024)
Changed paths:
M Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
Log Message:
-----------
Cherry-pick 274144 at main (cafc9b17f1fa). https://bugs.webkit.org/show_bug.cgi?id=268759
[GStreamer] BubblewrapLauncher sandbox lacks directory for the gstreamer user registry cache directory
https://bugs.webkit.org/show_bug.cgi?id=268759
Reviewed by Michael Catanzaro.
Grant read-write access in the default GStreamer registry path within the WebProcess sandbox. This
is safe because the GStreamer registry file format is binary and the file is not executable. The
internal GStreamer code responsible for loading this file is able to handle parsing errors.
For additional context, the registry file stores informations about the plugins available on the
system, so that the plugin scanner doesn't need to rescan plugins every time GStreamer is
initialized.
* Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp:
(WebKit::bindGStreamerData):
Canonical link: https://commits.webkit.org/274144@main
Commit: 3d84c943bcb6e1f6c4dcc46ed52449ba3892a134
https://github.com/WebKit/WebKit/commit/3d84c943bcb6e1f6c4dcc46ed52449ba3892a134
Author: Michael Catanzaro <mcatanzaro at redhat.com>
Date: 2024-02-07 (Wed, 07 Feb 2024)
Changed paths:
M Source/WebKit/UIProcess/API/gtk/PageClientImpl.cpp
M Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp
M Source/WebKit/UIProcess/API/gtk/WebKitWebViewBasePrivate.h
Log Message:
-----------
Cherry-pick 273922 at main (fd1f0b783bb7). https://bugs.webkit.org/show_bug.cgi?id=261348
[GTK] Remove key event reinjection
https://bugs.webkit.org/show_bug.cgi?id=261348
Reviewed by Carlos Garcia Campos.
Event processing in GTK is synchronous, but in WebKit it is asynchronous
because we don't want to block the UI process waiting for the web
process to decide whether a DOM event has been handled (e.g. by using
Event.stopPropagation). Currently we use a complicated scheme to
synthesize and reinject new key and wheel events to continue event
processing when the event is not handled by the web content, which the
GTK developers do not approve of, and which is causing serious problems
where Epiphany has to choose between processing events in an infinite
loop vs. handling events too soon and blocking the web view from
receiving them. Neither option is great.
https://gitlab.gnome.org/GNOME/epiphany/-/issues/1915
https://gitlab.gnome.org/GNOME/epiphany/-/issues/2173
The solution is to just never reinject events, and instead always handle
them. We do not need event reinjection anymore if we activate
application accelerators manually. See the long comment embedded in this
commit for full details of why this is necessary.
This patch removes the key event reinjection. Wheel event reinjection is
not yet removed because this would break when WebKit is used within
scrolled windows.
* Source/WebKit/UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::doneWithKeyEvent):
* Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp:
(shouldForwardKeyEvent):
(webkitWebViewBaseProcessAcceleratorsForKeyPressEvent):
(webkitWebViewBaseKeyPressed):
(handleScroll):
(webkitWebViewBasePropagateKeyEvent):
* Source/WebKit/UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
Canonical link: https://commits.webkit.org/273922@main
Commit: 27a392eea1663db49c1b03d369b220d2c0cfea4b
https://github.com/WebKit/WebKit/commit/27a392eea1663db49c1b03d369b220d2c0cfea4b
Author: Georges Basile Stavracas Neto <feaneron at igalia.com>
Date: 2024-02-07 (Wed, 07 Feb 2024)
Changed paths:
M Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp
M Source/WebKit/UIProcess/API/gtk/WebKitWebViewBasePrivate.h
M Source/WebKit/UIProcess/gtk/KeyBindingTranslator.cpp
M Source/WebKit/UIProcess/gtk/WebPageProxyGtk.cpp
M Source/WebKit/WebProcess/WebPage/glib/WebPageGLib.cpp
Log Message:
-----------
Cherry-pick 274201 at main (da96990ed73d). https://bugs.webkit.org/show_bug.cgi?id=227528
[GTK] Implement GTK4 accessibility
https://bugs.webkit.org/show_bug.cgi?id=227528
Reviewed by Carlos Garcia Campos.
WebKit maintains a complete AT-SPI accessible tree within the web
process, under a separate D-Bus name. This conflicts with GTK4's
expectations of having instances of GtkAccessible objects in process
that can be built in an internal tree.
GTK4 recently introduced support for bridging out-of-process AT-SPI
accessible trees using a new GtkAtSpiSocket object that implements
GtkAccessible [1]. The availability of this object is guarded by the
GTK_ACCESSIBILITY_ATSPI ifdef.
Use this new socket object from GTK to bridge the web page accessible
tree, and the UI process' one. Mark the textview widget as hidden from
the accessible tree.
Create the GtkAtSpiSocket accessible when the web page reports to be
ready. Inject the socket accessible as the first GtkAccessible child
of WebKitWebViewBase.
[1] https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/6827
* Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseAccessibleGetFirstAccessibleChild):
(webkitWebViewBaseAccessibleInterfaceInit):
(webkitWebViewBaseSetPlugID):
* Source/WebKit/UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
* Source/WebKit/UIProcess/gtk/KeyBindingTranslator.cpp:
(WebKit::KeyBindingTranslator::KeyBindingTranslator):
* Source/WebKit/UIProcess/gtk/WebPageProxyGtk.cpp:
(WebKit::WebPageProxy::bindAccessibilityTree):
* Source/WebKit/WebProcess/WebPage/glib/WebPageGLib.cpp:
(WebKit::WebPage::platformInitialize):
Canonical link: https://commits.webkit.org/274201@main
Compare: https://github.com/WebKit/WebKit/compare/3d5373575695...27a392eea166
More information about the webkit-changes
mailing list