Tailing : Firefox 57 retarde les trackers pour accélérer les pages, une bonne approche ?

Mettre sous le tapis != faire le ménage 64
Accès libre
image dediée
Navigateurs
David Legrand

L'une des recettes de Firefox 57 pour réduire le temps de chargement des sites a été dévoilée par l'un de ses développeurs. Le navigateur retarde désormais certains scripts utilisés à des fins publicitaires, au profit du reste de la page.

Avec Firefox 57 Quantum, Mozilla a annoncé proposer une nouvelle version bien plus rapide que les précédentes. Une efficacité qui a demandé un travail de fond à de nombreux niveaux, comme nous avons déjà eu l'occasion de l'évoquer.

Mais il y a un terrain sur lequel la fondation s'était pour le moment assez peu étendue : celui de la gestion des scripts de pistage. En effet, si les développeurs de sites travaillent à rendre leurs créations toujours plus réactives, un élément vient perturber cet objectif ces dernières années, la multiplication des trackers.

if tracker then on verra plus tard

Du fait de l'automatisation publicitaire et de la massification de la collecte de données par des tiers, il n'est pas rare de voir une bonne centaine de scripts se charger au sein d'un site. Bien que cela se fasse le plus souvent de manière asynchrone (non bloquant pour le reste de la page), ils sont traités de la même manière qu'un script « utile ». 

Ainsi, avec Firefox 57 Quantum, une nouvelle fonctionnalité a été introduite : le tailing. C'est en tous cas le nom que lui donne Honza Bambas, développeur tchèque qui travaille principalement sur la partie réseau du navigateur, et donc sur la gestion des ressources lors de leur chargement. Elle est en préparation depuis avril dernier.

Il détaille son fonctionnement au sein d'un billet de blog publié il y a quelques jours. On y apprend que les données utilisées pour la protection contre le pistage sont également exploitées afin de retarder le chargement de certains scripts.

« Les scripts de tracking ne sont pas désactivés, nous retardons simplement leur chargement de quelques secondes lorsque nous le pouvons. Les requêtes sont mises en attente seulement lorsque des ressources du site sont encore en cours de chargement, et pour un maximum de six secondes. Cela concerne uniquement les scripts ajoutés dynamiquement ou de manière asynchrone. Les pixels utilisés pour le pistage et les requêtes XHR sont systématiquement retardées, tout comme celles effectuées par un tracker. »

Pour aider les utilisateurs à comprendre ce qu'il se passe, il diffuse deux images où l'on voit une représentation des scripts liés au bon fonctionnement du site (en bleu), et ceux liés à du pistage (en orange), avec ou sans le tailing activé :

Firefox TailingFirefox Tailing
Sans tailing / Avec tailing

Du propre aveu de Bambas, cela n'est pas sans poser problème sur certains sites, notamment ceux « mal conçus » ou dont le rendu est lié au chargement de scripts accessibles via des domaines habituellement exploités pour le pistage.

Il donne ainsi l'exemple du site de L'Équipe, qui appelle l'API Twitter dans un script synchrone alors qu'elle est chargée de manière asynchrone. L'élément appelé n'étant pas présent, certaines fonctionnalités de la page sont inactives. Le développeur précise qu'aucun problème n'était apparent avant la mise en place du tailing « par chance », puisque les serveurs de Twitter étaient assez rapides pour répondre avant que le script n'effectue l'appel. Il note également que le problème se produit lorsque la protection contre le pistage est activée. 

Second cas évoqué : celui du page-hiding snippet proposé par Google dans le cadre de son service de tests A/B Optimize.  Les scripts sont chargés depuis le domaine www.google-analytics.com qui est détecté comme une source de pistage, leur chargement va donc être retardé. Problème, pendant cette phase le contenu de la page a été rendu totalement transparent par le service, empêchant donc l'utilisateur d'en lire le contenu. Il aura donc l'impression que quelque chose se passe mal, du fait du fonctionnement de ce module de test et de la mise en place du tailing par Mozilla.

Une fonctionnalité paramétrable

Le délai de six secondes évoqué par le développeur n'est pas figé. En effet, dans les paramètres de Firefox via la section about:config, on peut trouver quatre éléments rattachés au tailing, activé par défaut. Il est désactivable en passant network.http.tailing.enabled sur false.

