By Jonathan Corbet
April 2, 2008
Once upon a time, there were no usable free web browsers for the Linux
environment; the binary-only Netscape releases were all that was available
to us.
For many, the solution to the problem was to be found in the release of the
Netscape source code; some years later, we got the Mozilla and Firefox
browsers (based on the Gecko rendering engine) from this work. The KDE
project, though, took a different route in the late 1990's, developing the
KHTML renderer to use with the Konqueror application.
A few years later, Apple surprised the world by selecting KHTML as the base
for its Safari browser, despite the fact that Gecko was more widely
deployed. What followed was essentially a fork of KHTML and some bad blood
between Apple and the KDE project. Over time, the two sides have come to a
better understanding, but KHTML and Apple's version (WebKit) have remained separate. The
existence of two KHTML forks may not last that much longer, though, and
some interesting things appear to be happening.
One of those things is that Konqueror is slowly being moved over to WebKit
as its rendering engine. The decision to go in this direction was made at
the 2007 Akademy gathering, and work has been proceeding ever since.
Current Ubuntu development releases include a preview version of Konqueror
on WebKit. Work can be expected to continue in this direction, with the
result that KHTML will slowly lose its prominence in the KDE project. The
fork, in other words, is beginning to join, with the resulting software
being called "WebKit." [Update: as can be seen in the comments, this
paragraph overstated the case somewhat. Things might end up as
described here, but that is not the case now.]
Meanwhile, it seems that people are actually starting to use Safari, to the
point that web designers are thinking that they should actually test their
sites with it. For what it's worth, Safari currently accounts for just
over 3% of visits to LWN.net - relatively small compared to Firefox (over
60%), but, when added to Konqueror's 4.5%, it makes half of Internet
Explorer's 15% share. One can argue that the mix of browsers used by LWN
readers is not typical of the net as a whole, but, even so, it looks like
WebKit-based browsers just might become a
significant part of the Internet's software base.
[PULL QUOTE:
When a GNOME project announces, on April 1, that it is moving over to a
major component which came from the KDE camp, one can be forgiven for not
taking it seriously.
END QUOTE]
The story does not stop there, though.
When a GNOME project announces, on April 1, that it is moving over to a
major component which came from the KDE camp, one can be forgiven for not
taking it seriously. But it would appear that this announcement from the Epiphany
developers, saying
that they are moving to WebKit as their sole rendering engine, is the real
thing. Epiphany, remember, is
the closest thing that GNOME has to an official web browser; it has users
who swear by its better integration with the GNOME desktop. But Epiphany
has always been based on the Gecko engine, and it seems that not a whole
lot of users have seen reasons to stick with it over Firefox, which
provides rather more functionality on the same engine. Epiphany is not a
big force in the browser arena currently.
Last year, the Epiphany developers added an abstraction layer which allowed
the browser to operate over multiple rendering engines, including WebKit.
Now they have decided to take that layer back out and to support just one
rendering engine: WebKit. The development team cites a number of reasons
for moving away from Gecko, including release-cycle mismatches, a feature
set which is driven by a competing project, and a lack of attention being
paid to the Gecko/GTK embedding API. Gecko, they have decided, is not the
best fit for Epiphany.
WebKit, instead, was designed for embedding - the WebKit project's goals explicitly
rule out building a browser themselves - and the GNOME
API is said to work very nicely. WebKit in GNOME uses technologies like
Cairo and Pango, like many other GNOME applications. Overall, the Epiphany
team feels like WebKit is a better match for what they are trying to do -
and they suggest that a number of other GNOME projects move in that
direction as well. The initial response from other GNOME participants
appears to be positive, with the exception of some concerns about
accessibility support in WebKit - concerns which, presumably, can be
addressed.
The GNOME/KDE flame wars, happily, are some years behind us. Developers
from both projects are more interested in cooperation these days, but, so
far, much of that cooperation has been around relatively small, low-level
components. An HTML rendering engine is not a small, low-level component,
though. If both projects seriously work toward the improvement of WebKit,
they will have started an era of rather higher cooperation than has been
seen in the past. If this cooperation holds together, it can only be to
the benefit of both projects, and to all other users of WebKit as well.
The Gecko engine is good code and a highly successful project. But it is
also controlled by a company (Mozilla Corporation) whose agenda, beneficial
though it may be, does not include the creation of successful competing
browsers. So it's not entirely surprising that Gecko has not proved to be
entirely suitable for groups trying to create those competing browsers.
WebKit, at the outset, looks like it is better suited to this task. The
WebKit project has expressed interest in
working with GNOME; there might just be a productive partnership in the
making here.
But it's worth remembering that WebKit, too, is a project developed by a
company with its own objectives, few of which make any mention of turning
2009 into the real year of the Linux desktop. For now, though,
WebKit has the look of a project with all the right attributes: real
independence, merit-based access to the source repository, no requirement
for copyright assignments, reasonable licensing, and the right goals. It
may well be positioned to become a core component in the Linux desktop.
(
Log in to post comments)