L'extension de navigateur AdGuard v4.2 : prête pour MV3 !
La nouvelle version de l'extension de navigateur AdGuard a subi des changements majeurs qui ne sont pas immédiatement perceptibles. Nous avons réécrit l'ensemble du code de filtrage en TypeScript et l'avons déplacé dans une nouvelle bibliothèque séparée — ça nous permettra de préparer l'extension à une transition fluide vers MV3.
Manifest V3 (MV3) est la nouvelle extension API de Chrome. Entre autres choses, elle rendra le blocage des publicités beaucoup plus difficile pour les extensions de navigateur en limitant le nombre de règles de filtrage qu'elles peuvent appliquer. Vous pouvez vous renseigner sur les limitations de Chrome et la façon dont nous avons essayé de nous y adapter dans le premier bloqueur de publicités au monde construit sur Manifest V3.
Un bref historique
Il y a quelque temps, nous avons déplacé le moteur de filtrage d'URL de l'extension dans une bibliothèque séparée appelée tsurlfilter
. L'objectif principal de cette bibliothèque est de réutiliser la logique de filtrage dans nos produits (extensions de navigateur pour Chrome et Firefox, convertisseur de règles pour Safari, linter, etc).
Le tsurlfilter
a deux parties principales :
- Un moteur de filtrage qui fait correspondre les URLs aux règles chargées dans le moteur.
- Une interface de programmation spécifique à Chrome et Firefox responsable de l'application des règles trouvées.
Avec MV3, nous devons maintenir le code de filtrage non seulement pour les différents navigateurs, mais aussi pour les différentes versions du manifeste, ainsi que fournir une transition transparente de MV2 à MV3 au fur et à mesure que les navigateurs suppriment l'ancienne API. Nous ne sommes pas pressés de passer immédiatement à MV3 car son API est très limitée.
Ajouter une nouvelle logique pour résoudre ce problème dans tsurlfilter
aurait rendu la bibliothèque trop lourde, nous avons donc décidé de concevoir une nouvelle plateforme logicielle qui cacherait la logique spécifique aux différents navigateurs et manifestes derrière une API simple et unique. La nouvelle bibliothèque a été nommée tswebextension
.
La nouvelle bibliothèque tswebextension
Avec tswebextension
, la maintenance et la mise à jour de nos produits seront plus faciles.
Dans la nouvelle version de l'extension pour Chrome et Firefox, nous avons complètement redessiné le service d'arrière-plan en utilisant tswebextension
- cela nous permettra de passer de manière transparente à MV3 dans Chrome dans les prochaines versions majeures.
De plus, nous avons mis à jour l'API AdGuard qui utilise également tswebextension
sous le capot.
Le journal complet des modifications est disponible sur GitHub. Comme toujours : nous serons heureux de savoir ce que vous pensez de notre extension de navigateur sur les réseaux sociaux (trouvez AdGuard dans votre réseau préféré) ou via GitHub issues.