What is WebKitGTK+ anyway?

GCDS 2009

  • Christian Dywan
  • Gustavo Noronha Silva
  • Xan Lopez

What is WebKitGTK+?

  • Fork of KHTML started by Apple, now with contributors all over the place.
  • Shared base, with ports being built from the same tree, with different build systems.
  • Rendering backend built with cairo.
  • Resource loading backend built with libsoup.
  • A regular GtkWidget which you can add to your GtkScrolledWindow and profit.
  • Includes JavaScriptCore, powered by SquirrelFish Extreme, which includes a cross-platform C API.

Why are we working on it?

  • Because it's fun!
  • The WebKit project has a clear focus on being embedded, which is something naturally aligned with our needs.
  • It's less focused on a single product that drives it.
  • The fact that there are multiple forces pushing it makes it need to accomodate many different needs, bringing flexibility.
  • It allows us to build on our platform instead of duplicating it
    • Cairo for rendering
    • Pango for fonts
    • GTK+ for theming/widgets
    • Soup for networking
    • Keyring for auth storage

Release planning

  • We'll release for GNOME every 6 months
  • But might not branch from trunk that often.
  • An API is declared stable when it ships in a new stable release.
  • We can, and will break APIs during development cycles (this is how GTK+ works today).
  • After an API is declared deprecated, we'll remove it from stable releases after a reasonable amount of time (think, two major releases).

DEMO

Demo source code

Current Focus

  • Accessibility
  • Basic features required by Epiphany and Midori
  • Improving libsoup so that it is able to handle a browser's needs
    • Content Sniffing
    • Content Encoding
    • Disk Caching

Future work

  • DOM bindings
  • Pango backend by default (no freetype)
  • Improve HTML5 video/audio support
  • More libsoup work

Contact

  • #webkit and #webkit-gtk on irc.freenode.org
  • webkit-gtk and webkit-dev mailing lists at lists.webkit.org
  • http://www.webkit.org/
  • http://www.webkitgtk.org/
  • http://trac.webkit.org/wiki/HackingGtk

Questions?