Des extensions Chrome mignonnes qui ne ralentissent pas votre navigateur
Les extensions de navigateur décoratives ont une réputation, et elle est largement méritée : lourdes, bavardes, installées avec une liste d'autorisations que personne n'a lue. C'est dommage, parce que la catégorie est vraiment amusante et que chacun de ces problèmes est évitable.
Trois choses à vérifier
- La liste des autorisations. Chrome l'affiche avant l'installation. Storage est un fichier de préférences. Tabs, cookies, history et webRequest sont celles qui permettent à une extension de regarder ce que vous consultez.
- Si elle touche la mise en page. Une extension qui insère des éléments dans le flux du document, ou qui mesure des positions à chaque événement de défilement, peut faire saccader une page fluide, quelle que soit la modestie de ce qu'elle dessine.
- Où elle envoie ses requêtes. Une décoration dont l'onglet réseau s'agite fait un second travail dont on ne vous a pas parlé.
Pourquoi c'est la mise en page qui mord
Lire une propriété de mise en page — la hauteur d'un élément, sa position à l'écran — force le navigateur à terminer tout calcul de mise en page en attente avant de pouvoir répondre. Faites cela dans un gestionnaire de défilement et vous lui avez demandé de s'arrêter pour mesurer soixante fois par seconde, sur une page qu'il dessinait à moitié.
C'est le mécanisme derrière la plupart des plaintes du type « cette extension rend le défilement saccadé », et il reste invisible jusqu'à ce que quelqu'un le profile. La correction n'a rien de glorieux : ne jamais lire la mise en page pendant un défilement, n'écrire que des transformations, et laisser le compositeur déplacer.
Ce que cela donne ici
scrolldog est un petit animal en pixels qui court le long du bord de chaque page à votre vitesse de défilement. C'est aussi un exemple traité des vérifications ci-dessus, parce qu'il devait les passer pour être supportable au quotidien :
- Deux autorisations : storage et unlimitedStorage. Pas de tabs, pas de cookies, pas de history, pas de webRequest.
- Une autorisation d'hôte — api.scroll.dog — servant à vérifier une licence, jamais à toucher la page où vous êtes.
- L'animal vit dans un rail fixe de taille nulle et n'écrit qu'une transformation CSS, de sorte que la mise en page de votre page ne change jamais.
- Le défilement est écouté passivement et ramené à une écriture par image d'animation.
- Un interrupteur le retire instantanément de tous les onglets ouverts.
Rien de tout cela n'est une vantardise — c'est le minimum. Une chose dont tout le métier est d'être agréable à regarder n'a pas à rendre quoi que ce soit plus lent.
Voir le chien