- uBlock Origin Lite n’est plus distribué sur le Firefox Add-ons Store, et son créateur Raymond Hill a déplacé l’extension vers un hébergement autonome
- Début septembre, l’équipe de revue de Mozilla a signalé toutes les versions comme enfreignant les règles, invoquant la collecte de données utilisateur et la présence de « minified, concatenated or otherwise machine-generated code »
- Hill a rétorqué que ces reproches n’avaient aucun sens pour quiconque comprend les bases de JavaScript, et a qualifié la procédure de revue de « nonsensical and hostile »
- Mozilla a ensuite reconnu son erreur et présenté ses excuses dans un e-mail inclus dans une issue GitHub, mais uBlock Origin Lite reste introuvable sur addons.mozilla.org
- Les utilisateurs de Firefox doivent récupérer la dernière version sur GitHub, tandis que l’ancienne extension uBlock Origin for Firefox continue d’être proposée et prise en charge
Fin de la distribution sur le Firefox Add-ons Store
- Le créateur de uBlock Origin Lite, Raymond Hill, a mis fin au support sur le Firefox Add-ons Store après avoir subi à plusieurs reprises une procédure de revue qu’il juge « nonsensical and hostile »
- Début septembre, Mozilla a signalé toutes les versions de uBlock Origin Lite comme enfreignant les règles
- Les réviseurs ont estimé que l’extension semblait collecter des données utilisateur
- Ils ont aussi pointé la présence de « minified, concatenated or otherwise machine-generated code »
- Hill a répliqué qu’il suffisait de quelques secondes à quiconque comprend les bases de JavaScript pour voir que ces reproches étaient infondés
Passage à l’hébergement autonome et impact pour les utilisateurs
- Hill a retiré l’extension du Firefox Add-ons Store et l’a déplacée vers une version auto-hébergée
- Les utilisateurs qui veulent continuer à utiliser uBlock Origin Lite sur Firefox doivent télécharger la dernière version depuis GitHub
- Cette version peut se mettre à jour automatiquement par elle-même
- Le dernier message de cette issue GitHub fermée contient un e-mail dans lequel Mozilla reconnaît son erreur et présente ses excuses
- Malgré cela, uBlock Origin Lite a été retiré du Mozilla Add-ons Store et ne peut plus être trouvé sur addons.mozilla.org
Contexte autour d’uBlock Origin et des versions de Manifest
- L’extension historique uBlock Origin for Firefox continue d’être proposée et prise en charge
- La version Lite est une extension basée sur Manifest V3, plus légère et plus efficace en matière d’utilisation des ressources comme le processeur et la mémoire
- Hill avait déjà recommandé de passer à uBlock Origin Lite après que Chrome a commencé à signaler uBlock Origin comme une extension non prise en charge
- Mozilla n’a pas l’intention d’abandonner dans un avenir proche la prise en charge des extensions basées sur Manifest V2, de sorte qu’uBlock Origin continuera d’exister et de fonctionner sur Firefox et les navigateurs compatibles MV2
1 commentaires
Avis sur Hacker News
Je gère au travail une extension de navigateur de taille moyenne, que nous proposions aussi sur Firefox, mais cela fait un an que nous galérons pour revenir dans la boutique Mozilla après une revue manuelle.
Nous sommes aux États-Unis, et il semble qu’il n’y ait que deux relecteurs environ, en Europe, probablement du côté de la Roumanie ; les délais de réponse sont longs, et c’est très frustrant de devoir attendre deux semaines pour corriger des erreurs toutes bêtes, du genre ne pas voir une politique de confidentialité pourtant déjà présente, qualifier les artefacts de build de « code généré par machine et obfusqué », ou encore dire « impossible de reproduire les sources » parce qu’ils n’ont pas suivi les instructions et ont regardé dans le mauvais répertoire.
Ils exigent des builds reproductibles, mais n’arrivent pas à installer la bonne version de yarn, ni à suivre des étapes de configuration de base comme les commandes d’installation exactes indiquées plusieurs fois en gras dans le README, la procédure d’installation de la version de Node, ou les scripts d’automatisation.
Cela devient encore plus compliqué quand une entreprise privée fait la « folie » d’utiliser des modules NPM privés. Même si l’on propose de fournir l’accès à un compte déjà configuré, ou de donner des droits à un compte de revue, Mozilla répond qu’« il est difficile d’utiliser des comptes externes pendant la revue ».
Le simple fait de devoir interagir avec l’équipe de revue des extensions de navigateur est l’une des grandes raisons pour lesquelles je ne recommande plus Firefox. Au mieux, ils sont incompétents ; ils semblent surtout tirer le maximum des revenus de leur contrat avec Google Search, plutôt que chercher sérieusement à offrir un navigateur alternatif et sûr.
Or notre extension construit un fichier wasm à partir de Rust, et après plusieurs échanges, nous sommes arrivés à la conclusion que ce wasm n’avait pas besoin d’être reproductible. Alors même qu’il constitue le cœur de l’extension et contient 99 % de la logique.
Je ne vois pas bien à quoi cela sert que le JS soit reproduit si l’on peut cacher du code potentiellement malveillant arbitraire dans le wasm.
Pendant un moment, nous avons même sérieusement envisagé d’inclure un wasm précompilé dans le paquet source ou dans npm pour simplifier les « builds reproductibles » côté AMO, mais cela nous aurait encore plus éloignés de notre vrai processus de build.
J’ai même entendu dire que, dans certains cas, les relecteurs réutilisaient des machines virtuelles, voire n’en utilisaient pas du tout.
Je m’attendais à ce que le formulaire de revue ait un champ où coller un lien git, puis qu’il existe un pipeline automatisé bien documenté qui lance une VM avec une mémoire et un disque définis, clone le dépôt git, puis exécute
docker build -t ./docker/review/Dockerfile.Je suis surpris que les relecteurs eux-mêmes n’aient pas fortement réclamé ce genre d’outils à leur organisation, ne serait-ce que pour leur satisfaction au travail. J’ai du mal à imaginer à quel point ils doivent se faire harceler par des propriétaires d’apps furieux.
Au final, l’entreprise a réduit la fréquence des mises à jour de l’extension Firefox, parce que son usage était faible et que la revue était trop pénible. En tant que seul ingénieur — peut-être même seul employé — de cette entreprise à utiliser Firefox, j’ai trouvé ça dommage.
C’est un travail qui demande un certain niveau technique, mais qui reste assez ennuyeux, et ces missions plus intéressantes sont probablement aussi mieux payées.
Je travaille chez Mozilla, mais je suis loin de l’équipe Addons, donc je ne sais pas quelles pressions elle subit.
Cela dit, si c’était moi qui gérais ça, l’interlocuteur actuel est gorhill. Je ferais simplement de lui un relecteur d’extensions avec tous les droits, en lui disant qu’il peut ne relire que ses propres extensions.
Il n’y a pas besoin de vérifier ses compétences ou sa fiabilité. Il dispose de bien plus d’historique pour le soutenir que n’importe quel prestataire ou employé.
Il n’est pas non plus un cas unique. Même si Mozilla repose moins qu’avant sur les bénévoles, beaucoup de contributions importantes viennent encore d’eux, et au moins dans l’équipe SpiderMonkey, il n’y a pas de mur entre contributeurs externes et contributeurs rémunérés.
Je ne vois aucune raison pour laquelle on ne pourrait pas faire de gorhill un membre à part entière de l’équipe de revue. Vu la situation actuelle, je ne pense pas qu’il accepterait immédiatement, mais ce serait plus justifié que d’accorder une exception spéciale à une autre personne ou organisation.
Il contribue déjà énormément aux capacités et au succès de Firefox ; autant le laisser contribuer aussi à la revue, qui existe déjà et a de la valeur. À mon avis, même s’il ne relisait que ses propres extensions, ce serait suffisant.
Maintenant, il faut que je trouve qui aller embêter sur Slack.
Même s’il s’agit d’une superstar, il faut que quelqu’un d’autre regarde le code pour éviter que les pratiques de sécurité ne se relâchent.
Si l’on accorde ce privilège, d’autres superstars à la limite du cas particulier voudront les mêmes droits.
Dans l’édition scientifique aussi, même un rédacteur en chef fait relire ses propres articles par quelqu’un d’autre, et le processus de décision se déroule hors de sa vue. C’est bon pour la science.
C’est peut-être une bonne idée, mais Mozilla pourrait alors recevoir de nouvelles plaintes disant qu’elle n’évalue pas la réputation de façon cohérente.
https://wiki.mozilla.org/Add-ons/Reviewers/Guide/Reviewing
À la place, il faut utiliser les versions ESR/Developer/Nightly et mettre
xpinstall.signatures.requiredà false, ce qui réduit fortement la sécurité.Je pense qu’il reviendra d’ici une semaine ; c’est important, car cela permet d’économiser de la batterie sur Firefox par rapport à uBlock Origin classique.
Si j’ai bien compris la chronologie, gorhill semble avoir réagi de façon excessive. Je le dis même en étant généralement très critique envers presque tout ce qu’a fait Mozilla ces cinq dernières années
Il n’est pas réaliste pour Mozilla de vérifier manuellement, de façon sûre et dans les temps, chaque révision de module complémentaire ; au final, ils devaient probablement choisir entre l’automatisation et de longs délais. Avec l’automatisation, les faux positifs sont inévitables
Quelle serait l’alternative ? Supprimer complètement la vérification avant publication ? En tant qu’utilisateur, j’espère que non. On a désormais confirmation que des attaques de supply chain spectaculaires sont bien menées dans la nature
La politique de revue protège aussi gorhill lui-même. Si quelqu’un le menace pour qu’il ajoute un spyware, le fait qu’il y ait une chance que ce soit détecté avant publication rend un peu moins attrayant le fait de le prendre physiquement pour cible
Gorhill et d’autres développeurs d’extensions de premier plan apportent une vraie valeur à Firefox et ont fait preuve d’un bon comportement pendant des années
Cela ne veut pas dire qu’ils devraient pouvoir publier ce qu’ils veulent, mais si un examinateur s’apprête à refuser un plugin connu, une deuxième personne devrait y jeter un œil. Cette erreur aurait évidemment été repérée
Cela ressemble à un nouvel exemple de « Firefox investit trop peu dans ses relations développeurs ». C’est surprenant quand on sait à quel point ils en dépendent
Si uBlock Origin Lite compte 8,4 millions d’utilisateurs, il est difficile de comprendre que gorhill n’ait pas d’interlocuteur dédié chez Mozilla. S’il y a un problème avec l’extension, c’est le genre de chose qui devrait se régler par téléphone
Il est très probable que l’outil d’analyse automatique utilisé par Mozilla ait détecté « ceci est Google Tag Manager » et ait émis l’avertissement habituellement envoyé aux modules complémentaires contenant des scripts suspects
Mais l’e-mail indique clairement que « l’équipe Mozilla Add-ons l’a examiné manuellement »
Soit c’est un mensonge, soit l’examinateur manuel n’a pas compris que l’outil automatique qu’il avait lancé pouvait produire des faux positifs
Qu’une plateforme comme Mozilla fasse de la détection automatique d’abus, cela ne pose pas de problème, mais il ne faut pas mentir dans la communication. Sinon, il faut embaucher des gens qui savent ce qu’ils font lorsqu’ils gèrent le blocage de modules complémentaires
Même pour une extension auto-hébergée, il faut attendre une durée arbitraire si elle ne passe pas la revue à la soumission, et lorsque les règles de filtrage sont empaquetées dans l’extension, le temps compte. Il dit qu’après avoir reçu la notification d’approbation, il faut à nouveau télécharger manuellement le fichier de l’extension, le renommer, le téléverser sur GitHub, puis patcher manuellement
update_urlvers la nouvelle versionAprès avoir soumis
2024.9.12.1004, il a fallu 5 jours pour obtenir l’approbation en auto-hébergement, et au moment de la rédaction,2024.9.22.986n’était toujours pas approuvéePour un hobby, ça n’a vraiment pas l’air amusant
https://github.com/uBlockOrigin/uBOL-home/issues/197
C’est un développeur individuel qui maintient uBlock comme hobby et qui n’accepte même pas les dons, il ne nous doit donc rien
Il a le droit de juger si le processus de revue est assez fluide pour qu’il y consacre son temps et son énergie, et cette fois il a simplement décidé que non
Comme il a rendu l’extension open source, n’importe qui peut publier uBlock Origin Lite à sa place
https://github.com/uBlockOrigin/uBOL-home/issues/197
Ce n’était pas une revue automatique, mais une revue manuelle bâclée
L’auteur explique aussi plus en détail ce qu’implique le processus de revue d’AMO, et dit ne pas vouloir supporter ce stress. Il mentionne aussi qu’une version un peu nuisible du plugin reste disponible
Ne pas vouloir supporter ce stress est une réaction tout à fait compréhensible
Il est très agaçant que, pour distribuer une extension aux utilisateurs ordinaires, il faille la soumettre à un gardien
Comme gorhill l’a dit sur GitHub, même l’approbation de la version auto-hébergée a pris plusieurs jours, ce qui est inacceptable
Imaginez devoir obtenir l’approbation de Microsoft pour distribuer un logiciel. Même Android n’est pas aussi fermé
L’obligation de signature et la suppression de XUL sont les pires choses que Mozilla ait faites. Google fait pareil, et en pire, mais c’est ce qu’on attendrait de Google, pas de Mozilla
Je le sais parce que j’ai maintenu VimFx pendant un certain temps après la suppression de XUL. Suivre les API internes qui changeaient était difficile, mais ils devaient développer le produit, donc je ne pouvais pas leur en vouloir
La vraie raison qui m’a fait abandonner la maintenance de VimFx, c’était l’obligation de signature. Ils n’ont cessé de resserrer la vis au point de rendre impossible l’exécution de « mon code » avec une expérience utilisateur raisonnable
La direction que j’aurais souhaitée était de proposer WebExtensions comme méthode recommandée avec compatibilité et garantie de non-abandon, de ne pas se soucier de la compatibilité des autres API, et de continuer à autoriser les extensions externes à « accès complet » utilisant les API internes
Même si la boutique affichait un avertissement disant « cette extension utilise des API non prises en charge, elle peut casser à tout moment et voler toutes vos données personnelles » et rendait le bouton d’installation rouge vif, elle aurait dû rester autorisée
Ils auraient aussi dû continuer à prendre en charge les extensions auto-distribuées utilisant une clé de signature et une URL de mise à jour gérées par le développeur
Comme ces API n’offraient aucune garantie de compatibilité, cela n’aurait pas demandé beaucoup de travail supplémentaire. Un peu d’UI pour ajouter des avertissements effrayants et le maintien du code de mise à jour hors boutique, tout au plus
De plus en plus de plateformes vont dans cette direction, et je ne serais pas surpris que Windows finisse aussi par y aller
Sur mobile, il semble qu’il faille une build Nightly pour installer des extensions en dehors du dépôt de Mozilla, ce qui suggère que leur façon de penser est en train d’être contaminée par le reste de l’écosystème mobile
Avant de prendre des mesures extrêmes comme retirer un module complémentaire de la boutique, Mozilla devrait d’abord prendre contact s’il y a des questions ou des inquiétudes lors de l’examen
Si vous n’êtes pas une personnalité connue, que vous n’avez pas beaucoup d’abonnés, ou que votre app/extension n’est pas très populaire, il est difficile d’espérer que le problème soit résolu à temps
Le uBlock Origin complet de Gorhill est peut-être l’un des presque seuls arguments de vente qui restent à Firefox
Avec les sommes absurdes que les plus hauts dirigeants de Mozilla ont récemment empochées, ils auraient pu à la place constituer une équipe de premier ordre chargée de faire tout ce dont Mr. Gorhill a besoin
Plus récemment, ils ont ajouté une fonctionnalité de privacy preserving attribution qu’aucun utilisateur n’avait demandée
Je ne comprends pas pourquoi cette extension existe sur AMO. D’après l’article, c’est la « version Lite/Manifest v3 » ; pourquoi installer une version inférieure destinée à d’anciens navigateurs au lieu de la version qui bloque correctement les publicités sur Firefox ?
Les listes déclaratives de domaines sont faciles à mettre en cache et réduisent les activations inutiles des extensions. Avec moins de permissions, l’impact est aussi bien moindre si une future version infectée par un malware arrive sur la boutique
Le moteur de règles de uBlock est très puissant, au point qu’un jeu de règles personnalisé peut injecter du code dans n’importe quel site web. Cela vaut non seulement pour les règles personnalisées, mais aussi pour les règles intégrées dont le compte ou l’hébergement pourrait être piraté, ou qui pourraient être revendues plus tard
Bien sûr, cela ne veut pas dire que j’utiliserais la version Lite, ni que j’approuve le choix de Google. Ils ont tué l’API de blocage des publicités sans fournir d’API de remplacement
Quoi qu’il en soit, comme le code existe et que certaines personnes continuent d’utiliser Google Chrome, on peut aussi proposer cette version sur Firefox
La meilleure question est : si Firefox refuse ce que je veux, pourquoi utiliser Firefox ?
Cela paraît assez dur. Mozilla a fait une erreur, s’est excusé, l’a corrigée et a peut-être même amélioré ses procédures, mais l’auteur retire quand même l’extension et critique Mozilla
À mon avis, l’auteur l’a pris trop personnellement, ou bien il voulait envoyer un message fort pour obtenir une amélioration du processus de revue. Dans l’affaire, le projet y a un peu perdu en visibilité
https://github.com/gorhill/uBlock/issues/38#issuecomment-918...
Il est donc prévisible qu’il en ait aussi eu assez du processus de revue de Mozilla et qu’il dise vouloir arrêter
À l’époque, il avait transmis le projet à une personne quelconque sans scrupules, qui a aussitôt tenté de le monétiser, et Raymond n’a pas aimé le résultat ; il a dû critiquer son ancien projet et a fini par revenir presque au point de départ, après beaucoup de travail supplémentaire entre-temps
Ce genre de projet fonctionne bien quand l’auteur a le sentiment d’offrir à la communauté quelque chose de précieux, et que la communauté l’accepte et l’apprécie
Devoir soumettre sa création à une procédure de « revue » froide et impersonnelle, puis se la voir refuser d’une manière qui montre clairement que personne ne l’a vraiment examinée, ce n’est pas seulement démotivant, c’est insultant
À sa place, je serais parti aussi
Ils n’ont même pas garanti à l’auteur que son add-on ne serait pas de nouveau retiré sans communication préalable dans les deux sens
Mozilla a une page de communiqués de presse : ils auraient pu expliquer publiquement et clairement ce qui s’était mal passé et ce qu’ils allaient changer à l’avenir. Ils auraient aussi pu reconnaître que cette extension est excellente et contribuer financièrement pour qu’elle reste disponible aux utilisateurs
Mais à la place, après qu’un reviewer a lourdement échoué, ils ont fait le minimum possible pour sauver la face. Les motifs invoqués lors de la première revue étaient manifestement faux, à un niveau qu’un développeur JS débutant aurait pu comprendre
Même un reviewer IA aurait fait mieux. ChatGPT 4o mini a estimé que ce fichier ne ressemblait pas à du code obfusqué, qu’il n’était pas sous une forme minifiée où les espaces, retours à la ligne et commentaires auraient été supprimés, et que la présence de commentaires, d’indentation et de fonctions structurées ne correspondait pas aux caractéristiques d’un code obfusqué
Ne pourraient-ils pas être froids et impassibles, comme les gens qui gèrent le « store » de Firefox ?
Même si, à sa place, on pense qu’on aurait agi différemment, à un moment, trop c’est trop
Et Mozilla ne s’est pas excusé. Je ne veux pas faire la police des excuses, mais ce n’est qu’une phrase formelle façon support client contenant le mot « apologize »
C’est suffisant et personne n’en attend plus, mais on peut reconnaître cela pour ce que c’est
C’est une réaction légitime. uBO est une extension indispensable, et si Mozilla tient à imposer un processus de revue d’extensions horrible, piloté par la machine à la manière de Google, il aurait au moins fallu qu’ils se disent qu’une exception s’imposait pour l’une des extensions les plus importantes qui existent
Même si Mozilla « a compris son erreur », on peut comprendre que gorhill soit totalement furieux de toute cette affaire et refuse de coopérer
Leur erreur a été de supposer que, comme beaucoup de développeurs d’extensions et de projets open source, il supporterait les corvées en échange de peu de reconnaissance et d’exigences toujours croissantes
Le résultat est loin d’être idéal, mais malheureusement la responsabilité incombe entièrement à Mozilla
L’extension principale est toujours plus à jour sur Firefox que sur Chrome/Edge
Ce serait une façon de régler le problème des bloqueurs de pubs. Ils ont déjà un contrôle étendu sur Chromium ; la seule vraie alternative restante, Safari, est beaucoup plus difficile à attaquer
Google ne peut pas empêcher les extensions de blocage de pubs sur Firefox, mais peut pousser Mozilla à gérer Firefox comme un logiciel pratiquement abandonné jusqu’à le faire mourir
Il est honteux que la Mozilla Foundation ait à ce point saboté sa propre position, et il est difficile d’attribuer ces comportements à la simple incompétence
Si Firefox ne le prenait pas en charge, j’utiliserais un autre navigateur. Alors que Mozilla fait correctement de moins en moins de choses, ils devraient traiter gorhill aux petits soins
J’espère vraiment que Raymond Hill ne prendra pas la même mesure pour uBlock Origin, c’est-à-dire la version Manifest v2
Je ne suis pas très à l’aise à l’idée de recommander à d’autres d’installer des extensions auto-hébergées
C’est dommage que Mozilla et Raymond Hill ne puissent pas, ou ne veuillent pas, régler ce problème ensemble. Je comprends qu’une extension comme celle-ci n’aurait pas dû subir ce genre de revue, et je comprends aussi qu’il n’ait plus envie de s’en soucier, mais je m’inquiète de l’effet que cette situation pourrait avoir sur la stabilité à long terme du projet uBlock Origin
L’ensemble de la situation ne paraît clairement pas saine
https://github.com/uBlockOrigin/uBOL-home/issues/197#issueco...
Suggérer que le projet est en danger parce qu’une petite plateforme fait de l’obstruction est absurde
Cela fait environ une semaine qu’il est sorti, mais la dernière version disponible sur le site des modules complémentaires de Firefox est toujours la 1.59