Mot-clé : planet-libre

Tous les mots-clés

Entries list

mercredi 15 juin 2022

Mettre une page HTML locale comme page de nouvel onglet dans Firefox

Depuis 25 ans, j'ai une vieille habitude avec mon navigateur qui est de maintenir une page HTML de liens catégorisés que j'utilise tout le temps et que j'ai en page d’accueil.

C'est un simple fichier HTML sur mon disque, pas de serveur web qui tourne. C'est très « old school » je sais, mais ça marche très bien pour mon usage.

Dans Firefox, on peut mettre le lien file:///chemin/vers/mon/fichier.html directement dans la page des paramètres, jusque là tout va bien.

Par contre on ne peut pas depuis les préférences redéfinir la page pour l'ouverture des nouveaux onglets, or je commence souvent par ouvrir un nouvel onglet avec CTRL+T avant d'aller sur une de mes pages favorites, donc là je serais obligé de cliquer sur l'icône de page d'accueil ou de faire un ALT+Orig pour charger ma page.

Firefox étant très personnalisable, il est possible de redéfinir ça avec un fichier autoconfig de cette manière :

Création d'un fichier autoconfig.cfg dans le dossier d'installation de Firefox avec ce contenu

var {classes:Cc,interfaces:Ci,utils:Cu} = Components;

// Set new tab page
Cu.import("resource:///modules/AboutNewTab.jsm");
var newTabURL = "file:///chemin/vers/mon/fichier.html";
AboutNewTab.newTabURL = newTabURL;

Création d'un fichier autoconfig.js dans le sous-dossier de l'installation firefox defaults/pref/ :

pref("general.config.filename", "autoconfig.cfg");
pref("general.config.obscure_value", 0);

Plus d'information sur autoconfig : Configurer Firefox avec AutoConfig - Mozilla Support

mardi 31 mai 2016

Firefox Nightly, nous voilà !

Ce billet est en grande partie une version en français de mon billet en anglais Let's give Firefox Nightly some love! que j'ai publié il y a un peu moins de deux semaines.

Après une décennie dédiée à rendre les sites web Mozilla disponibles dans des dizaines de langues, à construire des communautés de traducteurs dans le monde entier et à créer des outils de contrôle qualité, des tableaux de bord et des APIs pour nous aider à livrer nos logiciels et sites dans toutes les langues, j'ai récemment quitté le département « Localization » afin de travailler sous les ordres de Doug Turner et de mettre en place un nouveau projet bénéficiant directement aux équipes Plateforme et Firefox !

Je suis désormais responsable d'un projet visant à faire de Nightly un canal maintenu à part entière (tout comme nous avons les canaux Aurora, Bêta et Release) et dont l'objectif sera d'impliquer notre communauté d'utilisateurs les plus techniques dans le projet Mozilla à travers des activités ayant un impact mesurable sur la qualité même de nos logiciels.

Voici quelques uns des objectifs que j'aimerais nous voir atteindre en 2016-2017 :

  • Doubler le nombre d'utilisateurs de Nightly afin de détecter beaucoup plus tôt les régressions, plantages et problèmes de compatibilité avec le Web. Une régression détectée et rapportée juste après que le patch la causant a été intégré sur mozilla-central est un simple backout (retour arrière) du dit code, cette même régression rapportée des semaines voire des mois plus tard via Aurora, Bêta ou bien même découverte sur la version en production de Firefox peut représenter un problème bien plus important.

  • Faire de Firefox Nightly un véritable point d'entrée pour les utlisateurs les plus techniques souhaitant s'impliquer dans Mozilla et nous aider à livrer du logiciel (qualité, code, compatibilité web, sécurité…). Dans le cadre de Firefox bien sûr, mais aussi dans celui de tout projet Mozilla pouvant bénéficier d'une plus grande participation externe.

  • Faire de Firefox Nightly un logiciel plus adapté à ces contributeurs techniques. Cela signifie dans un premier temps d'utiliser les canaux de communication qui y sont intégrés (about:home, tuiles, pages de premier démarrage et de mise à jour…) afin de communiquer des informations adaptées à une audience technique et proposer des ressources, des activités et des pistes techniques pour participer au projet Mozilla. J'ai aussi l'intention d'apporter une attention tout particulière à trois pays (l'Allemagne, la France et l'Espagne) où nous avons des communautés locales fortes, des employés et des locaux pouvant accueillir des événements et nous permettant d'interagir plus facilement avec les bénévoles.

Je ne travaillerai pas seul sur ce projet, Sylvestre Ledru (Release Managment Lead) a créé une nouvelle équipe composée de Marcia Knous aux États-Unis et de Calixte Denizet en France qui travaillera à améliorer la qualité du canal Nightly et analysera les plantages et régressions. Des membres d'autres départements (Participation, MDN, Security, Developer Relations…) ont aussi montré un grand intérêt pour ce projet et ont annoncé leur intention de s'impliquer.

Mais d'abord et avant tout, j'ai bien l'intention d'impliquer la communauté Mozilla et j'espère aussi attirer des personnes qui ne sont pas encore mozilliens et faire avec elles de ce projet « Nightly Reboot » un retentissant succès !

Quelques ressources pour s'impliquer :

  • Il existe un canal IRC #nightly sur le serveur irc.mozilla.org, mon pseudo là bas est pascalc, n'hésitez-pas à m'y contacter si vous désirez apporter votre pierre à l'édifice, en savoir plus sur l'état du projet ou bien proposer vos propres idées (le canal est anglophone).

  • Si vous désirez télécharger Nightly, rendez-vous sur nightly.mozfr.org et vous y trouverez des versions en français. Le site officiel de Mozilla est nightly.mozilla.org mais il ne propose que des versions en anglais et donner des retours sur la qualité de la traduction est aussi une manière d'améliorer Firefox !

  • Si vous voulez découvrir au jour le jour tous les trucs sympa qui arrivent sur Nightly, suivez le compte Twitter @FirefoxNightly

  • Si vous êtes déjà utilisateur de Nightly et que vous rapportez des bugs sur bugzilla.mozilla.org, ajoutez le texte [nightly-community] dans le champ whiteboard de vos rapports de bugs, cela nous permettra de mesurer l'impact de notre communauté Nightly sur Bugzilla.

