Raymond Hill, créateur du système de blocage de contenu indésirable uBlock Origin, a publié une extension de navigateur expérimentale appelée uBO Minus, qui implémente une version de uBlock Origin traduite sur l'API declarativeNetRequest, dont l'utilisation est exigée dans la troisième version du manifeste Chrome. Contrairement à l'uBlock Origin classique, la nouvelle extension utilise les capacités du moteur intégré au navigateur pour filtrer le contenu et ne nécessite pas de permissions pour intercepter et modifier toutes les données des sites lors de son installation.
L'extension ne propose pas encore de panneau contextuel ni de pages de configuration, et sa fonctionnalité est limitée au blocage des requêtes réseau. Pour fonctionner sans autorisations étendues, certaines fonctionnalités comme les filtres cosmétiques pour remplacer le contenu sur la page («##»), l'injection de scripts sur les sites («##+js»), les filtres de redirection des requêtes («redirect=»), les filtres pour les en-têtes CSP (Content Security Policy) et les filtres pour supprimer les paramètres de requêtes («removeparam=») sont désactivées. Par ailleurs, la liste des filtres proposés par défaut correspond entièrement à celle de uBlock Origin et comprend environ 22 000 règles.
De plus, il y a quelques jours, une version expérimentale de l'extension de blocage de publicité AdGuard — AdGuardMV3 — a également été présentée, traduite sur l'API declarativeNetRequest et capable de fonctionner dans les navigateurs prenant uniquement en charge la troisième version du manifeste Chrome. Le prototype proposé pour test fournit toute la fonctionnalité nécessaire pour les utilisateurs ordinaires pour bloquer les publicités, mais il ne possède pas les fonctionnalités avancées de l'extension pour la deuxième version du manifeste, qui peuvent intéresser les utilisateurs avancés.
Dans le nouvel AdGuard, la fonctionnalité de masquage des bannières, des widgets de réseaux sociaux et des éléments intrusifs continuera d'être active, avec le blocage des publicités sur les plateformes vidéo telles que YouTube et le blocage préventif des requêtes liées au suivi des déplacements. Parmi les limitations, on note le scintillement des publicités en raison d'un délai d'application des règles cosmétiques allant de 1,5 à 2 secondes, la perte de certaines capacités liées au filtrage des cookies, l'utilisation des expressions régulières et le filtrage des paramètres de requête (la nouvelle API propose des expressions régulières simplifiées), et l'accès aux statistiques et au journal des déclenchements de filtres uniquement en mode développeur (Developer Mode).
Il est également mentionné une possible réduction du nombre de règles en raison des restrictions introduites dans la troisième version du manifeste. Si une seule extension utilisant declarativeNetRequest est installée dans le navigateur, il n'y a pas de problème avec les règles statiques, car un plafond commun s'applique à toutes les extensions, permettant jusqu'à 330 000 règles. Lorsque plusieurs extensions sont installées, un plafond de 30 000 règles s'applique, ce qui peut être insuffisant. Pour les règles dynamiques, la limite est fixée à 5000 règles, et pour les expressions régulières — à 1000 règles.
À partir de janvier 2023, le navigateur Chrome prévoit de cesser le support de la deuxième version du manifeste et de rendre la troisième version obligatoire pour toutes les extensions. À l'origine, la troisième version du manifeste a été critiquée pour avoir perturbé le fonctionnement de nombreuses extensions de blocage de contenu indésirable et de sécurité. Le manifeste de Chrome définit les capacités et les ressources fournies aux extensions. La troisième version du manifeste a été développée dans le cadre d'une initiative visant à renforcer la sécurité, la confidentialité et la performance des extensions. L'objectif principal des changements apportés est de simplifier la création d'extensions sécurisées et performantes, tout en compliquant la possibilité de créer des extensions non sécurisées et lentes.
Le principal mécontentement concernant la troisième version du manifeste réside dans la transition vers le mode lecture seule de l'API webRequest, qui permettait de connecter des gestionnaires personnalisés ayant un accès complet aux requêtes réseau et capables de modifier le trafic à la volée. Cette API est utilisée dans uBlock Origin, AdGuard et de nombreuses autres extensions pour bloquer les contenus indésirables et assurer la sécurité. En lieu et place de l'API webRequest, la troisième version du manifeste propose une API declarativeNetRequest aux capacités limitées, fournissant accès à un moteur intégré de filtrage, qui traite unilatéralement les règles de blocage et n'autorise ni l'utilisation d'algorithmes de filtrage personnalisés ni l'établissement de règles complexes se chevauchant en fonction des conditions.
Au cours de trois ans de discussions sur la prochaine troisième version du manifeste, Google a pris en compte de nombreuses demandes de la communauté et a élargi l'API declarativeNetRequest initialement fournie avec des fonctionnalités demandées par les extensions existantes. Par exemple, Google a ajouté au API declarativeNetRequest le support de plusieurs ensembles de règles statiques, le filtrage via des expressions régulières, la modification des en-têtes HTTP, le changement dynamique et l'ajout de règles, la suppression et le remplacement des paramètres de requêtes, le filtrage lié aux onglets et la création d'ensembles de règles spécifiques à certaines sessions.
Source : opennet.ru
