The GTK+ port of WebKit is the first open source HTML render to fully pass the Acid3 test on the Linux platform
WebKit, which is Apple's increasingly popular fork of KDE's KHTML rendering engine, is used by Apple's Safari
web browser and the iPhone. The GNOME desktop environment's Epiphany web browser has also adopted
WebKit and will be using it instead of Firefox's Gecko rendering engine in a future release.
The Acid3 test evaluates compatibility with a wide range of web technologies (some of which are quite obscure),
The test was created earlier this year by Ian Hickson with help from volunteer contributors who assisted with
several of the subtests. A recent Internet Explorer 8 beta passes only 18 of the 100 tests, a Firefox 3 nightly build
passes 71 of the tests, and a recent development build of KDE's KHTML renderer passes 73 of the tests.
Like WebKit, experimental builds of Opera's rendering engine also pass all 100 of the tests
Although some question the relevance
of many of the individual subtests, it is still an impressive accomplishment
and it demonstrates the flexibility of WebKit. The GTK+ port achieved initial Acid3 conformance
last month, but
didn't perfectly match the reference rendering until earlier this week. It still needs smoother animation in order to
officially meet all of Hickson's criteria. The GTK+ port uses a Cairo backend which needed some additional work
in order to support some features like CSS text shadows.
I compiled WebKit/GTK+ from trunk to test the new functionality. In addition to all of the Acid3 features, it also
got support for some of the new WebKit hotness like CSS gradients
. The screenshot to the left shows a
semi-transparent gradient background on a div element with rounded corners and shadowed text. Aside from
the page background image, it's entirely done with CSS.
These advanced CSS features aren't likely to show up on popular web sites any time soon because they aren't
widely supported by mainstream browsers, but they are still very useful for desktop applications that embed
WebKit for rich content rendering. WebKit's relatively clean code base, decent embedding API, and small footprint
have made it an appealing choice for desktop Linux application developers who want to incorporate HTML
rendering into their programs. In some cases, using an embedded HTML renderer can be significantly easier
than doing custom widget rendering with Cairo.
Alp Toker and some of the other WebKit/GTK+ developers have formed a new company called Nuanti
that will focus
on browser development. It is likely that we will see some exciting things from Nuanti in the near future as
WebKit/GTK+ adoption heats up.