KHTML
KHTML | |
Konqueror using KHTML to render the Wikipedia front page. |
|
Developer: | KDE project |
---|---|
OS: | Linux/Unix |
Genre: | Layout engine |
License: | LGPL |
KHTML is the HTML layout engine developed by the KDE project. It is the engine used by the Konqueror web browser, and a forked version (WebKit) is used by Apple's Safari web browser. Distributed under the terms of the GNU Lesser General Public License, KHTML is free software.
Contents |
History
Built on the then new KPart framework, it was introduced with KDE2 in 2000, for use in the new Konqueror file and web browser which replaced the monolithic KDE File Manager. Written in C++ and licensed under the LGPL, it supports most of the standards related to web browsing. To render as many pages as possible, some extra abilities and quirks from Internet Explorer are supported, even though they are not part of the HTML standard definition.
KHTML renders faster than the Gecko layout engine[1] its main open source rival and core of the Mozilla and Mozilla Firefox browsers, among others. However, being a less widely known browser, many websites fail to support it or claim no support even if the site does work. Gmail, for instance, only works if Konqueror reports itself as Firefox (see UA Spoofing).
KHTML and Apple
The engine was adopted by Apple in 2002 for its Safari web browser. Apple publishes the source code for current and all previous versions of their version of the KHTML engine, called WebCore and WebKit, as required by the LGPL.
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[2]. One of the reasons for this is that Apple worked on their version of KHTML for a year before making their fork public. Apple also tended to submit their changes in large patches that incorporate a great number of changes, in some cases leaving code to do with future feature additions barely documented, making it difficult for the KDE developers to sort through and incorporate the changes.[citation needed]
Regardless, 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.
According to Apple, some changes involved Mac OS X-specific features (e.g. Objective-C, KWQ, OS X calls), which are absent in KDE's KHTML, which called for different development tactics [3].
Apple has since released changes of the sourcecode of its KHTML fork in a CVS repository. [4] Since the transfer of the sourcecode into a public CVS repository, Apple and KHTML developers have had increasing collaboration. Many of the top KHTML developers have become reviewers and submitters for Apple's WebKit SVN repository. Because the WebKit and KHTML source differ so greatly at this date, some key KHTML developers are looking to backport the WebKit source to KDE through a project codenamed 'Unity' [5].
As of June 2007, it has been revealed that Qt-WebKit probably will replace KHTML in KDE 4.1. Qt-WebKit which is to be included in the upcoming Qt 4.4 release[6].
Standards compliance
The following standards are supported by the KHTML engine:
- HTML 4.01
- CSS 1
- CSS 2.1 (screen and paged media)
- CSS 3 Selectors (fully as of KDE 3.5.6[7])
- CSS 3 Other (multiple backgrounds, box-sizing and text-shadow)
- PNG, MNG, JPEG, GIF graphic formats
- DOM 1, 2 and partially 3
- ECMA-262/JavaScript 1.5
- Partial Scalable Vector Graphics support
See also
References
- ^ http://www.howtocreate.co.uk/browserSpeed.html
- ^ http://www.kdedevelopers.org/node/view/1001
- ^ http://www.kdedevelopers.org/node/view/1006
- ^ http://dot.kde.org/1118138374/
- ^ http://dot.kde.org/1152645965/
- ^ http://arstechnica.com/journals/linux.ars/2007/07/23/the-unforking-of-kdes-khtml-and-webkit
- ^ http://www.kde.org/announcements/changelogs/changelog3_5_5to3_5_6.php
External links
- Web Browser – list of KHTML features on Konqueror site
- KHTML – KDE's HTML library – definition from developer.kde.org
- KHTML from KDE API Reference
- History of the relationship of KHTML and Webcore
- Apple WebKit Open Source Project
|
|
---|---|
Applications (List) | Amarok • K3b • Kate • KDevelop • KMail • Konsole • Kopete • Konqueror • KView • Kaffeine • Noatun • digiKam • Akregator • KTorrent • KPDF • KGet • Okular |
Utilities | DCOP • KHTML • KIO • Kiosk • KWin • KPart • KSVG • • Qt • XMLGUI • KJS • KDOM |
Packaging | aRts • Kdelibs • Kdebase • Kdeaccessibility • • Kdeadmin • • Kdeedu • Extragear • Kdegames • Kdegraphics • • • • Kdepim • • Kdetoys • • KOffice |
KDE 4 Core Technologies (under development) |
• Decibel • Dolphin • • Kross • NEPOMUK-KDE • Oxygen • Phonon • Plasma • • Solid • Sonnet • • Strigi • ThreadWeaver |
|
|
---|---|
List of layout engines | Trident · Presto · Gecko · Tasman · WebCore · KHTML · iCab · Prince · Gzilla · Boxely · Tkhtml · Robin |
Comparison of layout engines | HTML · XML · XHTML · Graphics · CSS · DOM · HTML5 · ECMAScript · SVG |