KHTML

KHTML

Konqueror using KHTML to render the Dutch Wikipedia front page in 2009
Developer(s) KDE
Stable release 4.13.2 (June 6, 2014 (2014-06-06)) [±][1]
Preview release 4.12.97 (March 27, 2014 (2014-03-27)) [±][2]
Written in C++
Operating system Cross-platform
Type Layout engine
License GNU Lesser General Public License
Website www.konqueror.org/features/browser.php

KHTML is a HTML layout engine developed by the KDE project. It is the engine used by the Konqueror web browser. Descendants of KHTML are used by some of the world's most widely used browsers, among them Google Chrome, Safari and Opera. Distributed under the terms of the GNU Lesser General Public License, KHTML is free software.

Built on the KParts framework and written in C++, KHTML has relatively good support for Web standards. To render as many pages as possible, some extra abilities and quirks from Internet Explorer are also supported, even though those are non-standard.

History

Origins

KHTML was preceded by an earlier engine called khtmlw or the KDE HTML Widget, developed by Torben Weis and Martin Jones,[3] which implemented support for HTML 3.2, HTTP 1.0, and HTML frames, but not the W3C DOM, CSS, or scripting.

KHTML itself came into existence on November 4, 1998,[4] as a copy of the khtmlw library, with some slight refactoring and the addition of Unicode support and changes to support the move to Qt 2. Waldo Bastian[5] was among those who did the work of creating that early version of KHTML.[6]

Re-write and improvement

The real work on KHTML actually started between May and October 1999, with the realization that the choice facing the project was "either do a significant effort to move KHTML forward or to use Mozilla"[7] and with adding support for scripting as the highest priority. So in May 1999, Lars Knoll[8] began doing research with an eye toward implementing the W3C DOM specification, finally announcing[9] on August 16, 1999 that he had checked in[10] what amounted to a complete rewrite of the KHTML library — changing KHTML to use the standard W3C DOM as its internal document representation. That in turn allowed the beginnings of JavaScript support to be added in October 1999,[11] with the integration of Harri Porten's KJS following shortly afterwards.

In the closing months of 1999 and first few months of 2000, Knoll did further work with Antti Koivisto and Dirk Mueller[12][13][14] to add CSS support and to refine and stabilize the KHTML architecture,[15] with most of that work being completed by March 2000. Among other things, those changes enabled KHTML to become the second browser after Internet Explorer to correctly support Hebrew and Arabic and languages written right-to-left[16] — before Mozilla had such support.

KDE 2.0 was the first KDE release (on October 23, 2000) to include KHTML[17] (as the rendering engine of the new Konqueror file and web browser, which replaced the monolithic KDE File Manager).

Other modules

KSVG was first developed in 2001 by Nikolas Zimmermann and Rob Buis; however, by 2003, it was decided to fork the then-current KSVG implementation into two new projects: KDOM/KSVG2 (to improve the state of DOM rendering in KHTML underneath a more formidable SVG 1.0 render state) and Kcanvas (to abstract any rendering done within khtml/ksvg2 in a single shared library, with multiple backends for it, e.g., Cairo/Qt, etc.).[18]

KSVG2 is also a part of WebKit.[19]

Standards compliance

The following standards are supported by the KHTML engine:

Descendants

KHTML and KJS were adopted by Apple in 2002 for use in the Safari web browser. Apple publishes the source code for their fork of the KHTML engine, called WebKit. In 2013, Google began development on a fork of WebKit, called Blink.[21]

See also

References

  1. "Index of ftp://ftp.kde.org/pub/kde/stable/". Retrieved 6 June 2014.
  2. "Index of ftp://ftp.kde.org/pub/kde/unstable/ ". Retrieved 2014-06-12.
  3. around 1:18 in the December 8, 2006 From KDE to WebKit presentation at Yahoo! office by Lars Knoll and George Staikos https://www.youtube.com/watch?v=Tldf1rT0Rn0
  4. around 4:52 in https://www.youtube.com/watch?v=Tldf1rT0Rn0
  5. Waldo Bastian http://www.behindkde.org/node/37/
  6. around 5:02 in https://www.youtube.com/watch?v=Tldf1rT0Rn0
  7. around 5:30 in https://www.youtube.com/watch?v=Tldf1rT0Rn0
  8. Lars Knoll http://www.behindkde.org/node/145/
  9. 1999-08-16 "changes in KHTML" message from Lars Knoll http://lists.kde.org/?l=kfm-devel&m=93489518402924
  10. 1999-08-16 "khtml_to_dom: kdelibs/khtml" commit message http://lists.kde.org/?l=kde-commits&m=93476738632582
  11. around 8:18 in https://www.youtube.com/watch?v=Tldf1rT0Rn0
  12. around 9:10 in https://www.youtube.com/watch?v=Tldf1rT0Rn0
  13. Antti Koivisto http://trac.webkit.org/projects/webkit/wiki/WebKit%20Team#AnttiKoivistoanttikreview>
  14. Dirk Mueller http://www.behindkde.org/node/211/
  15. around 9:32 in https://www.youtube.com/watch?v=Tldf1rT0Rn0
  16. around 10:30 in https://www.youtube.com/watch?v=Tldf1rT0Rn0
  17. around 11:10 in https://www.youtube.com/watch?v=Tldf1rT0Rn0
  18. Re: Status of KSVG project by Nikolas Zimmermann, January 25, 2005.
  19. "The WebKit Open Source Project". webkit.org.
  20. "KDE 3.5.6 Changelog". K Desktop Environment.
  21. "Blink: A rendering engine for the Chromium project". blog.chromium.org.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.