Intéressé par ce projet ? N'hésitez-pas à vous impliquer et ne manquez-pas de me contacter si vous avez une suggestion ou une idée qui pourrait s'inscrire dans ce projet. Plusieurs personnes m'ont déjà donné des retours des plus intéressants !

Vous pouvez me contacter (en anglais, français ou espagnol) via les moyens de communication suivants : pascal À mozilla POINT com IRC sur Moznet et Freenode: pascalc Twitter: @pascalchevrel

lundi 9 septembre 2013

Événements chez Mozilla Paris en Septembre !

Depuis la récente ouverture des nouveaux locaux de Mozilla à Paris, nous organisons régulièrement des réunions et des événements avec la communauté Mozilla bien sûr, mais aussi avec les communautés du libre et du web francophones.

Nous organisons aussi de nombreuses autres rencontres et séminaires de travail dans d'autres domaines (par exemple cette semaine le W3C et le CSS WG travailleront dans nos locaux) et ce mois-ci, nous avons plusieurs événements intéressants auxquels vous pouvez assister / participer :

  • Mercredi 11 septembre c'est Javascript les doigts dehors, de 19h à 23h. Si vous voulez apprendre, ou enseigner le javascript, en mangeant des gateaux fait main, c'est par ici. Inscription obligatoire (dans la limite des places disponibles).
  • Jeudi 12 septembre à 19h, rencontre avec les trois startups françaises sélectionnées par Mozilla dans le cadre de notre programme WebFWD d'accélérateur de startups du Web : CozyCloud, PLOM.IO et Webshell.io (par ordre alphabétique). Pour mieux les connaitre, les féliciter… et boire un coup à leur santé, linscription est sur ce framadate.
  • Week end des 14 et 15 septembre : en collaboration avec la mairie du 9ème arrondissement, les locaux de Mozilla seront ouverts au public pour les journées du patrimoine ! Comme vous le savez peut être, Mozilla occupe des locaux classés monuments historiques et qui bénéficient d'une décoration exceptionnelle. Si vous voulez rencontrer Mozilla et des Mozilliens tout en faisant une sortie culturelle, c'est une excellente occasion !
  • Le samedi 21 septembre, nous organisons une rencontre avec la communauté Dotclear, si vous voulez participer au code de Dotclear, au développement des futures version, au design, apprendre à faire un thème ou une extension et de manière générale participer au projet Dotclear, vous êtes les bienvenus (mais inscrivez-vous svp ;) )!
  • week end des 28 et 29 septembre : Mozilla Game Jam Paris, hackathon de création de jeux vidéos en HTML5, a priori c'est déjà plein mais il y a une liste d'attente

Ce n'est évidemment qu'un début, si vous faites du libre et du web et que vous voulez orgnaniser un petit événement ou une réunion de travail, n'hésitez pas à nous (me) contacter ! :)

Plan vers Mozilla Paris

mardi 13 août 2013

Dotclear a 10 ans, mon blog aussi !

Aujourd'hui 13 juillet 2013, Dotclear fête ses 10 ans !

De mon côté, j'ai ouvert mon blog sous Blogger il y a a un peu plus de 10 ans et je l'ouvrais avec ces mots :

Ok, voici donc mon carnet web, à force de lire ceux des autres, ça m'a donné envie d'avoir le mien :-)

J'y mettrai essentiellement mes trouvailles sur le web, ceux qui me connaissent savent qu'elles sont mes passions et ne seront pas étonnés de trouver des infos sur Mozilla/Netscape, HTML/XHTML/CSS, l'Espagne et l'espagnol, mon chat, les séries télé... enfin bref, des trucs qui n'intéressent qu'une minorité de personnes mais je l'espère une majorité de mes lecteurs :-)

On notera au passage que trois ans plus tard je commençais à travailler pour Mozilla, que j'ai représenté Mozilla en Espagne plusieurs années et que si finalement je n'ai pas parlé de chats ni de séries télé, le Pascal d'il y a 10 ans n'est finalement pas si différent du Pascal d'aujourd'hui :D

Un an plus tard, je passais sous Dotclear 1.2 bêta après avoir migré ma base de données Blogger à grands coups de SQL.

Un grand merci donc à Dotclear pour avoir motorisé mon carnet web toutes ces années !

Depuis le mois dernier, je participe un petit peu au développement de Dotclear et à l'animation de sa communauté. Dotclear a connu un ralentissement de son développement ces dernières années, puis une crise mais heureusement depuis deux mois , le projet est reparti sur les chapeaux de roues et après une 2.5.1 le mois dernier, une 2.5.2 devrait arriver très bientôt !

Si votre blog est sous Dotclear depuis des années, je vous encourage fortement vous aussi à participer au projet Dotclear, il y a besoin de codeurs bien sûr, mais pas que. Bêta test, documentation, traduction, promotion, événements... il y a plein de manières de participer au projet. Inscrivez-vous à la liste de discussion de Dotclear et lancez-vous!

Le logiciel libre a besoin de contributeurs, si vous vous dîtes ou vous pensez libriste mais ne participez activement à aucun des projets de logiciel libre que vous utilisez au quotidien, remettez-vous en question ;)

Longue vie à Dotclear !

vendredi 7 décembre 2012

Parser des fichiers properties en PHP, ma lib pour composer

En début de semaine, mes copains de Mozilla Hispano ont lancé un projet qu'ils préparaient depuis quelques temps déjà, une petite application d'assitance aux utilisateurs pour leur page Facebook. Cette application interroge l'API du site d'assistance officiel de Mozilla (alias SUMO, pour SUpport.MOzilla.org) pour afficher les articles les plus consultés et elle dispose d'un champ de recherche qui propose des articles dans sa langue. Simple, efficace.

