Installer toutes les extensions Firefox
(jack.cab)- Expérience à grande échelle consistant à collecter et installer l’ensemble des quelque 84 000 extensions Firefox à l’aide de l’API Add-ons de Mozilla
- 84 235 extensions uniques récupérées par scraping, pour une taille totale de 49,3 Go ; le jeu de données a été publié sur Hugging Face
- Le processus d’installation a révélé de nombreuses extensions malveillantes, notamment du phishing, du spam et des PUA (applications potentiellement indésirables)
- Au final, 84 194 extensions ont été installées avec succès, mais le navigateur est devenu pratiquement inutilisable
- L’expérience est considérée comme un cas révélateur de l’ampleur, de la qualité et des problèmes de sécurité de l’écosystème des extensions Firefox
Expérience d’installation de toutes les extensions Firefox
- Expérience à grande échelle consistant à collecter, analyser et installer l’ensemble des quelque 84 000 extensions pour Firefox
- La liste complète des extensions a été extraite via l’API publique Add-ons de Mozilla, puis l’installation réelle a été effectuée
- Le jeu de données a été publié sur Hugging Face et est accessible à tous
- Après plusieurs tentatives, l’installation de 84 194 extensions a réussi, mais le navigateur est devenu pratiquement inutilisable
- L’expérience a mis en lumière la taille de l’écosystème, sa qualité, les extensions malveillantes, le spam et les PUA (applications potentiellement indésirables)
Scraping des extensions Firefox
- L’API addons-server de Mozilla est accessible sans authentification, et son endpoint
searchpermet d’interroger la liste des extensions page par page - Avec le tri par défaut (
recommended,users), seules environ 30 000 extensions étaient récupérables ; il a donc fallu combiner différents critères de tri commecreated,rating,hotnessetupdatedpour retrouver les extensions manquantes - Le paramètre
exclude_addonsa permis de collecter aussi les extensions situées au-delà de la page 600 - Grâce à des requêtes parallèles par catégorie, 84 235 extensions uniques ont été récupérées, avec une taille moyenne de 584,9 Ko et un volume total de 49,3 Go
- Le jeu de données final a été mis en ligne sur Hugging Face et rendu public
- Une mise à jour du 11 avril 2026 a permis d’implémenter un scraping complet plus précis et plus efficace grâce aux filtres
created__gteetcreated__lte
Analyse des extensions Firefox
- La plus grosse extension est dmitlichess (196,3 Mo), qui contient plus de 2 000 fichiers audio
- La plupart des 10 plus grosses extensions embarquent des contenus volumineux tels que des modèles d’IA, des applications Unity ou des ressources d’image
- La plus petite extension est theTabs-saver (7,5 Ko) et ne contient aucun code
- L’extension la moins bien notée est Tab Stack for Firefox
- La plus ancienne extension est Web Developer
- L’extension avec le plus de captures d’écran est RDS Bar (54)
- L’extension demandant le plus d’autorisations est FalscheLaden (3 695 demandes d’autorisation), suivie de Google Dark Theme (2 675)
- Le développeur ayant publié le plus d’extensions est Dr. B (84 extensions), dont la plupart incluent un README mais n’ont pas d’icône
-
Phishing et extensions malveillantes
- Le jeu de données contenait de nombreuses extensions de phishing de portefeuilles crypto
- Exemple : “Іron Wаllеt” récupérait une URL depuis NocoDB trois secondes après l’installation, puis redirigeait vers une page de phishing
- Certaines extensions demandaient la phrase de récupération puis l’envoyaient à un serveur
- Après signalement, la plupart ont été supprimées par Mozilla dès le lendemain
- Des cas de clés API disposant de droits en écriture ont également été trouvés, ce qui a permis d’effacer directement des données
- Le jeu de données contenait de nombreuses extensions de phishing de portefeuilles crypto
-
Extensions de spam SEO
- Le lien “Homepage” sur la page d’une extension était détourné pour générer des backlinks
- Des extensions générées par IA comme Typo Sniper et Tab Fortune Teller redirigeaient vers des sites de casino
- Il existe de nombreuses extensions du type “Code Injector”, avec une structure de code identique et des domaines aléatoires
- La plupart ont été créées en 2025
-
Extensions PUA (applications potentiellement indésirables)
- Une vingtaine d’extensions suivant le schéma “Custom Web Search” totalisaient plus de 700 000 utilisateurs
- Elles présentaient toutes la même structure et les mêmes domaines, avec la mention “Innover Online Group Ltd”
- Mozilla en a désactivé certaines (dont une comptant 115 000 utilisateurs)
- Elles utilisent le code d’affiliation Yahoo
safeplexsearch, avec une version dédiée à Firefox - Une entreprise similaire, Atom Apps, diffusait aussi des extensions selon la même méthode, pour un total de 220 000 utilisateurs quotidiens
-
Résumé statistique
- 34,3 % des extensions n’ont aucun utilisateur quotidien
- Utilisateurs ≥ 10 : 25,1 % ; ≥ 100 : 10,6 % ; ≥ 1 000 : 3,2 % ; ≥ 10 000 : 0,7 %
- 76,7 % sont open source (sur la base des licences SPDX)
- 23 % ont été créées après la rédaction de l’article
- Parmi elles, 19 % n’ont ni utilisateurs, ni avis, ni icône, ni téléchargements
- 2,4 % sont des extensions payantes, dont 38,1 % sont open source
- 34,3 % des extensions n’ont aucun utilisateur quotidien
Tentative d’installation de toutes les extensions
- Le fichier
.xpide chaque extension a été enregistré dans le dossier de profil sous un nom GUID, puisextensions.jsona été modifié - La suppression de
addonStartup.json.lz4et la manipulation deextensions.jsonont permis l’activation automatique -
Tentative 0 : 65 335 (VM Windows)
- Installation tentée via la méthode Enterprise Policy, mais panne de mémoire et gel du système
-
Tentative 1 : environ 1 000
- Téléchargement direct puis déploiement manuel, installation réussie
- Certaines extensions remplaçaient tout le texte par une chaîne spécifique
- De nombreuses extensions de sécurité provoquaient fréquemment blocages de domaines et fenêtres d’alerte
-
Tentative 2 : 65 335
- L’oubli de suppression de
addonStartup.json.lz4a limité l’activation réelle à environ 1 000 extensions - En consultant
about:addons, Firefox se figeait et ne redémarrait plus
- L’oubli de suppression de
-
Tentative 3 : 65 335 (Mac)
- Les téléchargements parallèles ont ralenti les performances, pour une durée totale de 6 heures
- Au lancement de Firefox, le navigateur était sans réponse et
extensions.jsonatteignait 144 Mo - Plus de 400 Go d’écritures disque ont été générés
-
Tentatives 4 à 10 : 1 000 à 6 000
- Jusqu’à 3 000, les pages web pouvaient encore se charger
- À partir de 4 000, tous les sites étaient bloqués ; à 6 000, seul
about:addonspouvait encore se charger
-
Tentative 11 : 84 194 (6 mois plus tard)
- Utilisation d’une machine virtuelle (VM) dans un environnement avec 16 à 24 Go de RAM
- Le téléchargement a pris 1 h 43, et certaines extensions ont été détectées par Defender
- Au lancement de Firefox,
extensions.jsonest monté à 189 Mo ; arrêt forcé au bout de 39 minutes - Nouvel essai ensuite via l’exécution de
enable.js -
Résultats des lancements 1 à 3
- Lancement 1 : attente de 39 minutes sans rendu, puis arrêt
- Lancement 2 : affichage du navigateur, puis crash en moins de 3 minutes
- Lancement 3 : après une longue attente, stabilisation réussie, avec confirmation du chargement de 84 194 extensions
Test d’utilisation de toutes les extensions
-
about:addons
- Échec du chargement de la page de paramètres ; la page d’index ne s’est entièrement chargée qu’au bout de 6 heures
- La consommation mémoire restait entre 27 et 37 GiB
- Les icônes ne s’affichaient pas et les délais de réponse étaient très importants
-
about:support
- Un total de 84 205 extensions était affiché, mais cela incluait les extensions intégrées
- Le nombre réel d’extensions externes installées a été confirmé à 84 194
-
about:preferences
- De nombreuses options de New Tab étaient présentes, avec conflits et crashes
-
New Tab
- Seul Firefox Home se chargeait correctement ; toutes les autres extensions échouaient
-
moz-extension
- L’extension buyPal remplaçait automatiquement l’onglet et était la seule à se charger correctement
- Firefox a ensuite de nouveau crashé
-
example.com
- Même après 24 heures d’attente, la page ne se chargeait pas ; on soupçonnait la présence de nombreuses extensions bloquantes
-
about:telemetry
- Un clic sur Environment Data provoquait un crash immédiat
Évaluation de la possibilité d’utilisation
- Impossible
- Avec 84 000 extensions installées, Firefox devient en pratique inutilisable
Pistes d’exploration supplémentaires
- Analyser la cause des 6 heures de chargement de
about:addonset celle du non-chargement deexample.com - Tester d’autres navigateurs prenant en charge les
.xpi, comme Kagi Orion et GNOME Web - Mener une expérience d’installation complète sur les thèmes (plus de 500 000) ou sur les scripts et styles utilisateur
- Installer l’ensemble du Chrome Web Store est impossible à cette échelle
Résumé des notes
- Au total, 8 extensions n’ont pas pu être récupérées lors du scraping ou ont été supprimées
- Les chiffres ont été mis à jour en avril 2026 après une première version rédigée en septembre 2025
- “Foreshadowing” est mentionné comme procédé littéraire d’anticipation
1 commentaires
Commentaires sur Hacker News
A reçu le prix du « Middle Finger Emoji Sticker »
Il en a fait un bref récapitulatif sur son blog
L’original peut être lu ici
Ça rappelle les anciennes guerres de barres d’outils d’Internet Explorer
Je me souviens que dans chaque cybercafé, il y avait au moins deux barres d’outils Ask.com, Google, Yahoo, puis plus tard Bing installées
J’ai cherché pourquoi cela avait pris si longtemps
Il y a 13 ans, ce n’était pas extensions.json mais extensions.sqlite
Aujourd’hui, toute l’architecture réécrit le fichier complet en le sérialisant toutes les 20 ms, donc ça va pour 15 extensions, mais avec 84 194, ça devient un problème
Je me demande comment cette valeur de debounce a été choisie. Je doute qu’une extension quelconque écrive dans extensions.json plusieurs fois par seconde
Aucune page réelle ne s’ouvre correctement, mais l’article lui-même était vraiment très amusant à lire
J’ai beaucoup ri au passage sur le fait d’« avoir activé le crash reporting ». Du point de vue de l’équipe Mozilla, ça doit ressembler à une histoire d’horreur
En revanche, je n’ai pas réussi à trouver celui publié par l’auteur. On peut les consulter sur crash-stats.mozilla.org
Si le profil existe encore, on peut retrouver l’ID du crash avec ce guide
L’article est vraiment bizarre mais génial
Le plus marquant, c’est d’avoir découvert un bug de performance sur au moins une des pages
about:. Cela mérite clairement une enquête plus pousséeLa liste des extensions peut aussi être consultée sous forme de sitemap
Firefox Add-ons sitemap,
Chrome Web Store sitemap,
Edge sitemap peuvent aussi servir de référence
La vidéo est tellement drôle que j’en ai pleuré
C’est probablement à ça que ressemble la navigation web de personnes âgées qui ne connaissent presque rien à l’informatique. J’aimerais que quelqu’un fasse la même chose avec Chrome
« Ce service mesh est surdimensionné pour notre usage, mais le broker est trop lent pour 84 205 microservices »
Cette tension permanente m’est bien trop familière
Ça m’a rappelé le paquet NPM légendaire qui dépendait de tous les paquets NPM
L’article lié est vraiment hilarant
Je me reconnais beaucoup dans la phrase : « Maintenant que j’ai installé presque toutes les extensions avec ça, tout ce que j’avais fait auparavant me paraît idiot »
J’ai ressenti une même forme de vacuité