| KHTML | |
|---|---|
| Developer | KDE |
| Final release | 5.111.0 (September 10, 2023; 2 years ago (2023-09-10)) [±][1] |
| Written in | C++[2] |
| Type | Browser engine |
| License | GNU Lesser General Public License |
| Repository | invent |
KHTML is a discontinued[3]browser engine that was developed by theKDE project. It originated as the engine of theKonqueror browser in the late 1990s, but active development ceased in 2016.[1][4] It was officially discontinued in 2023.[3]
Built on theKParts framework and written inC++, KHTML had relatively goodsupport for Web standards during its prime. Engines forked from KHTML are used by most of the browsers that are widely used today, includingWebKit (Safari) andBlink (Google Chrome,Chromium,Microsoft Edge,Opera,Vivaldi,Opera GX,Opera Mini,Opera Mobile,Yandex Browser,Orion,Arc (OniOS),Epiphany,Midori,Konqueror,Otter Browser,Dooble,Epic Privacy Browser,Slimjet,Comodo Dragon,SRWare Iron,Cốc Cốc,Torch Browser,Orbitum,UC Browser,Kiwi Browser,Samsung Internet,Bromite, Blisk,Colibri Browser, Min Browser,Ungoogled Chromium,Iridium Browser,Avast Secure Browser,AVG Secure Browser andBrave).
KHTML was preceded by an earlier engine calledkhtmlw orthe KDE HTML Widget, developed by Torben Weis and Martin Jones,[5][6] which implemented support forHTML 3.2,HTTP 1.0, andHTML frames, but not theDOM,CSS, orJavaScript.
KHTML itself came into existence on November 4, 1998,[5] as afork of the khtmlw library, with some slight refactoring and the addition ofUnicode support and changes to support the move toQt 2. Waldo Bastian[7] was among those who did the work of creating that early version of KHTML.[5]
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 useMozilla"[5] and with adding support forJavaScript as the highest priority. So in May 1999, Lars Knoll[8] began doing research with an eye toward implementing theDOM 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 standardDOM as its internal document representation. That in turn allowed the beginnings ofJavaScript support to be added in October 1999,[5] followed shortly afterwards with the integration ofKJS byHarri Porten.
In the closing months of 1999 and first few months of 2000, Knoll did further work with Antti Koivisto and Dirk Mueller[5][11][12] to add CSS support and to refine and stabilize the KHTML architecture,[5] with most of that work being completed by March 2000. Among other things, those changes enabled KHTML to become the second browser afterInternet Explorer to correctly supportHebrew andArabic and languages writtenright-to-left[5]—beforeMozilla had such support.
KDE 2.0 was the first KDE release (on October 23, 2000) to include KHTML[13] (as the rendering engine of the newKonquerorfile andweb browser, which replaced the monolithic KDE File Manager).
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.).[14]
KSVG2 is also a part ofWebKit.[15]
KHTML was scheduled to be removed inKDE Frameworks 6.[4] Active development ended in 2016, just the necessary maintenance to work with updates to Frameworks 5.[1] It was officially discontinued in 2023.[3]
The following standards are supported by the KHTML engine:
KHTML andKJS were adopted byApple in 2002 for use in theSafari web browser. Apple publishes the source code for theirfork of the KHTML engine, calledWebKit. In 2013,Google began development on a fork of WebKit, calledBlink,[17] which is now widely used in browsers such asGoogle Chrome,Microsoft Edge,Opera,Brave and more.[18]
Removed for KF6, the 'kf5' branch contains the last maintained state.
{{cite web}}: CS1 maint: archived copy as title (link)