Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
KHTML
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Open source browser engine}} {{Infobox Software | name = KHTML | logo = | screenshot = Konqueror web browser screenshot of nl wikipedia.png | caption = [[Konqueror]] using KHTML to render the Dutch [[Wikipedia]] front page in 2009 | developer = [[KDE]] | discontinued = yes | programming language = [[C++]]<ref>{{cite web |url=https://invent.kde.org/frameworks/khtml/-/graphs/master/charts| title=KHTML repository analytics|website=invent.kde.org|access-date=2020-08-15}}</ref> | operating system = <!--Exactly which?--> | genre = [[Browser engine]] | repo = {{URL|https://invent.kde.org/frameworks/khtml}} | license = [[GNU Lesser General Public License]] | website = }} '''KHTML''' is a discontinued<ref name="discontinued"/> [[browser engine]] that was developed by the [[KDE]] project. It originated as the engine of the [[Konqueror]] browser in the late 1990s, but active development ceased in 2016.<ref name="git_log"/><ref name="kde 6"/> It was officially discontinued in 2023.<ref name="discontinued">{{cite web |title=KHTML repository |quote=Removed for KF6, the 'kf5' branch contains the last maintained state. |url=https://github.com/KDE/khtml/tree/6d89b39ddb93aa5b655508c0b5295f3f4db626b8 |website=GitHub |access-date=5 May 2023}}</ref> Built on the [[KParts]] framework and written in [[C++]], KHTML had relatively good [[KHTML#Standards compliance|support for Web standards]] during its prime. Engines forked from KHTML are used by most of the browsers that are widely used today, including [[WebKit]] ([[Safari (web browser)|Safari]]) and [[Blink (browser engine)|Blink]] ([[Google Chrome]], [[Chromium (web browser)|Chromium]], [[Microsoft Edge]], [[Opera (web browser)|Opera]], [[Vivaldi (web browser)|Vivaldi]] and [[Brave (web browser)|Brave]]). ==History== ===Origins=== KHTML was preceded by an earlier engine called ''khtmlw'' or ''the KDE HTML Widget'', developed by Torben Weis and Martin Jones,<ref name="auto">{{cite web |url=https://www.youtube.com/watch?v=Tldf1rT0Rn0 |title=Lars Knoll and George Staikos: From KDE to WebKit |date=26 August 2011 |publisher=[[YouTube]] |access-date=1 September 2019}}</ref><ref>{{cite web |url=https://github.com/KDE/kde1-kdelibs |title=KDE/kde1-kdelibs/khtmlw |website=GitHub |language=en |access-date=2020-01-23}}</ref> which implemented support for [[HTML]] 3.2, [[HTTP]] 1.0, and [[Frame (World Wide Web)|HTML frames]], but not the [[Document Object Model|DOM]], [[Cascading Style Sheets|CSS]], or [[JavaScript]]. KHTML itself came into existence on November 4, 1998,<ref name="auto"/> as a [[fork (software development)|fork]] of the khtmlw library, with some slight refactoring and the addition of [[Unicode]] support and changes to support the move to [[Qt (software)|Qt]] 2. Waldo Bastian<ref>{{cite web |url=https://behindkde.org/node/37/ |title=Waldo Bastian | Behind KDE |website=Behindkde.org |access-date=1 September 2019 |archive-date=11 April 2023 |archive-url=https://web.archive.org/web/20230411095409/https://behindkde.org/node/37/ |url-status=dead }}</ref> was among those who did the work of creating that early version of KHTML.<ref name="auto"/> ===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]]"<ref name="auto"/> and with adding support for [[JavaScript]] as the highest priority. So in May 1999, Lars Knoll<ref>{{cite web |url=https://behindkde.org/node/145/ |title=Lars Knoll | Behind KDE |website=Behindkde.org |access-date=1 September 2019}}</ref> began doing research with an eye toward implementing the [[Document Object Model|DOM]] specification, finally announcing<ref>{{cite web |url=https://marc.info/?l=kfm-devel&m=93489518402924 |title='changes in KHTML' - MARC |website=Marc.info |access-date=1 September 2019}}</ref> on August 16, 1999 that he had checked in<ref>{{cite web |url=https://marc.info/?l=kde-commits&m=93476738632582 |title='khtml_to_dom: kdelibs/khtml' - MARC |website=Marc.info |access-date=1 September 2019}}</ref> what amounted to a complete rewrite of the KHTML library—changing KHTML to use the standard [[Document Object Model|DOM]] as its internal document representation. That in turn allowed the beginnings of [[JavaScript]] support to be added in October 1999,<ref name="auto"/> followed shortly afterwards with the integration of [[KJS (JavaScript engine)|KJS]] by [[Harri Porten]]. In the closing months of 1999 and first few months of 2000, Knoll did further work with Antti Koivisto and Dirk Mueller<ref name="auto"/><ref>{{cite web |url=http://trac.webkit.org/projects/webkit/wiki/WebKit%20Team#AnttiKoivistoanttikreview |title=WebKit Team – WebKit |website=Trac.webkit.org |access-date=1 September 2019}}</ref><ref>{{cite web |url=https://behindkde.org/node/211/ |title=Dirk Mueller | Behind KDE |website=Behindkde.org |access-date=1 September 2019}}</ref> to add CSS support and to refine and stabilize the KHTML architecture,<ref name="auto"/> 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 [[Bi-directional text|right-to-left]]<ref name="auto"/>—before [[Mozilla]] had such support. [[KDE 2.0]] was the first KDE release (on October 23, 2000) to include KHTML<ref>{{cite web |url=https://www.youtube.com/watch?v=Tldf1rT0Rn0 |title=Lars Knoll and George Staikos: From KDE to WebKit |date=26 August 2011 |publisher=[[YouTube]] |access-date=1 September 2019}}</ref> (as the rendering engine of the new [[Konqueror]] [[file manager|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 (module)|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.).<ref>[http://mlblog.osdir.com/kde.devel.ksvg/2005-01/msg00004.shtml]{{dead link|date=March 2018|bot=InternetArchiveBot|fix-attempted=yes}}</ref> KSVG2 is also a part of [[WebKit]].<ref>{{cite web|url=http://webkit.org/projects/svg/|title=The WebKit Open Source Project|website=Webkit.org|date=7 November 2015 |access-date=1 September 2019}}</ref> ===Sunsetting=== KHTML was scheduled to be removed in [[KDE Frameworks]] 6.<ref name="kde 6">{{cite web |url=https://phabricator.kde.org/T11543| title=Port Konqueror away from KHTML|website=phabricator.kde.org|access-date=2023-05-05}}</ref> Active development ended in 2016, just the necessary maintenance to work with updates to Frameworks 5.<ref name="git_log"/> It was officially discontinued in 2023.<ref name="discontinued"/> ==Standards compliance== The following standards are supported by the KHTML engine: {{Div col|colwidth=25em}} * [[HTML]] 4.01 * [[HTML5|HTML 5]] support * [[Cascading Style Sheets|CSS]] 1 * [[Cascading Style Sheets|CSS]] 2.1 (screen and paged media) * [[Cascading Style Sheets|CSS]] 3 Selectors (fully as of KDE 3.5.6<ref>{{cite web|url=http://www.kde.org/announcements/changelogs/changelog3_5_5to3_5_6.php|title=KDE 3.5.6 Changelog|publisher=K Desktop Environment}}</ref>) * [[Cascading Style Sheets|CSS]] 3 Other (multiple backgrounds, box-sizing and text-shadow) * [[Portable Network Graphics|PNG]], [[Multiple-image Network Graphics|MNG]], [[JPEG]], [[Graphics Interchange Format|GIF]] graphic formats * [[Document Object Model|DOM]] 1, 2 and partially 3 * [[JavaScript|ECMA-262/JavaScript 1.5]] * Partial [[Scalable Vector Graphics]] support {{div col end}} ==Descendants== {{Main|WebKit#Origins}} KHTML and [[KJS (software)|KJS]] were adopted by [[Apple Inc.|Apple]] in 2002 for use in the [[Safari (web browser)|Safari]] web browser. Apple publishes the source code for their [[Fork (software development)|fork]] of the KHTML engine, called [[WebKit]]. In 2013, [[Google]] began development on a fork of WebKit, called [[Blink (browser engine)|Blink]].<ref>{{cite web|url=https://blog.chromium.org/2013/04/blink-rendering-engine-for-chromium.html|title=Blink: A rendering engine for the Chromium project|website=Blog.chromium.org|access-date=1 September 2019}}</ref> ==See also== {{Portal|Free and open-source software}} * {{section link|List of web browsers|KHTML-based}} * [[Comparison of browser engines]] ==References== {{Reflist|2}} ==External links== * [https://apps.kde.org/konqueror/ Web Browser] – the Konqueror website * [https://techbase.kde.org/Development/Architecture/KDE3/KHTML KHTML – KDE's HTML library] – description at developer.kde.org * [https://invent.kde.org/frameworks/khtml KHTML at the KDE git repository] * [https://www.youtube.com/watch?v=Tldf1rT0Rn0 From KDE to WebKit: The Open Source Engine That's Here to Stay] – presentation at Yahoo! office by Lars Knoll and George Staikos on December 8, 2006 (video) {{Browser engines}} {{KDE}} [[Category:1999 software]] [[Category:Free layout engines]] [[Category:Free software programmed in C++]] [[Category:KDE Frameworks]] [[Category:KDE Platform]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Browser engines
(
edit
)
Template:Cite web
(
edit
)
Template:Dead link
(
edit
)
Template:Div col
(
edit
)
Template:Div col end
(
edit
)
Template:Infobox Software
(
edit
)
Template:KDE
(
edit
)
Template:Main
(
edit
)
Template:Portal
(
edit
)
Template:Reflist
(
edit
)
Template:Section link
(
edit
)
Template:Short description
(
edit
)