|Developer(s)||Apple, KDE, Nokia, Google, RIM, Palm, others.|
|Preview release||neutral builds|
|License||GNU LGPL - components
BSD-style license - rest
WebKit is a layout engine designed to allow web browsers to render web pages. The WebKit engine provides a set of classes to display web content in windows, and implements browser features such as following links when clicked by the user, managing a back-forward list, and managing a history of pages recently visited.
WebKit was originally derived by Apple Inc. from the Konqueror browser’s KHTML software library for use as the engine of Mac OS X’s Safari web browser and has now been further developed by individuals from the KDE project, Apple Inc., Nokia, Google, Bitstream, Torch Mobile and others.
However, the exchange of code patches between the two branches of KHTML has previously been difficult and the code base diverged because both projects had different approaches in coding. One of the reasons for this is that Apple worked on their version of KHTML for a year before making their fork public.
Despite this, the KDE project was able to incorporate some of these changes to improve KHTML's rendering speed and add features, including compliance with the Acid2 rendering test. Konqueror 3.5 passed the Acid2 test, which was released after Apple had opened its WebKit CVS and Bug Database.
At one point KHTML developers said they were unlikely to accept Apple's changes and claimed the relationship between the two groups was a "bitter failure". Apple submitted their changes in large patches that contained a great number of changes with inadequate documentation, often to do with future feature additions. Thus, these patches were difficult for the KDE developers to integrate back into KHTML. Furthermore, Apple had demanded developers to sign nondisclosure agreements before looking at Apple's source code and even then they were unable to access Apple's bug database.
During the publicized 'divorce' period, KDE developer Kurt Pfeifle (pipitas) posted an article claiming KHTML developers had managed to backport many (but not all) Safari improvements from WebCore to KHTML, and they always appreciated the improvements coming from Apple and still do so. The article also noted Apple had begun to contact KHTML developers about discussing how to improve the mutual relationship and ways of future cooperation.
Since the story of the fork appeared in news, Apple has released changes of the source code of its KHTML fork in a CVS repository. Since the transfer of the sourcecode into a public CVS repository, Apple and KHTML developers have had increasing collaboration. Many KHTML developers have become reviewers and submitters for Apple's WebKit SVN repository.
The WebKit team had also reversed many Apple-specific changes in the original WebKit code base and implemented platform-specific abstraction layers to make committing the core rendering code to other platforms significantly easier.
In mid-December 2005 support for Scalable Vector Graphics was merged into the standard build and in early January 2006 the source code was migrated from CVS to Subversion. In July 2007, the Ars Technica website published an article reporting that the KDE team would move from KHTML to WebKit. This move is still in discussion in the KDE community and no official information confirmed it.
Beginning in early 2007, the development team began to implement CSS extensions, including animation, transitions and both 2D and 3D transforms; such extensions were released as working drafts to the W3C in 2009 for standardization.
WebKit is used as the rendering engine within Safari on Windows, Mac OS X and iPhone OS. Other applications on Mac OS X can make use of WebKit, for example Apple's e-mail client Mail and the 2008 version of Microsoft's Entourage personal information manager both make use of WebKit to render e-mail messages with HTML content, as does the Claws Mail e-mail client via the Fancy Plugin.
New web browsers have been built around WebKit such as the S60 browser on Symbian mobile phones, Midori, Shiira, Google's Chrome browser, and Uzbl, also it has been adopted as the rendering engine in OmniWeb, iCab and Epiphany replacing their original rendering engines. Epiphany supported both Gecko and WebKit for some time, but the team decided that Gecko's release cycle and future development plans would make it cumbersome to continue supporting it. Palm's WebOS is also based on WebKit. The latest interface update for Valve Corporation's Steam uses WebKit for rendering of its interface and built in browser.
The week after Hyatt's announcement of WebKit's open-sourcing, Nokia announced that it had ported WebKit to the Symbian operating system and was developing a browser based on WebKit for mobile phones running S60. Now named Web Browser for S60, it is used on Nokia, Samsung, LG, and other Symbian S60 mobile phones. Apple has also ported WebKit to the iPhone OS to run on the iPhone and iPod Touch, where it is used to render content within the device’s web browser and e-mail software, the Android mobile phone platform uses WebKit as the basis of its web browser, and the Palm Pre, announced January 2009, has an interface based on WebKit.
In June 2007, Apple announced that WebKit had been ported to Microsoft Windows as part of Safari. There are also ongoing ports for the open source operating systems Syllable, Haiku and AROS.
WebKit has also been ported to a number of toolkits that support multiple platforms, such as the GTK+ toolkit, the Qt toolkit and the Adobe Integrated Runtime. Qt Software includes the Qt port in the Qt 4.4 release. The Qt port of WebKit is also available to be used in Konqueror in KDE 4.1. The Iris Browser on Qt also uses WebKit.
There is also a project synchronized with WebKit (sponsored by Pleyo) called Origyn Web Browser, which provides a meta-port to an abstract platform with the aim of making porting to embedded or lightweight systems quicker and easier. This port is used for embedded devices such as set-top boxes, PMP and it has been ported also into AmigaOS 4.1, AmigaOS 3.9 for Classic Amiga machines, AROS and MorphOS. MorphOS version 1.7 it it the first version of OWB sporting HTML5 media tags.