Safari 14 et l'API WebExtensions - signification et pronostic pour les utilisateurs
Si vous voulez juste l'essentiel, le voici : Safari adopte l'API d'extension de navigateur la plus courante et la plus utilisée, mais pas avant d'en avoir supprimé un tas de fonctionnalités liées au blocage du contenu. Dans sa forme actuelle, elle est inutile pour les développeurs de bloqueurs de publicités, et seul le temps nous dira si les choses s'amélioreront.
Apple développait activement la version de Safari était sensée d'apparaître dans macOS Big Sur. La plupart des changements était testés dans la bêta officielle de Safari 14, et l'un d'entre eux a particulièrement intéressé les utilisateurs de bloqueurs de publicité. On parle du soutien des WebExtensions.
Mais c'est quoi les WebExtensions ? Il s'agit d'une API (interface de programmation d'applications) permettant de développer des extensions de navigateur qui peuvent modifier le comportement et l'apparence de votre navigateur. De nombreux navigateurs populaires comme Chrome, Mozilla et Edge prennent en charge l'API WebExtensions, mais Safari s'en est tenu à l'écart, obligeant les développeurs à utiliser un ensemble d'API différent. C'est pourquoi la migration d'une extension de, disons, Chrome vers Safari demande beaucoup d'efforts, et de nombreux développeurs n'ont pas les ressources nécessaires pour le faire. De ce fait, Safari a raté de nombreuses extensions qui sont disponibles pour d'autres navigateurs.
Le juin dernier, lors du salon des développeurs (WWDC2020), Apple a annoncé que Safari 14 prendra en charge les WebExtensions. Pour de nombreux développeurs, cette annonce a été une agréable surprise. Entre autres, nous soutenons cette décision ; cependant, peu de choses changeront en termes de blocage des publicités dans Safari, et voici pourquoi.
En 2015, Safari a introduit ce qu'on appelle l'API de blocage de contenu de Safari. Vous avez deviné d'après son nom qu'elle sert à aider les développeurs à créer des applications de blocage de contenu pour Safari. AdGuard l'utilise également, dans AdGuard pour iOS, AdGuard Pro pour iOS et AdGuard pour Safari. Par rapport aux WebExtensions, cette API présente plusieurs inconvénients importants : ses capacités sont limitées et elle ne s'améliore pas avec le temps. Cela dit, cette API est juste suffisante pour fournir un niveau acceptable de blocage de contenu.
Bon, mais maintenant tout va être différent, n'est-ce pas ? Et nous allons sûrement migrer nos extensions Chrome/Firefox vers Safari ? Malheureusement, non. Il y a quelques sérieux obstacles. Les développeurs de Safari ne se sont pas contentés de copier l'API de WebExtensions. Certaines parties des fonctionnalités prévues par les WebExtensions ne seront pas disponibles dans Safari 14. Par exemple, vous n'y trouverez pas d'option pour bloquer les requêtes web. Vous pouvez essayer : ouvrez la documentation officielle et cherchez "webRequest". C'est ce que vous trouverez :
webRequest
BlockingResponse not supported.
Blocking requests not supported.
Même sans connaissances professionnelles particulières, vous pouvez deviner ce que cela signifie.
Alors, que va-t-il se passer ensuite ? Il y a-t-il une chance que les choses s'améliorent ? Qu'est-ce qui attend les bloqueurs de contenu de Safari à l'avenir ? Franchement, nous n'en avons pas la moindre idée.
D'une part, nous avons cette vieille API de blocage des contenus de Safari qui stagne. Nous avons signalé d'innombrables bogues et fait plus de demandes de fonctionnalités qu'il n'y a de pommes sur un stand de fruits. Ils restent tous ignorés pendant des années. D'après les conversations que nous avons eues avec les développeurs d'Apple, nous comprenons qu'ils ne sont en principe pas opposés à la révisions de notre mise en œuvre de l'API de blocage de contenu pour Safari, si nous le leur suggérons. Mais ils ne promettent évidemment pas de l'accepter, donc nous n'insistons pas, car c'est un travail considérable sans garantie de résultat.
D'autre part, en théorie, ils pourraient prendre au sérieux le développement de l'API WebExtensions et éventuellement ajouter une option permettant de bloquer les requêtes web avec son aide. Honnêtement, il ne semble pas particulièrement probable que la situation évolue dans ce sens. Bien qu'il faille dire que personne ne s'attendait vraiment à l'annonce du soutien des WebExtensions au WWDC en premier lieu, il y a donc toujours une chance. Nous devrons tous attendre et voir.
Et pour l'instant, vous avez deux options :
- Installer AdGuard pour Safari. Il tire la meilleure qualité de filtrage possible de ce que l'API de blocage de contenu de Safari a à offrir.
- Installer AdGuard pour Mac. Il s'agit d'un produit haut de gamme qui nécessite une clef de licence après l'expiration de votre période d'essai, mais il se moque de toute restriction artificielle spécifique au navigateur. Il bloque les publicités et le suivi mieux que n'importe quelle extension de navigateur ne pourrait le faire.