Vous n'avez pas encore de notification

Page d'accueil

Options d'affichage

Abonné

Actualités

Abonné

Des thèmes sont disponibles :

Thème de baseThème de baseThème sombreThème sombreThème yinyang clairThème yinyang clairThème yinyang sombreThème yinyang sombreThème orange mécanique clairThème orange mécanique clairThème orange mécanique sombreThème orange mécanique sombreThème rose clairThème rose clairThème rose sombreThème rose sombre

Vous n'êtes pas encore INpactien ?

Inscrivez-vous !

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

Mettre sous le tapis != faire le ménage
Logiciel 7 min
Tailing : Firefox 57 retarde les trackers pour accélérer les pages, une bonne approche ?

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.

64 commentaires
Avatar de Jarodd INpactien
Avatar de JaroddJarodd- 26/12/17 à 09:55:16

Le problème que peut rencontrer Mozilla, c'est qu'un ralentissement causé par des scripts de tracking lui soit reproché, alors que Firefox n'est évidemment pas en cause. Le problème se posait déjà il y a des années, avec les extensions mal codées qui bouffaient trop de RAM => "Firefox est trop gourmand". Donc je comprends qu'il y ait besoin d'expliquer ce qui se passe sous le capot.

C'est bien que ce développeur explique clairement ce qu'il se passe, cela peut amener les choses à évoluer. Mai la MoFo approuve-t-elle cette explication publique ? Car cela semble venir d'une initiative personnelle du développeur, pas d'une communication officielle de l'éditeur. M'est avis que les publicitaires vont encore gueuler et faire du chantage pour que leurs scripts soient chargés aussi rapidement que les autres...

Personnellement, j'avais déjà remarqué le 1er bug évoqué, sur lequipe.fr. Je n'avais pas creusé la question de l'absence de contenu sur les pages de direct, même si je me doutais que cela provenait de la gestion de leur tracking, vu que ce site est une "référence", et que j'ai les extensions qui permettent d'éviter ce tracking massif. Mais j'avais résolu le problème en changeant de site pour suivre les matchs, lequipe.fr se moque de ses visiteurs.

Édité par Jarodd le 26/12/2017 à 09:56
Avatar de David_L Équipe
Avatar de David_LDavid_L- 26/12/17 à 10:06:22

Oui comme dit, il y a une dimension courtermiste et d'apparence dans ce genre d'outils, ce qui m'inquiète surtout c'est de ne voir que ça de développé dans la stratégie de la MoFo pour le moment, et rien de nature à inciter au changement des pratiques.

Et comme tu le dis assez bien, on "découvre" cette fonctionnalité surtout parce qu'un développeur a pris l'initiative d'en parler sur son blog perso ;)

Avatar de durthu Abonné
Avatar de durthudurthu- 26/12/17 à 10:21:00

C'est marrant, j'avais remarqué que quand j'ouvrais des liens venant de mon lecteur de flux RSS ou autres, il y a un temps de latence au chargement de la page....
Ceci explique donc cela !

Avatar de anonyme_d5bf0b9f87fd15affa58563db3b0ac5d INpactien

La Fondation Mozilla et sa filiale commerciale Mozilla corp «qui s'occupe du développement et du marketing du navigateur Mozilla Firefox.» vivent en partie de la publicité. Il m'est donc avis que la publicité intrusive et invasive ne soit pas la préoccupation de Mozilla, seulement que Mozilla souhaite un navigateur qui se démarque de Google Chrome.

Pas sûr que l'apparente rapidité de l'engin soit la solution à sa popularité (est-ce une condition sine qua non?).

Édité par joma74fr le 26/12/2017 à 10:25
Avatar de psikobare Abonné
Avatar de psikobarepsikobare- 26/12/17 à 10:49:25

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.

Quel horreur. Je savais que le nouveau site de l'Équipe était nul mais à ce point...

Avatar de zefling Abonné
Avatar de zeflingzefling- 26/12/17 à 10:52:21

David_L a écrit :

Oui comme dit, il y a une dimension courtermiste et d'apparence dans ce genre d'outils, ce qui m'inquiète surtout c'est de ne voir que ça de développé dans la stratégie de la MoFo pour le moment, et rien de nature à inciter au changement des pratiques.

Et comme tu le dis assez bien, on "découvre" cette fonctionnalité surtout parce qu'un développeur a pris l'initiative d'en parler sur son blog perso ;)

Ça reste un billet de blog qui est passé sur Planet Mozilla, donc plus ou moins faisant partie de la communication de Mozilla. Il y a beaucoup d'articles techniques de dév dessus qui ne sont pas directement issus de la communication plus grand public du blog officiel.

Avatar de sksbir INpactien
Avatar de sksbirsksbir- 26/12/17 à 10:57:38

Il faudrait un code de couleur sur l'onglet de la page en cours de chargement, genre fond bleu pendant le chargement "utile", puis fond rouge pour le chargement du reste, puis retour au neutre quand le chargement est terminé.
cela donnerait une bonne approche visuelle de ce que contient la page chargée en terme de scripts utiles/publicitaires.
Ou un logo comme celui du haut parleur sur la page qui génère du son... bref, un truc comme ça.

Édité par sksbir le 26/12/2017 à 10:58
Avatar de skankhunt42 Abonné
Avatar de skankhunt42 skankhunt42 - 26/12/17 à 11:10:59

David_L a écrit :

ce qui m'inquiète

Moi ce qu'inquiète c'est que cette page pèse 1.7 mo dont 67% du poid ( 1.2mo ) occupé par des images... si je prend une image au pif ( celle la : ) elle est chargée en 1274px de large alors que sur le site elle n'est affiché qu'en 340px dans le "menu" et que pour illustrer la news seulement 900px de large.

Alors qu'avec quelques lignes de code il est possible de créer plusieurs taille d'images pour charger que celle qui vont bien et utiliser le moins de bande passante possible. J'espère que bientôt google / mozilla / autre commencera aussi à pénaliser ce genre de mauvaise utilisation du web.

Avatar de zefling Abonné
Avatar de zeflingzefling- 26/12/17 à 11:26:38

skankhunt42 a écrit :

Alors qu'avec quelques lignes de code il est possible de créer plusieurs taille d'images pour charger que celle qui vont bien et utiliser le moins de bande passante possible. J'espère que bientôt google / mozilla / autre commencera aussi à pénaliser ce genre de mauvaise utilisation du web.

Normalement, même pas besoin de code, le HTML permet de le faire avec les attributs sur une balise img : sizes et srcset

Avatar de Ler van keeg INpactien
Avatar de Ler van keegLer van keeg- 26/12/17 à 11:51:09

Le soucis c'est que Firefox n'étant pas le numéro 1, il leur est difficile d'imposer des "bonnes pratiques". Leur impact est faible par rapport à Chrome malheureusement. Google peut imposer des changements et qui seront suivis par peur de perdre ses visiteurs.

Il n'est plus possible de commenter cette actualité.
Page 1 / 7