KHTML

KHTML (pour KDE HTML) est le nom d'une bibliothèque logicielle libre de rendu de HTML, créée et utilisée par le projet KDE. KHTML a servi de base pour les forks Webkit, par Apple, puis indirectement Blink, par Google.

Histoire 
KHTML a été développé en même temps que la technologie à composants KPart qu'il utilise pour être intégré à Konqueror, le gestionnaire de fichiers de KDE. Il est sorti en 2000, en même temps que la version 2 de KDE.

En 2002 Apple choisit KHTML ainsi que KJS pour l'interpréteur JavaScript comme base de son moteur de rendu HTML qu'utilisera son navigateur web Safari. Ce nouveau moteur, placé sous licence LGPL et appelé WebKit subit de nombreuses modifications visant notamment à réduire les dépendances aux bibliothèques KDE, à tel point que les échanges de code entre les deux moteurs devinrent très compliqués. Ces problèmes ont été réglés lorsque Apple a ouvert le développement de Webkit en utilisant un dépôt SVN et un système de suivi des bug utilisant Bugzilla. C'est ainsi que certaines modification d'Apple ont pu être intégrées à KHTML, comme celles ayant permis au moteur de rendu de KDE de passer le test Acid2.

En juin-juillet 2007, Trolltech commence à adapter WebKit pour l'intégrer à sa bibliothèque Qt, qui est la principale bibliothèque sur laquelle repose KDE. Cet ajout permettra ainsi à Qt de disposer d'un moteur HTML/JavaScript complet. Le Webkit est disponible dans Qt depuis la version 4.4.0.

Cette intégration de WebKit a été annoncée par Trolltech aux développeurs de KDE durant l'aKademy 2007. Au vu de cela, plusieurs développeurs pensent qu
'il serait intéressant d'utiliser le WebKit de Qt en créant un KPart, pour remplacer KHTML.

Caractéristiques 
KHTML est écrit en C++ et disponible sous licence LGPL. Il est rapide, mais est moins tolérant au niveau des erreurs dans le code HTML que le moteur Gecko, du projet libre Mozilla.

Il respecte plusieurs standards utilisés sur le Web :
 HTML 4.01
 l'écriture bi-directionnelle
 CSS 1, 2.1 (partiellement pour les types de media) et 3 (les sélecteurs, ainsi quelques autres parties de la norme)
 Document Object Model (DOM) 1, 2 et 3 (partiellement pour ce dernier)
 ECMAScript 262, implémenté dans la version 1.5 de JavaScript
 Images au format PNG, MNG, JPEG, GIF
 Support partiel du format vectoriel SVG
 le protocole SSL via OpenSSL
Il supporte également les applets Java

Navigateurs utilisant KHTML 
Plusieurs navigateurs Web utilisent KHTML. On peut citer notamment :
 ABrowse, le navigateur d'AtheOS et Syllable. Pour ce dernier à partir de la version 0.6.4 le moteur WebKit est utilisé à la place de KHTML
 Konqueror, le navigateur du projet KDE
 SkyKruzer, le navigateur de SkyOS
 Safari, le navigateur livré avec Mac OS X utilisait autrefois KHTML, il utilise à présent le fork Webkit.
 Chrome et Chromium utilisent le fork Webkit de KHTML, avant de passer à Blink (lui-même étant un fork de Webkit).
 Opera suit le chemin de Chrome, il utilisait Webkit et est à son tour passé à Blink à partir de la version 15.

Voir aussi 
 Moteur de rendu HTML

Liens externes 
 Web Browser fonctionnalités de KHTML sur konqueror.org
 KHTML, documentation de l'architecture de la bibliothèque sur kde.org

Références 

KDE
Moteur de rendu HTML

Logiciel libre sous licence LGPL
Technologie web
Logiciel pour Unix