Mais on retrouve également network.http.tailing.delay-max, qui permet d'allonger ou raccourcir le délai maximal (en millisecondes) adjoint au chargement des scripts de pistage. Les deux derniers semblent indiquer un délai minimal, appliqués de manière générale (network.http.tailing.delay-quantum) ou lorsque le contenu DOM de la page est chargé (network.http.tailing.delay-quantum-after-domcontentloaded).

Firefox Tailing

Tailing : bonne ou mauvaise idée ?

Reste une question à se poser : est-ce que la mise en place du tailing est une bonne chose ? Pour Mozilla, c'est le cas puisque cela fait apparaître Firefox 57 Quantum comme plus rapide. Ce, de manière assez simple et sans risque de se mettre l'industrie publicitaire à dos puisque les scripts continuent d'être chargés, avec quelques secondes de retard.

L'utilisateur y gagne également à court terme puisqu'il voit les sites qu'il visite s'afficher plus vite. Mais il y a un risque : lui donner l'impression que tout va mieux, alors que sur le fond, c'est loin d'être le cas. Car ici, on ne fait que mettre la poussière sous le tapis, plutôt que de régler sur le fond la question du pistage publicitaire massif, mené le plus souvent au détriment de la performance des sites (et sans le consentement de l'utilisateur).

Ainsi, un site avec peu ou pas de trackers pourra paraître comme aussi performant qu'un autre qui en est bourré. L'internaute ne pourra plus forcément les différencier, donc juger de l'attitude de chacun. La problématique n'est pas nouvelle, puisque l'on a bien vu dans le domaine publicitaire que cela revenait surtout à reculer pour mieux sauter.

Les internautes utilisent en effet de plus en plus des bloqueurs de publicité, et peuvent avoir l'impression que tous les sites se valent. Or, ce n'est pas le cas. Un site qui affiche peu de publicité voit ses espaces bloqués de la même manière que celui qui en est bourré, et l'utilisateur n'a aucun moyen de saisir la nuance une fois l'extension mise en place.

Une approche intéressante, mais incomplète

Bref, cela permet de limiter la casse en l'état, de composer avec les mauvaises pratiques des éditeurs et de leurs partenaires, notamment sur le terrain publicitaire. Mais cela ne suffira pas. Il faut informer l'internaute des pratiques des sites qu'il visite, mais surtout agir pour que ces derniers changent d'état d'esprit.

Bien que l'attitude de Google soit critiquable à bien des égards, la société semble avoir déjà fait ce choix à plusieurs niveaux. Le framework AMP avait par exemple banni JavaScript des sites mobiles, autorisant des fonctionnalités avancées seulement dans des conteneurs, là aussi chargés après le reste de la page. Profiter des avantages de ce format, c'était aussi faire le choix d'un type de pages qui impose de bonnes pratiques.

Le dispositif qui sera mis en place mi-février, visant à bannir la publicité des sites qui abusent de formats jugés comme problématiques par la Coalition for better ads, est elle aussi intéressante sur ce point. Bien qu'elle soit largement incomplète, notamment sur la question du pistage, elle vise aussi à imposer aux éditeurs de nouvelles règles en matière de pratiques publicitaires, qui vont dans le sens d'un plus grand respect de l'internaute.

Un terrain sur lequel Mozilla semble toujours hésiter à aller. La fondation se focalise encore trop souvent sur des solutions qui ne font aucune distinction sur les pratiques, sans chercher à distinguer les éditeurs qui sont dans une démarche vertueuse de ceux qui abusent de manière manifeste sur la question de la publicité et du pistage. Si l'on comprend que certains internautes optent pour une approche « tout ou rien », un navigateur se doit d'être un peu plus pragmatique.

Espérons que l'arrivée du Règlement général sur la protection des données (RGPD) et d'ePrivacy en mai permettront à Mozilla et à ses développeurs d'évoluer sur ce terrain, via des solutions qui vont dans le bon sens, pour tous. Le respect de la vie privée et la maitrise de l'environnement publicitaire seront de plus en plus un critère de choix dans les années à venir, et c'est peut-être là que se trouve l'une des clés de la reconquête de Firefox face à Chrome.


chargement
Chargement des commentaires...