webkitgtk+: current status and roadmap (guadec 2012)
DESCRIPTION
By Mario Sánchez Prada. In this talk we will discuss about WebKitGTK+[1], the port of the WebKit web rendering engine[2] to the GNOME platform, based on technologies such as GObject, GTK+, libsoup, cairo, gstreamer and ATK, among others. A lot of things have happened since the last Desktop Summit, so we will try to focus on the most notorious ones, such as its integration with GNOME and GTK+3, increased support of the HTML5 standard and several improvements on the multimedia, rendering and accessibility layers. We will also cover the integration with WebKit2[3] and its split-process model, as well as the design of the new API being developed for WebKit2GTK+, which we expect to be ready for the next stable version of the port. Once it's stable, it will allow to port nearly any application already using WebKitGTK+, such as Yelp or Epiphany, to the new multi-process architecture. Last, we will prepare some nice demos to show you in a better way what WebKitGTK+ is already capable of, which kind of awesomeness it can bring to your application and how easy it is to embed and use. The talk should be interesting for embedders and for those considering integrating web technologies in their products in some other ways (e.g. HTML5-based user interfaces). [1] http://www.webkitgtk.org [2] http://www.webkit.org [3] http://trac.webkit.org/wiki/WebKit2TRANSCRIPT
What is WebKit?
What is WebKit?
What is WebKitGTK+?
Who is using WebKitGTK+?
WebKit2
What is WebKit2?
WebKit2: API & Process Boundaries
WebKit2: API & Process Boundaries
WebKit2: State of the art
WebKit2 announced back in April 2010Apple and Qt already released WK2 browsersEpiphany with WK2 support in GNOME 3.6WebKit2GTK+ stable API to be released soonCrossplatform C API exists, internally usedMost challenges of multi process model solvedTests running, need to deploy more test bots
WebKitGTK+: Current Status
Previously in WebKitGTK+...Migrated to GTK+ 3.x. Kept GTK 2.x support.Independent JavaScriptCore libraryImproved HTML5 supportWebGL support (not enabled by default)GObject bindings for the DOMOndisk network cacheSpell checking APIsImprovements in accessibility supportBasic support for WebKit2 (WebKit2GTK+)
Stable release (1.8)Improvements in performance (backing store)DFG JIT compiler enabled in JavaScriptCoreHTML5 history APIsWebGL support built by defaultInitial support for Accelerated CompositingExperimental support for WebAudioGeolocation API built by defaultPreliminary version of WebKit2GTK+ APIEnabled accessibility support in WebKit2GTK+
WebKitGTK+: Roadmap
WebKitGTK+ RoadmapWebKit1
In maintenance mode from GNOME 3.6 onEpiphany no longer using WK1 after 3.8Other apps could start migrating as well
WebKit2
Beta version of WebKit2GTK+ API for GNOME 3.6New development will happen in WebKit2GTK+Parallel installable with WebKit1
Next stable release (1.10)Support for Accelerated CompositingWebGL enabled by defaultSupport for HTML5 Fullscreen and WebAudioMultimedia layer ported to GStreamer 0.11Support for the LowLevel Interpreter in JSCBeta version of the WebKit2GTK+ API:
Context menus, Web Inspector, ondisk cacheHTML5 fullscreen, cookies, geolocationFavicons, spellchecking, print supportDocumentation, GI annotations
More tests running and passing (also for WK2)
Upcoming releases (2.0, 2.2...)
First stable API of WebKit2GTK+ for 2.0Stabilization of the WebKit2GTK+ APIAdd more API to WebKit2GTK+ as requiredHW accelerated Video RenderingIntegration of the cairogl backendPort more apps to WebKit2GTK+ (yelp, ephy...)
Wrapping up
ConclusionsMature port of WebKit, used everywhereReleased regularly (every 6 months)Suitable for writing modern browsersGreat option for embeddersLots of improvements during the previous monthsWebKit1 in maintenance mode since GNOME 3.6WebKit2GTK+ beta API since GNOME 3.6Stable WebKit2GTK+ API expected for 3.8Epiphany with WK2 by default expected for 3.8
Reporting bugs and Contributingwww.webkit.orgbugs.webkit.orgwww.webkitgtk.orgtrac.webkit.org/wiki/WebKitGTK/WebKit2RoadmapMailing lists:
webkit[email protected][email protected]
IRC channels on irc.freenode.net:#webkitgtk+ and #webkit
Thanks!