Overview
WebKit/GTK+ is the new GTK+ port of the WebKit, an open-source web content engine that powers numerous applications such as web browsers, email clients, feed readers, web and text editors, and a whole lot more[1].
Using WebKitGTK+
A guide to building programs using WebKitGTK+ can be found on this section of the wiki.
Build and Install
Detailed and updated build instructions can be found on this WebKit wiki page. Please read carefully the section Dependencies on this page.
In summary:
Getting the Sources
Download a nightly tarball (small download)
Download a release
- Check out using SVN (large download)
svn checkout http://svn.webkit.org/repository/webkit/trunk WebKit
- Check out using GIT (large download, advanced users only)
git clone git://git.webkit.org/WebKit.git WebKit
Build the Sources
Run the following commands to configure and build WebKit (choosing an appropriate prefix):
./autogen.sh --prefix=/usr make
Default font backend is FreeType, you can choose Pango using --with-font-backend=pango. However, the FreeType backend now contains the latest Pango code as well and thus the Pango backend is considered obsolete at the moment. You should use FreeType backend.
With freetype backend in webkit 1.2.0, at least 'locl' lookup tables in fonts are not supported, and they are fully supported with Pango. Numerous pango layout bugs are the blocker to using pango backend by default. -- 2010-04-22 DaniloSegan
Install the Sources
- Run the demo browser (not needed, but useful)
./Programs/GtkLauncher
Run the following command to install WebKit in the chosen path:
make install
Bugs and Patches
Bugs and patches can be submitted at WebKit's bug tracker. Be sure to mark patches intended for inclusion with "r?" so they show up in the review queue.
Hacking
See the hacker's guide to WebKit/GTK+.
The goal for the port is to use GLib/GTK+ API wherever possible (eg. GThread vs pthreads), unless there's a compelling reason to use the platform directly (eg. font rendering fast paths alongside Pango).
Patches will be reviewed faster if they follow coding style, have a properly formatted ChangeLog (should include a reference to the bug and the bug's title). Use _spaces_, not tabs for indentation.
You can get started by fixing or triaging bugs reported in the GTK+ port, CURL http backend, Cairo graphics backend and GStreamer media engine.
References
[1] GTK+ applications using WebKit
[2] WebKit goals
[3] WebKit Bugzilla
[4] WebKit