With a bit of delay but we have finally released a new stable version of WebKitGTK+. This is the first stable release after the major 2.0 release. It mainly contains a lot of bug fixes and a few important new futures and API additions.
New Web Inspector
WebKitGTK+ now uses the new Web Inspector recently opensourced and upstreamed by Apple. We took advantage of the migration to improve the way inspector resources are distributed by compiling them in the WebKitGTK+ library as GResources. This means that resources are now always available without having to run make install or set environment variables.
Initial Wayland support
WebKitGTK+ 2.2 can be built with Wayland target if it’s available (it requires GTK+ 3.10 compiled with Wayland support). Not everything is fully supported yet, but the WebKit layout tests can be run under the Weston compositor and WebGL content works under Wayland displays too. There’s more detailed information in Žan Doberšek’s blog.
Video accelerated compositing support
When accelerated compositing is enabled, the GStreamer media player can play videos using OpenGL. You can find more details in Víctor’s blog.
Custom JavaScript injection
This was one of the major regressions in WebKit2GTK+ compared to the WebKit1 API. WebKitGTK+ 2.2 now allows to inject custom JavaScript code using the JavaScriptCore C API from a WebKit Web Process Extension. New API has been added to also allow running specific JavaScript code in isolated worlds. You can find examples about how to use this API and how to write Web Process Extensions in general in this post.
Improved accessibility support in WebKit2
Accessibility support in WebKit2 has been reworked to not depend on pango and gail, which resulted in several bugs fixed and a much better accessibility support. Check Mario’s blog for all the details.
New API
WebKitAuthenticationRequest
: This is a new object used by the newWebKitWebView::authenticate
signal, that allows to implement a custom authentication mechanism (instead of the embedded dialog used by default) or simply disable HTTPS authentication entirely.WebKitScriptWorld
: Used to inject custom JavaScript code in the main world, but also to create isolated worlds.webkit_uri_scheme_request_finish_error()
: This new method makes it possible to finish a load of a custom URI scheme request with an error.- New
WebKitSettings
: enable-accelerated-2d-canvas and enable-write-console-messages-to-stdout.