Explications sur les moteurs de rendu mobiles Android

Webkit, WebView, Blink, Gecko… Ça vous dit quelque chose ?

Ce qui est sûr, c’est que tout le monde se sert de l’un d’entre eux. Leur histoire et fonctionnement ne sont pas forcément très clairs alors je vais tenter d’expliquer au mieux la situation.

Commençons par la base : c’est quoi WebView ?

Il s’agit d’un moteur de rendu mis à disposition par des organisations (Mozilla, Apple, Google, KDE ou Microsoft) pour que les développeurs puissent afficher du contenu web et exécuter du code JavaScript dans leurs propres applications. Cela améliore grandement l’expérience utilisateur, car il n’est pas nécessaire d’ouvrir un navigateur web. Le WebView permet également l’affichage de pages sur les conditions d’utilisation d’une application par exemple. De ce fait, les développeurs peuvent mettre à jour cette page sans avoir à déployer une mise à jour via le Google Play Store.

Comment se met-il à jour ?

Commençons par le plus délicat : les utilisateurs d’Android 4.3 et inférieur. Depuis début 2015, Google a stoppé toute mise à jour du Webview (en résumé, la base du code était trop lourde pour continuer les mises à jour).
Comme on peut le voir ici, il y a encore pas mal de monde sur ces vieilles versions (même deux ans après cette décision). Par conséquent, il est recommandé de passer par des navigateurs utilisant leur propre moteur de rendu (ou celui d’un autre) tel que Firefox, Opera, Chrome… À partir du moment où vous utilisez un navigateur web ou une application utilisant le WebView système, vous êtes largement exposé à des risques de sécurité.

Pour les autres qui ont de la chance :
Le WebView de Google est open source. Si vous utilisez le firmware officiel de votre téléphone, vous êtes équipé d’office de nombreuses applications Google, dont le WebView. Si vous utilisez des ROMs Custom, il est normalement installé par défaut, mais c’est à chaque développeur de veiller à sa mise à jour. N’hésitez donc à comparer votre version avec celle du Play Store.

Il n’y a pas de différences entre la version AOSP (open source) et celle du Play Store. À la base, Google ne mettait à jour le WebView que lors de nouvelles versions Android, mais à cause de la fragmentation, la grande majorité des utilisateurs Android utilisaient une version obsolète et donc vulnérable. À partir d’Android 5.0 Lollipop, le WebView peut être mis à jour via l’OS ou depuis le Play Store (comme une application lambda). Cela permet à Google de déployer des mises à jour de sécurité sur tous les appareils Android (compatibles), même pour ceux qui n’ont pas de mises à jour de firmware.

Ça fait que Google est encore partout, ça donne quoi côté vie privée ?

Comme on peut s’y attendre, Google surveille tout le trafic depuis n’importe quelle application utilisant le WebView. Dans le Manifest de WebView, il y a une option pour désactiver ce traçage général, mais Google a d’autres cartes dans son jeu. Petit exemple ? Le WebView envoie l’identifiant de l’application utilisée pour chaque site web visité depuis une application utilisant le WebView. Cela devient très compliqué de passer au travers. Un WebView axé sur la vie privée est en construction par le développeur de Privacy browser, mais il ne faut pas mettre la charrue avant les bœufs 🙂

Un peu d’historique et de précisions techniques

En fait, il existe deux bases de code pour afficher du contenu HTML: WebKit (et ses forks) et Gecko. Gecko est le moteur de rendu développé par Mozilla. Il est évidemment utilisé dans son navigateur web Firefox.
Quand Apple a souhaité créer son propre navigateur (Safari), ils n’ont pas voulu prendre Gecko comme base. Il n’était pas très modulaire et avait de piètres performances (ce qui s’est grandement amélioré depuis), sans parler de la licence pas assez permissive à leur goût. Du coup, ils ont pris KHTML et KJS comme base (développés par KDE sur GNU/Linux). C’est ainsi qu’ils ont conçu WebKit.
Puis, quand Google est arrivé dans la partie, ils ont pris la même décision. Chrome était basé sur WebKit puis sur Blink (le fork de WebKit).
Au passage, Opera a copié le principe, mais ils ont finalement abandonné l’idée. Le navigateur se repose également sur Blink désormais.
Tout ça pour dire que le WebView d’Android, qui est utilisé par les applications pour afficher du HTML, est basé sur Blink.

Sur Android, un navigateur web peut prendre le WebView proposé par Google ou arrivé avec son propre moteur de rendu, comme Firefox. En revanche, Apple impose l’utilisation de son WebKit. Par conséquent, Chrome sur iOS tourne avec WebKit et pas Blink.

En conclusion

L’arrivée d’un autre acteur serait plus que la bienvenue. Aujourd’hui, même si on peut utiliser Gecko pour la navigation web, toutes les applications passent par le WebView de Google pour afficher du contenu web. Google sait donc tout ce qu’il se passe.
Google a même rendu possible l’utilisation de Chrome comme moteur de rendu… remplaçant ainsi le WebView de base.

Encore désolé pour les personnes qui sont sur des versions WebView obsolètes depuis des années…

Génération mobiles

A propos Primokorn 49 Articles
Après l'informatique en général, je me suis intéressé aux OS mobiles il y a plusieurs années et plus particulièrement à Android. Beaucoup de lectures et de pratiques me donnent envie de partager toutes ces informations, avec un penchant pour la personnalisation, le logiciel libre, la sécurité et la vie privée. #libriste

6 Commentaires

      • Simple question, puisque tu évoques iOS => Apple a développé Safari basé sur ce qui a donné naissance à WebKit.
        Mozila basé sur Gecko..
        Au final, les 3 (Safari, Mozila et Chrome) se basent sur WebKit.
        Donc Apple a participé à la naissance de Chrome.
        Apple est à l’origine de tous les moteurs de rendu 😀 (raccourci très / trop rapide ?)
        MS est resté dans son coin, et effectivement n’a rien à voir avec Google/Android/Chrome

        • Je ne l’ai pas cité car il n’avait pas sa place ici, tout simplement 😉

          Par contre, non, Gecko (Firefox) n’est pas basé sur WebKit. C’est justement Apple qui n’avait pas voulu de Gecko comme base.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.


*


Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.