Ils m'ont contacté pour que je leur file un coup de main pour la localisation, comme ça l'application est disponible pour les non-hispanophones (et si vous avez un navigateur en français, le lien dans le paragraphe ci-dessus a dû s'afficher en français), j'ai donc ajouté de la détection de langue, de la détection de direction rtl pour le template et un petit système de traducion basé sur des fichier .properties, les fichiers properties viennent de Java mais sont omniprésent aussi en Javascript et sont la base de la traduction des logiciels de Mozilla (Firefox, ou FirfoxOS /ex).

L'application étant en php, l'idée initiale de mes copains étaient d'utiliser parse_ini_file() car la syntaxe des fichiers ini est presque la même que celle des .properties, mais si on veut des properties sans guillemets, avec du support des chaînes multilignes et éventuellement des commentaires, il faudrait mieux que ça, donc je leur ai rapidement créé une librairie pour parser les properties.

Ce n'est pas la première fois que j'écris une fonction ou une classe pour parser des .properties et en fait, je crois que c'est la troisième ou quatrième fois et à chaque fois j'ai fait du code jetable parce que je ne trouvais pas de librairie fiable sur le net (il y en a sûrement, j'ai juste pas trouvé), donc cette fois-ci j'ai décidé que j'allais faire une librairie une bonne fois pour toute et que la prochaine fois que j'aurai à réutiliser des properties, je m'en resservirai, voire même, je l'améliorerai :)

J'ai donc créé ma librairie sur github, elle s'appelle très originalement PhpProperties, elle parse correctement un fichier .properties et peut même extraire et associer les commentaires dans le fichier source (l'idée à long terme c'est de fournir un convertisseur vers d'autres format type .lang, .po, dtd... et de ne pas perdre les commentaires dans le code), son usage est simple:

<?php
$source = new \xformat\Properties();
var_dump($source->getproperties('toto.properties'));
Mais ce n'est pas tout, j'ai ajouté cette librairie à Packagist.org, vous pouvez donc l'installer comme une dépendance dans vos projets en utilisant un fichier composer.json:

{
    "require": {
        "pascalc/php-properties": "1.0"
    }
}


Un simple composer install vous installera tout ça :)

Voilà, je ne prétends pas que c'est du beau code, mais il marche plutôt bien et je suis assez content d'avoir pu créer mon premier paquet installable via Composer, le nouveau gestionnaire de dépendances de PHP :)

mardi 4 décembre 2012

Compiler Firefox OS en version desktop sur une Ubuntu

J'ai installé hier Firefox OS en version Desktop sur mon Ubuntu (12.04) afin de jouer avec.

Voici les étapes qui marchent chez moi :

Tout d'abord, il vous faut installer les paquets nécessaire à la compilation et bien sûr les outils de gestionnaire de version nécessaires :

sudo apt-get install mercurial g++ make autoconf2.13 yasm libgtk2.0-dev libglib2.0-dev libdbus-1-dev libdbus-glib-1-dev libasound2-dev libcurl4-openssl-dev libiw-dev libxt-dev mesa-common-dev ccache git

Ensuite, on va créer un dossier FirefoxOS dans son /home :
mkdir ~/FirefoxOS/

Puis on va ce dossier :
cd ~/FirefoxOS/

Ensuite on récupère le code source de Firefox OS Bêta :
hg clone http://hg.mozilla.org/releases/mozilla-beta

(ça créera un dossier ~/FirefoxOS/mozilla-beta)

Puis on récupère le code source de Gaia, l'interface graphique en HTML5 de FirefoxOS :
git clone https://github.com/mozilla-b2g/gaia/

(ça créera un dossier ~/FirefoxOS/gaia)

Les deux étapes ci-dessus prennent du temps, surtout si vous avez une petite connexion.

Une fois ceci fait, il vous faut créer un fichier .mozconfig (notez bien le point avant mozconfig) que l'on mettra ici:
~/FirefoxOS/mozilla-beta/.mozconfig

Voici le contenu de mon .mozconfig :

CONCURRENCY=$(( `grep processor /proc/cpuinfo | wc -l` + 2 ))
mk_add_options MOZ_MAKE_FLAGS="-j$CONCURRENCY"
mk_add_options MOZ_OBJDIR=../build
# Use ccache
ac_add_options --with-ccache=/usr/bin/ccache
ac_add_options --enable-application=b2g
ac_add_options --disable-libjpeg-turbo
# This option is required if you want to be able to run Gaia's tests
# ac_add_options --enable-tests
# turn on mozTelephony/mozSms interfaces
# Only turn this line on if you actually have a dev phone
# you want to forward to. If you get crashes at startup,
# make sure this line is commented.
# ac_add_options --enable-b2g-ril

Une fois ceci fait, on va compiler Firefox OS, attention, ça prend du temps ! Plus de deux heures sur mon petit portable.
cd ~/FirefoxOS/mozilla-beta
make -f client.mk


La compilation créera un dossier ~/FirefoxOS/build/ et votre binaire se trouve là :
~/FirefoxOS/build/dist/bin/b2g

Une fois ceci fait, on va créer un profil Gaia :
cd ~/FirefoxOS/gaia
make

Une fois le profil créé, vous pouvez lancer Firefox OS avec cette commande :
~/FirefoxOS/build/dist/bin/b2g -profile ~/FirefoxOS/gaia/profile


et voilà le résultat :
Firefox OS sur Ubuntu

Si vous voulez plus d'informations, il y en a plein ici en anglais :
https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS

N'oubliez pas non plus que Geckozone (la section forums de MozFr) a ouvert récemment un forum pour FirefoxOS :
Forum Firefox OS en français

Et vous pouvez discuter avec des développeurs et bénévoles Mozilla francophones dans le salon IRC #devfr sur irc.mozilla.org

