KHTML est un moteur de navigateur abandonné qui a été développé par le projet KDE . Il était à l'origine le moteur du navigateur Konqueror à la fin des années 1990, mais son développement actif a cessé en 2016. Il a été officiellement abandonné en 2023.
Construit sur le framework KParts et écrit en C++ , KHTML avait un support relativement bon des standards Web à son apogée. Les moteurs dérivés de KHTML sont utilisés par la plupart des navigateurs largement utilisés aujourd'hui, notamment WebKit ( Safari ) et Blink ( Google Chrome , Chromium , Microsoft Edge , Opera , Vivaldi et Brave ).
Histoire
Origines
KHTML a été précédé par un moteur antérieur appelé khtmlw ou KDE HTML Widget , développé par Torben Weis et Martin Jones, qui implémentait la prise en charge de HTML 3.2, HTTP 1.0 et des cadres HTML , mais pas du DOM , CSS ou JavaScript .
KHTML lui-même a vu le jour le 4 novembre 1998, en tant que fork de la bibliothèque khtmlw, avec quelques légères refactorisations et l'ajout du support Unicode et des modifications pour prendre en charge le passage à Qt 2. Waldo Bastian était parmi ceux qui ont fait le travail de création de cette première version de KHTML.
Réécriture et amélioration
Le véritable travail sur KHTML a en fait commencé entre mai et octobre 1999, avec la prise en compte du choix qui se présentait au projet : « soit faire un effort significatif pour faire avancer KHTML, soit utiliser Mozilla » et avec l'ajout du support pour JavaScript comme priorité absolue. Ainsi, en mai 1999, Lars Knoll a commencé à faire des recherches en vue de l'implémentation de la spécification DOM , annonçant finalement le 16 août 1999 qu'il avait enregistré ce qui équivalait à une réécriture complète de la bibliothèque KHTML, en modifiant KHTML pour utiliser le DOM standard comme représentation interne de document. Cela a permis à son tour d'ajouter les débuts du support JavaScript en octobre 1999, suivi peu après par l'intégration de KJS par Harri Porten .
Au cours des derniers mois de 1999 et des premiers mois de 2000, Knoll a continué à travailler avec Antti Koivisto et Dirk Mueller pour ajouter le support CSS et pour affiner et stabiliser l'architecture KHTML, la plupart de ce travail étant terminé en mars 2000. Entre autres choses, ces changements ont permis à KHTML de devenir le deuxième navigateur après Internet Explorer à prendre correctement en charge l'hébreu , l'arabe et les langues écrites de droite à gauche — avant que Mozilla ne dispose d'un tel support.
KDE 2.0 a été la première version de KDE (le 23 octobre 2000) à inclure KHTML (comme moteur de rendu du nouveau navigateur de fichiers et Web Konqueror , qui a remplacé le gestionnaire de fichiers monolithique KDE).
Autres modules
KSVG a été développé pour la première fois en 2001 par Nikolas Zimmermann et Rob Buis ; cependant, en 2003, il a été décidé de diviser l'implémentation KSVG alors en vigueur en deux nouveaux projets : KDOM /KSVG2 (pour améliorer l'état du rendu DOM dans KHTML sous un état de rendu SVG 1.0 plus redoutable) et Kcanvas (pour abstraire tout rendu effectué dans khtml/ksvg2 dans une seule bibliothèque partagée, avec plusieurs backends pour cela, par exemple, Cairo/Qt, etc.).
KSVG2 fait également partie de WebKit .
Coucher de soleil
KHTML devait être supprimé dans KDE Frameworks 6. Le développement actif a pris fin en 2016, seule la maintenance nécessaire pour fonctionner avec les mises à jour de Frameworks 5. Il a été officiellement abandonné en 2023.
Conformité aux normes
Les normes suivantes sont prises en charge par le moteur KHTML :
- HTML 4.01
- Prise en charge de HTML 5
- CSS 1
- CSS 2.1 (écran et médias paginés)
- Sélecteurs CSS 3 (intégralement à partir de KDE 3.5.6 )
- CSS 3 Autre (arrière-plans multiples, dimensionnement de la boîte et ombre du texte)
- Formats graphiques PNG , MNG , JPEG , GIF
- DOM 1, 2 et partiellement 3
- ECMA-262/JavaScript 1.5
- Prise en charge partielle des graphiques vectoriels évolutifs
Descendance
KHTML et KJS ont été adoptés par Apple en 2002 pour être utilisés dans le navigateur Web Safari . Apple publie le code source de leur fork du moteur KHTML, appelé WebKit . En 2013, Google a commencé le développement d'un fork de WebKit, appelé Blink .