What's new in WebKitGTK 2.44?

Last week, the WebKitGTK team released version 2.44 of the GTK port of the WebKit project. This release is an important milestone for the project as it’s the first in which GTK4 is the default toolkit. Let’s have a look to what’s new in this new release.

GTK4 is now used by default

While the GTK4 API has been stable for about a year now, and the development releases leading up to 2.44 have already been building with GTK4 support by default, this is the first stable release that features GTK4 prominently. The GTK3 API is still available, and it’s possible to parallel-install WebKitGTK targetting both libraries, but we encourage everyone to start migrating to the new API, testing it, and to report any issues you might find.

Improved accessibility support with GTK4

One of the main missing pieces for accessibility in the GTK4 port was being able to connect the accessibility tree for the web content to the rest of the hierarchy exposed by GTK4 to accessibility technologies. During this cycle Georges Stavracas coordinated with the GTK developers to add new API that WebKitGTK now uses to expose the accessibility tree of the web content. While there are still improvements to be made, fixing this unblocks further developments.

The existing accesibility support for GTK3 continues to work as before.

DisplayLink is a WebCore feature that improves resource utilization and improves synchronization with vertical screen retrace. For 2.44, an implementation of this feature for the GTK port was added that improves rendering performance.

Improved hardware-acceleration video decoding and rendering

When WebKit is using GStreamer 1.24 or newer, video playback can use the new support for DRM modifiers in the DMA-BUF sink. This improves video decoding and rendering, as it allows for zero-copy negotiation with the video decoders.

WebCodec API supported

WebKitGTK now supports the WebCodecs API, which allows web developers low-level access to video frames and audio chunks, a feature of importance for multimedia applications that need finer grain control over what gets played on the browser.

Other noteworthy changes

  • Rendering with the Vulkan GTK renderer, which was known to have issues, is now working correctly.
  • The X11 and WPE renderers have been removed in favor of the DMA-BUF one. This means that WPE related dependencies are no longer needed.
  • Support for the JPEG2000 image format has been removed. WebKit was the only major engine still supporting the format, which these days is rarely used. As a consequence, OpenJPEG is no longer a dependency. JPEG2000 should not be confused with JPEG-XL, which is still supported.
  • Event reinjection has been removed. This might require changes in applications that use keybindings and such. GNOME Web has been updated already for the GNOME 46 release.
  • Many memory and stability improvements, particularly on the multimedia backends.

For a more detailed list of changes, please check the release notes for 2.43.x and 2.44.0 from the news section.