Retour au blog

Ce qu'est Chromium : la base du navigateur et ses limites

Chromium est un projet de navigateur open source et la base commune de navigateurs comme Chrome, Edge, Brave et Opera, sans être lui-même un produit fini destiné au grand public. L'article explique la relation entre le projet et les distributions, et ce que l'expression basé sur Chromium permet d'affirmer ou non.

Au moment d'installer un navigateur, rares sont ceux qui réalisent qu'Edge, Brave, Opera, Vivaldi et Chrome utilisent le même code sous-jacent. Ce code s'appelle Chromium, et il détermine la façon dont les pages sont rendues, dont les scripts sont exécutés et dont les extensions peuvent appeler certaines interfaces.

Un projet, pas un produit

Niveaux allant de la compilation du projet Chromium au produit destiné à l'utilisateur

Chromium est un projet open source, publié sous licence libre en 2008 en même temps que Chrome, qui comprend le moteur de rendu Blink, le moteur JavaScript V8 et l'intégralité du code de l'interface du navigateur. Google pilote sa maintenance, mais le code est public et chacun peut s'en servir pour créer sa propre distribution.

La différence essentielle est la suivante : Chromium lui-même n'est pas un produit fini pour le grand public. Ce qui est proposé officiellement, ce sont des instantanés compilés en continu, sans mise à jour automatique, sans système de comptes et sans support de marque ni de services. C'est aussi ce qui explique pourquoi beaucoup de personnes qui téléchargent Chromium constatent qu'elles doivent gérer les mises à jour elles-mêmes.

Pourquoi tout le monde l'utilise

Maintenir un moteur de navigateur coûte démesurément cher. Suivre les standards du web, corriger les failles de sécurité et s'adapter à divers systèmes d'exploitation et à du nouveau matériel exigent une équipe engagée sur le long terme. En écrire un de zéro n'est pas réaliste ; partir d'une branche de Chromium et la modifier coûte bien moins cher et permet d'hériter directement de l'écosystème d'extensions et des outils de débogage.

Les voies se sont donc séparées. Chrome est le produit de Google ; Edge a abandonné son moteur maison en 2020 pour passer à Chromium ; Opera avait franchi ce pas plus tôt ; Brave, Vivaldi et Samsung Internet se différencient eux aussi sur cette base. WebView sous Android et les applications Electron sur ordinateur utilisent également Chromium. À l'inverse, Firefox s'appuie sur Gecko et Safari sur WebKit, une autre voie technique.

Sa différence avec Chrome

Une origine commune ne signifie pas qu'il s'agit de la même chose. Chrome ajoute à Chromium un programme de mise à jour automatique, des statistiques de plantage et d'usage, la synchronisation avec le compte Google, et a acheté des licences pour intégrer des codecs propriétaires comme H.264 et AAC ainsi que Widevine DRM, ce qui permet aux sites de streaming de fonctionner normalement. Les compilations officielles de Chromium n'incluent généralement pas ces éléments : une page vidéo peut s'ouvrir sans pouvoir être lue, et ni connexion ni synchronisation ne sont disponibles.

Les valeurs par défaut en matière de vie privée diffèrent également. Chromium ne renvoie pas de télémétrie, mais ne propose pas non plus les réglages de confidentialité de Chrome ; les navigateurs dérivés font chacun leurs propres choix, Brave bloquant par défaut les publicités et les scripts de suivi et Edge remplaçant le système de comptes par celui de Microsoft. Aucune de ces différences ne se situe dans le moteur.

Autre écart souvent négligé : l'avancement des versions. Il existe un décalage temporel entre les éditeurs dérivés et le projet amont, et certains numéros de version semblent avancer de concert alors que les correctifs sont en réalité fusionnés séparément. Face à un problème qui n'apparaît que dans un navigateur précis, il faut d'abord vérifier la version, puis soupçonner le moteur.

Pourquoi la compatibilité et l'automatisation s'y intéressent

Quand le développement front-end tombe sur une page qui fonctionne dans Chrome et échoue dans d'autres navigateurs, la première étape consiste à déterminer s'il s'agit d'un problème de moteur ou d'une modification de l'éditeur. Tant que tout repose sur Chromium, le comportement du CSS et de JavaScript est largement prévisible, et les écarts viennent surtout de l'ancienneté de la version et des correctifs de l'éditeur.

L'automatisation en profite aussi. Un protocole de débogage commun signifie qu'un script écrit pour Chromium s'exécute souvent directement sur un navigateur dérivé ; les interfaces de DevTools et la manière d'appeler le mode headless sont également cohérentes. La difficulté vient des versions : les éditeurs dérivés suivent le projet amont à des rythmes différents, certains accusent plusieurs versions de retard, un même script peut fonctionner sur une version ancienne et renvoyer une erreur sur une nouvelle, ou marcher dans le navigateur A mais pas dans le navigateur B ; figer la version compte donc plus que courir après la plus récente.

Les tâches d'automatisation qui doivent tourner en parallèle sur la durée fixent en général une version de Chromium et l'utilisent avec un environnement d'exécution isolé. La plupart des outils d'isolation de comptes multiples s'appuient eux aussi sur Chromium, parce qu'il est open source, que sa version peut être figée et que ses interfaces d'extension et d'automatisation sont complètes. PurpleMark fait partie de ces outils : il attribue à chaque compte un environnement de navigateur indépendant et sépare les profils, les sorties réseau et les caractéristiques de l'appareil.

Ce que cette phrase permet d'affirmer et ce qu'elle ne permet pas

Dire qu'un navigateur est basé sur Chromium permet d'affirmer que le moteur de rendu et le moteur de scripts sont identiques, que les pages se comportent de façon proche, que les interfaces d'extensions et le protocole de débogage sont globalement interchangeables et que le risque de compatibilité web est faible.

Ce que cela ne permet pas d'affirmer est une longue liste : les valeurs par défaut en matière de vie privée, la collecte ou non de télémétrie, la capacité de synchronisation, les canaux de mise à jour, la présence de fonctions supplémentaires de blocage ou d'accélération, et le nombre de versions de retard par rapport à l'amont. Cela ne permet pas davantage de juger s'il est sûr, car ce que Chromium ouvre, c'est le code, pas la configuration par défaut.

Prendre un navigateur basé sur Chromium pour le même produit que les autres est la lecture erronée la plus fréquente. Ce qui détermine réellement l'expérience quotidienne, c'est ce que chaque éditeur ajoute sur cette base, ce qu'il en retire et à quelle fréquence il se synchronise avec l'amont.