MODIFICATION : 10h40, j'ai modifié l'url du dépôt mozilla-beta, je l'avais tapée de mémoire et évidemment ma mémoire était défaillante, désolé :)
MODIFICATION: 12h11,décidemment c'est la série, la création de profil gaia se fait évidemment après un cd dans le dossier gaia et pas dans le dossier mozilla-beta, corrigé aussi :)
MODIFICATION: 05/12/2012,ajout de ccache et git dans les dépendences nécessaires

vendredi 30 novembre 2012

Quelques nouvelles Mozilla

Tiens, ce matin j'ai envie d'utiliser mon blog :)

Alors voilà quelques nouvelles intéressantes cette semaine liées à Mozilla :

  • Mozilla ces deux dernières années s'est beaucoup impliqué techniquement dans les groupes de travail de l'IETF qui crée les normes Internet (protocoles par exemple) et dépend pour son fonctionnement de la fondation Internet Society. Mozilla est désormais membre sponsor de l'internet Society afin d'aider aussi l'IETF pour ses dépenses de fonctionnement. Billet de Josh Ash à ce sujet : Mozilla Joining ISOC in Support of IETF Activities
  • On est en train de finaliser un mode de navigation privée par fenêtre, ce qui permet d'avoir une fenêtre Firefox normale et une fenêtre Firefox en navigation privée en même temps (alors qu'en ce moment soit toutes la navigation est en mode incognito, soit tout est en mode normal). Ehsan Akhgari, le développeur qui est derrière le mode de navigation privée (qu'il avait ajouté à Firefox en tant que simple bénévole à l'époque et qui a bossé sur plein de projets importants pour Firefox depuis qu'il est employé, par exemple le nettoyage du composant Editor, le système de mise à jour silencieux depuis Firefox 4, plein de trucs sur le layout...) fournit des binaires en anglais depuis aujourd'hui basés sur Firefox Nightly avec ce nouveau mode de navigation privée par fenêtre et demande à tout le monde de tester et de lui envoyer plein de feedback parce que cette réécriture implique des changements de code importants touchant plein de domaines et pourrait causer des régressions. Plein de détails sur son billet Per-window private browsing ready for testing now!
  • Xavier Mouton-Dubosc a écrit aujourd'hui un très bon article en français sur FirefoxOS, le Firefox Marketplace et de manière générale ce que représente Mozilla et Firefox pour l'avenir du Web Mobile, à lire : 2012, fin d'un monde du web ?
  • Les forums de Geckozone ont maintenant rejoint le projet collaboratif Mozilla francophone MozFr, les habitués ont donc pu découvrir la nouvelle addresse des forums qui sont maintenant sur notre serveur commun (forums.mozfr.org). La migration est passée, Google réindexe les forums vitesse grand V (déjà plus de 220.000 pages indexées en deux semaines), il y a encore beaucoup à faire mais il y a aussi des nouveautés, en particulier, un tout nouveau forum pour Firefox OS et un autre pour les Open Web Apps 

mercredi 6 juin 2012

Fonctionnement en parallèle de deux versions de Firefox

Une petite astuce que j'ai apprise récemment sur IRC et qui est bien pratique.

J'utilise en permanence deux versions de Firefox (celle proposée par les dépôts Ubuntu et Firefox Nightly). Jusque là, tout va bien, j'ai un lanceur spécifique qui me permet de les lancer en parallèle avec des profils séparés :

$ firefox -P "nom" -no-remote

Mais cette méthode a un inconvénient dans Gnome Shell (peut être aussi sous Unity, pas testé), c'est que lorsqu'on fait alt+tab pour passer d'une appli à une autre, toutes les fenêtres de mes deux firefox sont groupées sous la même icône Firefox. La solution à cela est de rajouter une option dans le lanceur :

$ firefox -P "nom" --class "Nocturne" -no-remote

Voilà, j'ai maintenant des icônes distinctes en utilisant alt+Tab, chacune avec ses sous-fenêtre associées.

Le seul bug est que lorsqu'il y a une mise à jour automatique, l'option class n'est pas reprise en compte lors de la relance du navigateur, il faut le fermer/ouvrir manuellement pour que ça le reprenne en compte.

La seule référence à cette option est celle-ci https://bugzilla.mozilla.org/show_bug.cgi?id=496653.

jeudi 1 mars 2012

Toshiba L735-116 et reconnaissance de la batterie sous Linux

La batterie de mon portable n'est pas reconnue par Linux, ce qui veut dire que linux ne me donne pas d'indicateur de charge quand je suis débranché.

Jusqu'à présent je devais à chaque changement de noyau le recompiler avec un patch spécial. J'ai trouvé hier une méthode complémentaire sur un blog qui m'évite d'avoir à recompiler le noyau, je la documente donc ici en français, pour moi-même, mais aussi pour ceux qui auraient le même problème.

Mon portable est un Toshiba L735-116 mais de nombreux autres modèles de Toshiba sont affectés, donc si vous avez le même problème sur votre portable, rien ne vous empêche d'essayer, le geek qui a analysé et trouvé la solution au problème a lui un L650.

Les informations que je synthétise ici en français sont issues de ces deux billets :

Un grand merci donc à leurs auteurs Faheem et Michael Kuron pour avoir partagé leurs connaissances et apporté une solution.

Typiquement, vous savez que vous n'avez pas de batterie reconnue avec ces commandes :

~$ cat /proc/acpi/battery/BAT1/*
present:                 no
present:                 no
present:                 no

Les étapes à suivre sont les suivantes :

  1. ouvrir un terminal et passer en root (sudo -s)
  2. cd /boot/
  3. On récupère le tableau DSDT de la machine
    cat /sys/firmware/acpi/tables/DSDT > dsdt.dat
  4. on le désassemble
    iasl -d dsdt.dat
  5. on ouvre le fichier désassemblé avec son éditeur de texte favori (gedit, geany, vi...)
    geany dsdt.dsl
  6. on cherche la ligne :
    OperationRegion (EMEM, SystemMemory, 0xFF808001, 0xFF)
    et on la remplace par
    OperationRegion (EMEM, EmbeddedControl, 0x00, 0xFF)
  7. On enregistre le fichier
  8. On lance la commande pour le recompiler en un fichier dsdt.aml (ça créera aussi un fichier dsdt.hex mais on s'en servira pas)
    iasl -tc dsdt.dsl
  9. On récupère ce script 01_acpi.txt et on l'enregistre dans le dossier /etc/grub.d/ sous le nom 01_acpi (on enlève l'extension .txt)
  10. On donne à ce script les droits d'exécution
    chmod +x /etc/grub.d/01_acpi
  11. On lance la commande
    update-grub2
  12. On redémarre et normalement c'est bon :)

Pour info, ce bug est déjà signalé dans le bugzilla du kernel depuis deux ans et n'est pas réglé dans le noyau 3.2 que j'utilise (Bug 15707 - can not get AC/DC status).

vendredi 4 février 2011

Ce soir c'est Fosdem, venez rencontrer Mozilla !

Comme tous les ans depuis 2004,  je vais à FOSDEM ce soir pour y passer le week end entre développeurs libristes à boire des bières refaire le monde et partager l'expérience de nos différents projets.

fosdem

Si vous avez envie de participer à un projet international et populaire (utilisé par 400 millions d'utilisateurs), quel que soit le domaine (code, traduction, promotion, place des femmes dans le libre, graphisme...) n'hésitez pas à venir sur le stand Mozilla nous en parler (vous demandez Pascal, Delphine ou William, on redirigera vers les bonnes personnes si nécessaire). On fera sûrement aussi des démos de Firefox 4 sur le stand pour les curieux qui ne l'auraient pas encore essayé ;). Voilà nos têtes pour nous repérer:

PascalDelphineWilliam
delphinewilliam

Voilà le programme pour Mozilla sur ces deux jours : Mozilla at Fosdem 2011

jeudi 3 février 2011

J'ai un patch dans Firefox 4 beta 10, pourquoi pas vous ?

Depuis aujourd'hui, dans la version Linux de Firefox,  l'icône symbolisant un document vide ou une page qui n'a pas d'icône envoyée par le serveur ont un nouvel aspect un peu plus intégré dans Gnome puisque la vieille icône en png a été remplacée par un appel à l'icône système équivalente sous Gnome. Cela signifie que si vous changez de thème Gnome et que ce thème a une icône différente pour les documents vierges, Firefox utilisera cette icône.

Ce n'est pas un gros changement dans Firefox, mais celui-ci a une saveur particulière puisque j'en suis l'auteur et que c'est mon premier vrai patch accepté pour Firefox 4.

Il s'agit du bug 621091 et voici la photo avant/après mon patch:

Quelles leçons ai-je tiré de ce travail:

  1. Ça a été moins compliqué que je ne le pensais
  2. Il est important de bien comprendre le processus de résolution d'un bug dans Bugzilla pour faire avancer les choses
  3. Des améliorations directes au logiciel sont possible même par des non-développeurs
  4. Ce que j'ai appris à travers ce bug devrait me permettre de régler d'autres problèmes simples à l'avenir
Au cours de la réalisation de ce patch, j'ai aussi trouvé une petite erreur dans un chemin de fichier pour le thème Linux (bug 627881) qui a aussi été corrigée et un bug de crash dans un cas un peu rare (bug 621009) qui sera sûrement corrigé plus tard. Il y a donc eu aussi un aspect bêta-test autour du bug initial qui était intéressant.

Les ressources qui m'ont aidé pour mon patch sont les suivantes:

Ma bonne résolution pour 2011 est désormais d'écrire un patch par mois pour Firefox et d'en avoir un tiers accepté sur l'année (par exemple j'ai un patch en cours qui rajoute des options non documentées quand on fait firefox --help dans la console, bug 619069). Je me concentre sur des patchs dédiés à Linux parce que c'est d'une part la plateforme que je connais le mieux et que d'autre part de par son statut de plateforme très minoritaire, elle reçoit moins d'attention que les autres surtout en ce qui concerne le fignolage de l'interface.

Je ne peux qu'encourager les libristes francophones à faire de même et à participer directement au code de Firefox, tout auteur d'un patch accepté aura sa photo publiée sur Bonjour Mozilla !!

vendredi 10 septembre 2010

Meilleur zoom des photos pour Firefox 4 Linux

Le bug Bug 422179 (Implement Bug 381661 (bilinear filtering of upscaled images) for Linux) vient d'être résolu et il resout un vieux problème de lissage des images quand elles sont zoomées sous Linux.

Ce bug était connu chez Ubuntu comme le bug 217908 (FFe: Pixellated Images in Firefox/Opera due to incorrect EXTEND_PAD implementation in several video drivers)

Voici un  exemple avec une petite image zoomée (faites un clic sur l'image), à gauche on voit l'image très pixelisée avec Firefox 3.6, à droite l'image est maintenant lissée avec Firefox trunk.


Bug422179.png

De manière générale, ça va régler beaucoup de petits accrocs visuels sous Linux dès que l'on joue avec le zoom de la page.

(photo d'origine)

jeudi 14 janvier 2010

Tester Firefox avec un profil kleenex

Il est possible de tester (sous Linux) Firefox avec un profil temporaire sans avoir à en créer un depuis le gestionnaire de profils puis avoir à faire du nettoyage. C'est intéressant par exemple si on veut rapidement tester une régression et qu'on veut être sûr que ce n'est pas lié à un problème de profil, ou bien si on a un profil très personnalisé (genre plein de modifications dans about:config) et qu'on ne veut pas les réinitialiser juste pour un test.

Pour cela, il faut lancer Firefox en ligne de commande et utiliser le paramètre -Profile qui pointe vers un dossier vide existant situé où vous voulez sur le disque.

ex:

firefox -Profile /home/pascal/temp/profile

Voici un exemple de fichier bash qui vous permettra de lancer un firefox de développement avec un profil temporaire :

#!/bin/bash
# chemin du profil temporaire
target=${HOME}'/tempmoz/'
# chemin de Firefox
fx=${HOME}'/applis/Firefox-Trunk/firefox'
echo "== Lancement de Firefox dans un profil temporaire =="
mkdir $target
$fx -Profile $target --no-remote
echo "Effacement du profil temporaire à la fermeture de Firefox"
rm -rf $target
echo "Profil temporaire effacé"

L'option --no-remote vous permettra d'ouvrir ce Firefox en parallèle d'un autre Firefox déjà ouvert, votre Firefox dans une version stable avec votre profil habituel par exemple.

samedi 9 janvier 2010

Retour sur mes bugs en cours + mes 2 nouveaux bugs de début janvier

Juste avant la nouvelle année,  je bloguais sur les bugs que j'avais rapportés en décembre concernant Firefox et j'apportais quelques réflexion sur la participation des utilisateurs Linux aux projets libres qu'ils utilisent et sur le bêta-test en général (Bêta-test Firefox: mes bugs de décembre).

Quel est donc le statut de ces bugs aujourd'hui ?

  • [résolu] Bug 532721 - CSS Gradient backgrounds are not repainted when DOM is changed
  • [résolu] Bug 531289 - Firefox doesn't obey system dpi settings anymore
  • [résolu] Bug 536631 - Firefox no longer detects rss feed
  • [résolu] Bug 536843 - Flash plugin has display problems on Firefox Linux Trunk and 3.6 builds, regression
  • [en attente] Bug 534767 - New Drag and Drop JS API does not work with Jetpack installed

Les quatre bugs Linux ont été résolus et n'affecteront donc ni Firefox 3.6 ni le futur 3.7. Le dernier bug n'affecte pas le navigateur directement mais est très probablement un bug Jetpack (qui en est en version 0.7), ça ne bloque donc pas une sortie logicielle.

Je suis heureux d'avoir pu contribuer à la qualité de la version Linux de Firefox juste par ce simple bêta-test de décembre, la rapidité de réponse des développeurs a été très impressionnante, un grand merci à eux !

La bonne nouvelle c'est que je n'ai pas trouvé d'autres régressions, j'ai tout de même rapporté deux autres petits bugs mineurs, l'un est un bug d'interface Gnome et l'autre un léger bug de rendu:

  • Bug 538319 -  white line around search and url fields that disappears if you hover the field with the mouse
  • Bug 538383 -  -moz-box-shadow does not follow rounded borders correctly defined by -moz-border-radius

Autre bonne nouvelle, des gens ont commenté sur mon billet précédent pour rapporter leurs propres problèmes et j'ai pu inciter l'un deux à ouvrir son premier bug ! (  Bug 536996 -  nsISound is broken (Linux)  ) Ce bug est activement travaillé et a déjà 37 commentaires. Un grand merci également donc à Moktoipas pour avoir pris la peine de rapporter son bug et d'y adjoindre un testcase.

Quelle conclusion tirer de tout cela ? :

  • Si on veut que la qualité de Firefox sous Linux soit bonne, il faut rapporter les bugs dès qu'on les voit ! Je suis  surpris que plusieurs personnes m'aient dit après coup qu'ils avaient aussi constaté le bug avec Flash ainsi que celui des gradients mais qu'ils n'avaient pas vu l'intérêt de signaler la régression. "C'est tellement gros que ça sera rapporté" pour citer un ami dont je tairai le nom :) Le problème c'est que si tout le monde pense que le voisin rapportera le bug pour lui, en fin de compte personne ne rapporte rien. C'est particulièrement important sous Linux, nous sommes déjà à la base peu nombreux mais en plus nous ne sommes qu'une poignée à utiliser des versions en développement, il faut absolument que l'on soit réactifs sur les régressions !
  • Nous nous trouvons dans une situation paradoxale.  Le nombre de bêta-testeurs sous Windows devient absolument gigantesque (en époque de Release Candidate on approche du million de bêta-testeurs sous Windows) et en plus ces gens sont enthousiastes et ravis que nous les invitions à participer à du logiciel libre (ce qui est une excellente nouvelle pour le libre à mon avis). Parallèlement à cela, nous avons beaucoup de mal à avoir des bêta testeurs sous Linux en grande partie parce que nos canaux de communication habituels sont remplacés par ceux de la distro lors de l'empaquetage. On a incité nos utilisateurs à bêta tester sur la page de démarrage, les notes de version, nos pages de mise à jour ont des sondages trimestriels... Hors les distros lors de la personnalisation de Firefox remplacent les liens vers ces pages par des pages de promo de la distro. Il nous faut donc réfléchir à de nouveaux canaux de communication vers le monde Linux puisque ceux que nous avions intégrés dans Firefox sont supprimés pour les versions empaquetées. La création du planète Mozilla francophone et mes billets maintenant syndiqués sur planet-libre.org sont ma petite contribution à cet effort. J'ai d'autres idées à ce sujet mais je vais les laisser mûrir avant d'en parler :)

samedi 2 janvier 2010

CSS Gradients dans Webkit et Gecko

Je me suis pas mal amusé ces derniers temps avec les nouvelles possibilité des CSS (angles arrondis, ombres de boîtes et de texte, dégradés de couleur) pour voir ce qu'il était possible de faire avec ces nouveaux outils. L'intérêt de ces règles CSS c'est qu'elles permettent très souvent d'améliorer facilement un site web existant à peu de frais sans pour autant casser le site pour des navigateurs plus anciens (et par anciens navigateurs, j'inclus Firefox 3, Opera 10, Safari 3, les versions de Chrome vieilles de plus de 6 mois... ;) )

Ces règles sont parmi les règles CSS les plus intéressantes car le dégradé est un effet courant sur le web et les faire par css permettra de remplacer de coûteuses requêtes http pour des images. Sur la page des labs du projet Kompozer, j'ai combiné plusieurs de ces effets pour voir ce qu'on pourrait faire, notez par exemple le titre KompoZer Labs qui ne contient aucune image mais est une combinaison de dégradé, arrondis et d'ombrages sur une balise <h1>.

Pour ceux qui n'auraient pas un navigateur très récent, voici une capture d'écran montrant cette page dans les dernières versions de Firefox Trunk et Chromium sous Linux :

On peut noter que Chromium bien que supportant les dégradés CSS depuis plus longtemps que Mozilla a des bugs de rendus assez importants avec un très fort effet d'escalier dans le dégradé d'arrière-plan et beaucoup de mal avec les dégradés progressifs sur le h1, ça donne vraiment l'impression que le dégradé est calculé sur 256 couleurs seulement. Ça m'a un peu surpris car il me semblait que Webkit malgré un support imparfait des dégradés ferait mieux que gecko puisqu'ils avaient implémenté le draft CSS bien avant nous (ce qui explique leur syntaxe CSS assez compliquée pour le moment, elle a été simplifiée depuis et c'est ce que nous utilisons). En plus Paul me disait qu'il était sûr que sous Windows il n'y avait pas d'effet d'escalier sous Webkit,  j'ai donc lancé Virtualbox pour vérifier et voici la capture d'écran avec Safari 4, Chrome 3 et Firefox 3.6b5 :

Là on peut voir en fait que Webkit sait bien gérer les dégradés mais que c'est dans le fork Chrome de leur moteur de rendu qu'il y a un problème puisque Safari a un rendu correct. On notera aussi sur la capture de Chromium sous Ubuntu plus haut que le support des bords arrondis avec ombrage qui les suit devient enfin correct (il y a deux mois c'était pété de chez pété). Le rendu des polices avec ombrage diffère aussi entre Safari et Chrome, la version Safari est strictement identique à celle de Gecko alors que Chrome a un rendu trop léger à mon avis, on voit à peine les passages en gras.

À surveiller donc dans les mois à venir, ça pose la question du support correct des technologies dans les navigateurs, je me demande aussi comment se font les arbitrages dans le projet Webkit qui est maintenant bicéphale, le gros du développement du moteur de rendu étant assuré par Apple alors que Google a le gros des utilisateurs Webkit avec Chrome.

dimanche 27 décembre 2009

Bêta-test Firefox: mes bugs de décembre

Voici les bogues (non liés à mon travail comme employé) que j'ai rapportés ce mois de décembre concernant les versions 3.6 bêta et 3.7 trunk de Firefox.

Bug 532721 - CSS Gradient backgrounds are not repainted when DOM is changed

J'ai trouvé celui là en testant l'un des tutoriels d'Alix de hacks.mozilla.org sur les CSS gradients, la page sur laquelle je travaillais était labs.kompozer.net qui me servait de terrain de test. Ce bogue a été accepté comme bloqueur et les développeurs se sont dépêchés pour qu'un patch soit intégré dans 3.6 :)

Bug 531289 - Firefox doesn't obey system dpi settings anymore

J'ai trouvé ce bogue en testant les compils nocturnes du tronc, c'est une régression sous Gnome/Linux paradoxalement due à une tentative d'amélioration pour Firefox Mobile (Maemo, donc Linux). C'est le bogue typique qui n'est visible que si un grand nombre de testeurs avec des configurations différentes utilisent les compils nocturnes, dans ce cas précis, il fallait avoir réglé les polices de son bureau gnome en dessous de 96dpi pour le voir. Le patch coupable a été corrigé.

Bug 536631 - Firefox no longer detects rss feed

Personne ne s'était apperçu que depuis 3 mois, l'icône des flux RSS n'apparaissait plus dans les versions du tronc uniquement pour Linux. Un bogue similaire avait été rapporté par dbaron qui soupçonnait que cela pourrait poser problème aux applis xulrunner, ce bogue a donc été marqué comme "duplicate" de l'autre et le complète en augmentant son importance, pas encore réparé mais il est maintenantplus sur le radar des développeurs. Ce qui montre que personne n'utilise des versions Linux de Firefox trunk, nul doute qu'une régression aussi visible serait rapportée en quelques heures sous Windows ou Mac.

Bug 534767 - New Drag and Drop JS API does not work with Jetpack installed

J'ai découvert ce bogue en testant la démo de Paul File upload & Firefox 3.6, il s'agit d'une incompatibilité entre Jetpack et notre implémentation de la nouvelle API Drag N Drop d'HTML5, apparemment ça n'affecte que Linux (enfin, j'ai eu la flemme de tester sous Windows...). Il n'est pas clair encore si c'est Jetpack (qui en est en version 0.7 et est encore très vert) ou si c'est un bogue du côté de Firefox, mais a priori c'est un bogue Jetpack donc ça bloquerait pas la sortie de 3.6.

Bug 536843 - Flash plugin has display problems on Firefox Linux Trunk and 3.6 builds, regression

Une régression visuelle pour Flash qui m'énervait depuis 10 jours, bogue saisi il y a trois heures. Grâce au super script regression.py indiqué par Arnaud dans les commentaires de mon précédent billet sur le bêta-test j'ai pu rapidement identifier la date de régression, entre le 1er et le 2 octobre. J'ai trouvé cette régression depuis que j'ai remplacé ma 3.5.* par une 3.6beta 5 comme navigateur principal.

Quelles conclusions tirer de ces exemples ?

  1. Il n'est pas nécessaire d'être extrèmement technique pour rapporter des bogues utiles, il ne faut pas penser que c'est réservé à des experts du contrôle qualité, ce n'est pas mon domaine de compétence même si ça m'intéresse
  2. Des cinq bogues ci-dessus, quatre sont des bogues ne touchant que la plateforme Linux. On a vraiment besoin que les gens testent réellement les compils quotidiennes de Firefox et les utilisent sur les vrais sites, pas seulement pour tester combien elles font aux tests Sunspider et Acid3... C'est là l'énorme avantage que les versions Windows et Mac ont sur les versions Linux, des tas et des tas de testeurs. Même le nombre de testeurs mac doit être plus important d'un facteur 10 au moins (probablement plus) par rapport à la version Linux. Sans rêver de légions de linuxiens se mettant à la tâche, quelques bons testeurs additionnels et organisés sous Linux pourrait faire une énorme différence sur la qualité de Firefox sous notre OS.
  3. Si vous êtes développeur web, il ne faut pas seulement tester ce que vous connaissez (mes sites marchent-ils dans le prochain Firefox ?) mais aussi les nouvelles technologies mises à notre disposition pour avoir une implémentation correcte de celles-ci lors de la sortie du navigateur et donc des nouveaux outils qui marchent tout de suite et pas dans un an après que les gros problèmes auront été réparés.
  4. Le contrôle qualité communautaire est probablement un axe d'implication dans le logiciel libre trop méconnu car souvent associé uniquement aux contributeurs les plus techniques. Il y a là un potentiel de travail collaboratif communautaire important pour Mozilla et pour le libre en général. En fait, j'ai même l'impression que l'implication dans le 'bug triage' n'est pas aussi organisée qu'il y a quelques années, j'en suis un bon exemple, je ne suis redevenu réellement actif dans ce domaine que depuis novembre après plusieurs années de faibles activité alors que c'était une de mes activités les plus importantes quand je suis rentré dans le projet vers 2002.

samedi 19 décembre 2009

Bêta-test: Identifier une fenêtre de régression dans les nocturnes Firefox

Lorsqu'on teste les "noctures", ces compilations quotidiennes de Firefox incorporant les patchs du jour, on peut trouver des bugs et vouloir les rapporter aux développeurs dans Bugzilla.

Une chose qui aide les développeurs est de savoir à peu près quand la régression (le nouveau comportement anormal) est apparu, pour savoir quels patchs ont été intégrés entre ces deux versions, c'est ce qu'on appelle la fenêtre de régression.

Pour cela, il faut télécharger une ancienne version des nocturnes et voir si le bug y est toujours, si oui, on recommence avec une version plus ancienne (de la veille, de la semaine dernière...)

Une fois qu'on a trouvé une compil qui n'a pas le bug, on remplit son bug sur bugzilla en indiquant:

1/ l'identifiant de build complet de la version qui ne marche pas, par exemple:

Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.3a1pre) Gecko/20091218 Minefield/3.7a1pre

vous trouverez cette information à copier-coller dans le menu aide/à propos de (menu ? sous Windows)

2/ Le lien vers les révisions du code source compilé, vous le trouverez en tapant about:buildconfig dans la barre d'adresse de Firefox qui affichera une page commençant par:

about:buildconfig

Source

Built from http://hg.mozilla.org/releases/mozilla-1.9.1/rev/a31ccbb61076

Votre commentaire peut donc ressembler à ça:

No bug in 20091125 build:

http://hg.mozilla.org/mozilla-central/rev/d76583175408

Bug is visible in 20091126 build:

http://hg.mozilla.org/mozilla-central/rev/77136b3d68fc

Grâce à ces informations, les développeurs et le contrôle qualité peut savoir quels patchs ont été intégrés entre ces deux dates grâce à un outil en ligne:

http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=d76583175408&tochange=77136b3d68fc

Ces étapes simples réduisent considérablement le travail des développeurs. C'est aussi pour ça qu'il est utile de rapporter les régressions rapidement et de tester les nocturnes, surtout sous Linux où nous avons très peu de testeurs volontaires (moins de 1% de nos bêta-testeurs) par rapport aux bêta testeurs sous Windows ou Mac.

Bons tests!!

vendredi 18 décembre 2009

Installer une version de Firefox du tronc de développement en français !

Bêta-testez
Firefox 3.7
en VF

C'est assez peu connu mais tous les jours Mozilla compile Firefox dans toutes ses langues, tous les OS supportées et dans toutes les versions.

Ça veut dire que vous pouvez installer un Firefox 3.7a1pre en français qui bénéficie d'une mise à jour automatique quotidienne.

Voici où vous trouverez les binaires:

ftp://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-central-l10n/

Pour la VF c'est :

Vous êtes donc parés pour faire du bêta-test des futures versions de Firefox et découvrir les nouveautés au fur et à mesure de leur implémentation (par exemple cette semaine, les premiers pas du multiprocessing avec les plugins dans un processus séparé).

Évidemment, il est conseillé d'utiliser un profil de données à part pour ça, sauf si vous aimez vivre dangereusement :).

Les performances Javascript de Firefox à travers le temps

Par curisosité, j'ai installé  sur ma machine toutes les versions de Firefox depuis sa création et je leur ai fait passer le test Sunspider (de l'équipe Webkit), voici les résultats:

Firefox, test Sunspider à travers le temps
1.0 1.5 2.0 3.0 3.5 3.6b5 trunk
13.394 12.721 12.385 3.173 1.432 1.170 979

Plus le chiffre est petit, mieux c'est. Sous Linux Opera 10.10 est à 5.000 et Chrome/Chromium en nightly est premier avec 500ms, pas d'IE chez moi puisque je suis sous Linux mais ils sont très très loin derrière tout le monde (genre un facteur 20) d'après ce que j'ai pu lire sur d'autres sites.

Et un joli graphique pour illustrer :


Nous ne sommes donc pas les premiers sur ce test mais nous sommes très loin d'être ridicules ! Il est utile de rappeler que nous continuons de progresser régulièrement et énormément sur les perfs javascript et que ces améliorations profitent aussi à la version Linux (de toutes façons, on est vendredi, j'ai le droit de troller ;) ). D'ailleurs, c'est bien grâce aux améliorations énorme de notre moteur que les démos de Paul sont maintenant possibles!

Un petit rappel si vous utilisez Firebug, votre moteur de compilation JIT de javascript est désactivé et vous aurez donc des perfs équivalentes à celles de Firefox 3.0, même si vous êtes en 3.5. La version 1.5beta7 de Firebug sortie hier devrait résoudre ce bug.