Qu’est-ce que Manifest V3 ?

Manifest V3 désigne les nouvelles règles de Chrome pour les extensions. Il a remplacé une API appelée webRequest (qui permettait aux extensions d’inspecter et de bloquer n’importe quelle requête réseau) par une API plus restreinte appelée declarativeNetRequest. Résultat : les bloqueurs de publicités comme uBlock Origin ne peuvent plus faire tout ce qu’ils faisaient. La version complète de uBlock Origin ne fonctionne plus dans Chrome.

En bref

Les extensions pouvaient autrefois inspecter chaque requête réseau du navigateur et décider en temps réel de la bloquer ou non. C’est ainsi que fonctionnaient uBlock Origin, Privacy Badger et les bons bloqueurs de contenu. Manifest V3 de Chrome (2024) a remplacé cette capacité par un système de listes de règles qui plafonne le nombre de règles par extension et supprime les décisions en temps réel. Google a invoqué la sécurité et les performances. En pratique, l’extension la plus installée de Chrome, uBlock Origin, n’a pas pu continuer à fonctionner dans sa forme complète et a fini par être retirée. Le remplaçant « Lite » bloque moins de choses.

Sur cette page

  1. Ce qui a changé
  2. Pourquoi cela a cassé le blocage des publicités
  3. Pourquoi Google l’a fait
  4. Comment les navigateurs ont réagi

Ce qui a changé

Manifest V2 (les anciennes règles) offrait aux extensions une API puissante appelée webRequest. Les extensions voyaient chaque requête que le navigateur s’apprêtait à envoyer et décidaient, pour chacune, de la bloquer ou non. uBlock Origin s’en servait pour :

  • Bloquer des requêtes selon le type de contenu (image, script, police, etc.)
  • Bloquer selon la page à l’origine de la requête (autoriser chez l’éditeur, bloquer chez le traceur tiers)
  • Appliquer des expressions régulières et une logique complexe aux URL
  • Mettre à jour sa liste de blocage instantanément, sans passer par la validation du Chrome Web Store

Manifest V3 a remplacé webRequest par declarativeNetRequest. La nouvelle API prend une liste fixe de règles que le navigateur interprète en interne ; l’extension ne prend jamais de décision en temps réel. Le nombre de règles par extension est strictement plafonné. Les mises à jour de la liste doivent passer par des mises à jour du Chrome Web Store.

Pourquoi cela a cassé le blocage des publicités

Les listes de uBlock Origin sont volumineuses et mises à jour souvent. Ces deux aspects ont été cassés par Manifest V3. L’auteur a documenté les différences en détail ; en résumé :

  • La version complète de uBlock Origin ne pouvait pas fonctionner sous V3 : elle a donc été retirée de Chrome.
  • uBlock Origin Lite a été conçu spécialement pour tenir dans les limites de V3. Il en fait moins.
  • D’autres bons bloqueurs (Adguard, Ghostery) ont publié des versions compatibles V3, avec des compromis similaires.

Pourquoi Google l’a fait

La raison officielle était la sécurité et les performances : l’ancienne API webRequest donnait aux extensions une portée énorme, jusqu’à pouvoir lire tout le trafic HTTP de chaque onglet. On peut sérieusement défendre que c’était trop de privilèges.

La raison pratique que beaucoup ont relevée : le cœur de métier de Google, c’est la publicité. Le navigateur dont les nouvelles règles limitent les bloqueurs de publicités appartient à la plus grande régie publicitaire du monde. Ces deux faits ne prouvent pas que le changement était malveillant, mais l’image n’est pas très bonne.

Comment les navigateurs ont réagi

Firefox a conservé Manifest V2 en parallèle de V3, uBlock Origin complet y fonctionne donc toujours. Brave, Vivaldi, Opera et Edge utilisent tous Chromium et héritent de V3. La plupart intègrent leur propre bloqueur, non soumis aux règles des extensions, ce qui est la solution à long terme. Dazr fait de même : un bloqueur intégré au niveau du réseau, avec les mêmes listes que uBlock Origin, qui n’a pas du tout à passer par l’API d’extensions de Chrome.

À lire aussi