Webkit est un moteur de rendu HTML sur lequel se basent de nombreux navigateurs parmi lesquels Google Chrome et Safari. Intimement lié à la librairie Qt, Webkit forme avec elle un framework avec lequel vous pouvez donner libre cours à votre imagination.
WebKit est un moteur de rendu HTML qui dérive de KHTML, le moteur de rendu pour KDE et Konqueror. C’est un moteur de très grande qualité qui obtient un score de 100% au test ACID 3 depuis 2008, avec de grandes performances à l’exécution et une faible empreinte mémoire. Il est le moteur de rendu des navigateurs Safari et Google Chrome parmi les plus connus, mais aussi de nombreux autres. Il s’agit d’un projet open source, mais il n’est pas utilisable aisément en cet état. On utilisera ses intégrations dans des bibliothèques. Le choix est grand: Cocoa, wxWidgets, GTK+... C’est avec l’intégration de Webkit dans la librairie C++ Qt, appelée QtWebkit, que nous allons travailler aujourd’hui. QtWebKit est intéressant à plus d’un titre. Il s’agit d’une intégration étroitement liée à WebKit car ce sont les développeurs de WebKit eux-mêmes qui l’ont réalisée. Ceci n’a d’ailleurs rien de surprenant car KDE est lui-même fondé sur Qt. Qt, et donc QtWebKit, est une librairie remarquablement portable : Windows, Mac, Linux et UNIX et certains mobiles. Qt est un environnement complet qui va très au-delà de la simple librairie graphique ou GUI. Qt offre en outre un moteur Javascript. Ainsi avec QtWebKit, il très simple de construire un navigateur complet, et cet article a pour but de donner au lecteur les éléments pour le faire. Il serait dommage de s’arrêter là cependant, car avec de l’imagination, il est possible de trouver des quantités d’applications à QtWeb- Kit. On peut par exemple penser à s’orienter vers un navigateur expérimental doté d’outils personnalisés. On peut encore imaginer des applications de bureau portables et extensibles par du Javascript. Les possibilités n’ont en fait de limite que l’imagination. Avant de rentrer dans le vif du sujet, mentionnons encore une qualité de Qt qui est plutôt rare dans le monde de l’informatique : elle est agréable à programmer :-)
Frédéric Mazué