Jump to content

WebKit

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Postrational (talk | contribs) at 18:05, 15 November 2007. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
WebKit
Developer(s)Apple Inc.
Repository
Operating systemMac OS X
TypeApplication framework
LicenseLGPL/BSD-style
Websitehttp://webkit.org/

WebKit is an application framework included with Mac OS X v10.3 and later (and available as a software update for v10.2.7 and later) which is the basis of Mac OS X's Safari web browser. WebKit is an open source project, combining components from both the K Desktop Environment (KDE) project and Apple. WebKit has also been adopted by the Open Handset Alliance for its Android mobile phone platform and forms the basis of its web browser.

History

WebKit began as a private fork of the KDE projects HTML layout engine KHTML and JavaScript engine KJS. In an email to the development team, Apple developers explained their reasoning for using KDE components over other technologies. KHTML and KJS were less than 140,000 lines of code, cleanly designed and standards compliant. The small and clean codebase allowed for easier development. Both were ported to OS X with the help of an adapter library and renamed WebCore and JavaScriptCore.[1]

WebKit was announced at the Macworld Expo in 2003 by Steve Jobs. Up until then the changes were private and were not shared, but after the announcement the changes to KHTML and KJS were submitted back to the KDE project. As time went on Apple's cooperation with KDE was criticized, with changes being mostly submitted in bulk back to the KDE project. While this helped Konqueror pass the ACID2 test, the code already had become so divergent that improvements were difficult to share back and forth.[2]

On June 7 2005, Safari developer Dave Hyatt announced on his weblog that Apple was open sourcing WebKit (previously, only WebCore and JavaScriptCore were open source) and opening up access to the CVS tree and Bugzilla tool for it. This move was first announced at Apple's WWDC 2005 by Bertrand Serlet. The week after, Nokia announced that it was developing a browser based on WebKit, which was later named Web Browser for S60.

In mid December 2005 support for Scalable Vector Graphics was merged into the standard build and in early January 2006 the CVS tree was migrated to Subversion. About a year and a half after that, in June 2007, a Windows port was added to WebKit. The next month Ars Technica published an article announcing that the KDE team was going to move from KHTML to WebKit.[3]

Components

KWQ

KWQ (pronounced quack[4]) is an abstraction of Qt and KDE that allows its version of the KHTML rendering engine to function in Mac OS X. KWQ and KHTML together make up the OS X WebCore framework. It is licensed under a BSD-like license, and provides enough abstraction so that if ported in its entirety, older WebCore versions can compile and run under another operating system. KWQ also presents an Objective-C application programming interface to the C++-based KHTML rendering engine, allowing it to be used by Cocoa-based applications. However, later versions (such as in the WebCore trunk), use a new cross-platform, more easily ported C++ platform abstraction.

WebCore

WebCore is a framework developed by Apple, licensed under the LGPL, to provide an HTML layout engine for Mac OS X. It is one of the two primary components of the WebKit framework (the other being JavaScriptCore). Webcore itself is a forked version of KHTML made to run on OS X without dependency on the Qt toolkit and KDE modules through the KWQ library.

JavaScriptCore

JavaScriptCore is a framework that provides a JavaScript engine for Mac OS X. JavaScriptCore is based on the combination of the KJS library (which is part of the KDE project) with the PCRE regular expression library.

It has been extended with some new features:

Drosera

Drosera is a debugger included with the nightly builds of WebKit.[5] It was named after Drosera, a genus of carnivorous plants.

Ports

WebKit, being a portable and popular open source project, has attracted ports to several different operating systems and toolkits. A mobile port of WebKit has been started by Nokia[6], while the community[7] is porting the browser engine to the GTK+ toolkit and a port to the Qt toolkit is being developed by community and several companies including Trolltech. Trolltech plans to include the Qt port in the Qt 4.4 release. The Qt port of WebKit will also be available to be used in Konqueror in KDE 4.1[8]

WebKit is used as the basis of the native web browser component for the Android mobile phone platform.

See also

List of KHTML and WebKit-based browsers

References

  1. ^ http://lists.kde.org/?l=kfm-devel&m=104197092318639&w=2
  2. ^ http://dot.kde.org/1041971213/
  3. ^ http://dot.kde.org/1121021917/
  4. ^ http://weblogs.mozillazine.org/hyatt/WebCore/chapter2.html
  5. ^ "Introducing Drosera". Surfin’ Safari - Blog Archive.
  6. ^ http://opensource.nokia.com/projects/S60browser/
  7. ^ http://www.atoker.com/blog/2007/06/12/webkitgtk-is-coming/
  8. ^ Unrau, Troy (2007-07-23). "The unforking of KDE's KHTML and WebKit". Ars Technica. Retrieved 2007-07-30.