Mot-clef « Firefox »

Quelques extensions pour Firefox #6

Cet article est marqué comme contenant des informations dépassées depuis le 21/10/2018.
Ces extensions n'exitent plus. Adblock Edge et AngScope peuvent respectivement être remplacées par uBlock Origin et AngularScope.

Ça fait un moment que les articles s'empilent sur des sujets assez éloignés du thème historique de mon blog à savoir des trucs en rapport avec l'informatique. Du coup il serait peut-être temps de citer quelques extensions Firefox que j'ai ajoutées depuis la dernière fournée.

Adblock Edge

Tout le monde ou presque connait Adblock Plus mais il a un gros défaut : il est géré par une boite commerciale. Du coup forcément ils ont fini par vouloir monétiser la chose et laissent donc passer certaines publicités de régies avec lesquelles ils ont des accords. Adblock Edge, quand à lui, est un fork qui bloque les pubs sans passe droit. Et pour ceux qui ont un problème avec le blocage des pubs, cet article de Ploum résume assez bien mon avis.

URL to QR code

Cette extension ajoute un petit bouton à l'interface qui se contente au clic d'afficher en gros au milieu de l'écran un QR code de l'URL courante. "Quel intérêt ?" me direz-vous, je suis déjà sur la page ! Et effectivement ça ne saute pas aux yeux au premier abord mais en fait il y a un cas où c'est très pratique : lorsque vous devez tester un site sur mobile ou tablette. Surtout quand c'est une page au fin fond du site qui pose problème : on scanne le code et hop on y est sans avoir à taper une horrible URL sur un non moins horrible clavier tactile \o/

AngScope

Là c'est une extension assez ciblée puisqu'elle ne concerne que les développeurs utilisant le framework JavaScript AngularJS. Il s'agit d'une extension pour Firebug qui ajoute au menu contextuel un raccourci assez utile : "Inspect Angular Scope", qui affiche le contenu du scope courant à l'endroit où on a cliqué. Personnellement ça m'a sauvé la vie plus d'une fois pour comprendre ce qui se passait dans un gros empilement de directives !


Toujours afficher la barre d'adresse dans Firefox pour Android

Depuis quelques versions, la dernière zone d'interface utilisateur survivante de la version Android de Firefox, la barre d'adresse, a acquis la merveilleuse capacité de disparaitre quand on fait défiler la page.

Je n'ai aucun doute que sur un téléphone timbre-poste ça peut être intéressant. Par contre l'imposer à tous c'est oublier un peu vite qu'Android ne se limite pas à ça. Il fonctionne aussi sur des tablettes ou des téléphones avec un écran utilisable où on peut garder cette barre à l'écran tout en ayant encore la place pour autre chose (je sais ça a l'air fou dit comme ça). Il eut donc été malin d'en faire une option et non pas de l'imposer à tout le monde sans distinction. Hélas, les options de configuration de Firefox pour Android sont dramatiquement limitées et celle-ci n'en fait pas partie.

Donc le grand public devra bien se contenter de continuer à jouer à cache cache avec sa barre d'adresse. Pas de chance pour lui. Pour les autres il y a tout de même une solution ne nécessitant même pas d'installer une extension, car Firefox reste bien plus ouvert que ses concurrents et permet donc de personnaliser certaines choses pour peu d'être prêt à faire le grand saut et à ouvrir about:config au risque de tout casser si l'on n'y prend pas garde. (parce que là plus de garde fou ni d'explication quelconque, démerdez-vous. Vous vouliez faire autre chose que ce que les spécialistes ont décidé pour vous, faut assumer maintenant).

La procédure reste simple une fois qu'on sait quoi chercher :

  • taper about:config dans la barre à tout faire
  • rechercher le mot-clé dynamic
  • changer la valeur de la clé browser.chrome.dynamictoolbar à false

Félicitations, vous venez de contrer l'une des dernières régressions de l'interface de votre navigateur. En espérant que cette variable de configuration restera prise en compte dans les futures versions.


Australis, on n'arrête pas la chromocopieuse en marche...

Hier il y a trois jours (c'est ça quand on traine à finir un article), la nouvelle version de l'interface de Firefox, nommée Australis, a été versée dans la nightly (c'est à dire la pré-version v+3, la beta étant la v+1 et aurora est la v+2). Il nous reste donc encore quelques mois avant de l'avoir sur une version en cours.

Alors Australis c'est quoi ? Pour les pressés, je résume en version courte : disons que c'est environ Chrome mais avec un moteur Gecko. Mais si vous avez le temps, vous pouvez lire la suite.

Donc en gros qu'est-ce qui change ? Le point le plus visible et qui fait environ le quart du contenu des quelques articles que j'ai lu sur le sujet c'est les nouveaux onglets aux coins arrondis top cools de la mort qui tue. Si si, la preuve avec la merveilleuse capture qui appuie en général le propos :

Australis - Et le coin arrondi fut.
Australis - Et le coin arrondi fut.

Passé l'instant d'extase où on se dit qu'enfin Firefox a des onglets plus encombrants qui ressemblent à ceux de Chrome, on se rappelle que c'est purement cosmétique et que ça ne change fondamentalement pas grand chose. Du coup on passe à la suite pour voir ce qui change vraiment (non je n'aurais pas fait un article juste pour des coins arrondis, je m'attache souvent à des détails à la con mais faut pas pousser non plus :euh:).

Ce qui change c'est qu'on a quelques autres trucs directement importés de Chrome :

  • encore moins de boutons visibles par défaut. Comme dans Chrome, quoi.
  • un bouton pour le menu, comme dans Chrome, coincé d'office à droite (on risquerait de le perdre si on pouvait le déplacer, donc ne prenons pas de risque ! Si Google l'a mis là c'est qu'il doit y avoir une bonne raison).
  • la disparition du titre de la page courante en titre de fenêtre (pas que par défaut, pas moyen de le remettre). Moi j'aime bien pourtant avoir le titre complet visible et plus de 3 pixels pour pouvoir attraper ma fenêtre en mode plein écran et la changer d'écran mais bon, Chrome ne fait plus ça depuis longtemps, faut vivre avec son temps.
  • sûrement d'autres trucs que j'ai ratés et qui manquaient certainement affreusement aux gens qui ont l'habitude de Chrome et passeraient bien sur un logiciel libre mais sans rien changer à leurs habitudes (pour rappel, il me semble que Chromium n'est pas trop loin de remplir ces critères).

Mais rassurez-vous, comme le dit l'article de présentation de Mozilla :

Firefox can’t simplify by just removing things and still be Firefox — the same less isn’t more for everybody, and Firefox has been successful by being the browser that does things that people, including power-users, want.

J'aurais pas dit mieux (même si moi je l'aurais dit en français). Par contre je sais pas si c'est une tentative d'auto-persuasion, de l'aveuglement ou un abus de substances illicites qui font voir de éléphants rouges mais en fait ils ont environ fait l'inverse puisqu'un certain nombre de libertés d'organisation ont sauté. En effet, après quelques tests, j'ai relevé ça :

  • les boutons précédent, suivant et rafraichissement qui étaient jusqu'à présent déplaçable n'importe où sont maintenant soudés à la barre d'URL, de part et d'autre, histoire de faire travailler un peu la souris. Donc plus moyen de les mettre ensemble où on veut.
  • l'option de placer les onglet en dessous ou au dessus de la plupart des barres d'outils n'est plus prise en compte. Il parait que c'est mieux, plus logique et tout et tout... Personnellement j'ai que la barre d'URL et les boutons qu'elle a phagocyté (voire point suivant) qui soient en rapport avec l'onglet courant, donc avoir la barre au dessus, je trouve pas si logique que ça... Mais bon, Chrome fait comme ça, donc...
  • la barre d'URL qui pouvait avant se placer sur n'importe quelle barre est maintenant coincée sous les onglets. Parce que oui on peut avoir une barre de menu au dessus des onglets avec le moteur de recherche et des éléments perso mais pas la barre d'URL, ça c'est mal... sauf que moi j'ai l'habitude de la placer avec des éléments de taille adaptée pour pas perdre de place. Et si j'ai envie de la mettre ailleurs, pourquoi m'en empêcher ?
  • symétriquement, si on fait apparaitre la barre de menu (vous savez celle avec du texte et des entrées assez stable d'une application à l'autre mais qui a tendance à disparaitre de plus en plus), celle-ci est coincée au dessus des onglets. C'est con, moi j'avais l'habitude d'avoir la barre d'URL et le menu sur la même ligne... Pourquoi diable m'en empêcher ?
  • la barre de modules disparait... Donc on ne mettra plus aucune info en bas. C'est mal le bas sans doute.

Donc c'est clair : j'ai pas moyen de placer la moitié des éléments comme je les place actuellement mais cette nouvelle version est super personnalisable. Si si, c'est écrit c'est forcément vrai ! (comme quand Apple dit que les empreintes digitales ne quitteront pas le téléphone)

Les empreintes digitales seront exclusivement stockées sur le téléphone ! #OnYCroit
Les empreintes digitales seront exclusivement stockées sur le téléphone ! #OnYCroit

Après je dis pas que tout est mauvais, hein. Le bouton de menu ouvre un menu qui est vraiment personnalisable, lui et ça c'est très bien. Le hic c'est que pouvoir personnaliser un menu qui ne s'ouvre qu'en cliquant sur un bouton c'est un piètre palliatif à la personnalisation de l'interface visible. J'ai un écran de taille largement suffisante pour me foutre totalement de perdre 25 pixels avec une barre d'outils. Si si je vous assure.

Alors je veux bien croire qu'Australis est sûrement plus personnalisable que Chrome (ce qui ne me semble pas trop dur pour le peu que je l'ai essayé). Mais moi mon critère de comparaison c'est pas Chrome, c'est Firefox. Parce que oui, c'est Firefox que j'utilise depuis de nombreuses années, Chrome il est installé à côté juste pour pouvoir détecter les bugs liés à Webkit dans les sites que je développe (je reconnais donc volontiers que je risque de le voir de plus en plus souvent étant donné à quel point la situation empire progressivement de ce côté là mais c'est un autre débat). Et comparé à mon Firefox actuel, c'est nettement moins personnalisable.

Et ne me dites pas que c'est pour mon bien si je peux plus déplacer mes éléments comme je veux. Si j'avais voulu qu'on décide pour moi, j'aurais pris un navigateur Apple.

Donc oui cette nouvelle interface ravira sans doute les transfuges de Chrome, ainsi que les gens qui ont peur quand ils voient plus de 3 boutons dans une application (même si je suis sûr que de ce côté là on peut encore faire beaucoup mieux). Mais ce serait sympa de pas oublier les utilisateurs avancés. Mais vraiment pas oublier, hein, genre un truc qui se traduit par des faits pas juste un texte qui dit le contraire des faits (pour ça on a déjà des politicien(ne)s).

D'autant que là on ne parle pas de fonctionnalités supprimées qui simplifient le code pour le rendre plus maintenable et plus léger, hein, je parle de bridages forcément volontaires qui jusqu'à preuve du contraire en rajoutent donc !

Bon, heureusement, restent deux points positifs. D'une part, c'est encore en nightly, il peut donc largement y avoir des ajustements d'ici à la version finale (notamment pour réintroduire de la flexibilité là où elle est inutilement absente). Et d'autre part Firefox a un système d'extensions qui fait qu'ont trouvera rapidement de palliatifs à tout ça (notamment cette extension semble prometteuse). Mais c'est lourd à force de devoir installer des dizaines d'extensions et farfouiller dans about:config non pas pour améliorer son navigateur mais juste lui éviter de régresser.

Donc vous l'aurez compris, j'adoooore l'évolution de Firefox :) Il a de la chance d'avoir peu de concurrents libres et cross-plateforme de qualité.

D'autant que comme j'ai pu le lire sur Twitter :

Je déteste aussi Australis parce que j'y vois une étape dans le remplacement du puissant Firefox Desktop par son très limité cousin mobile

— Clochix (@clohix) le 19 novembre 2013 à 20h00

Et ça c'est vraiment flippant quand on voit à quel point Firefox est limité sur Android...

P.S. : J'ai la flemme de tout relire pour savoir si j'en ai parlé ou pas mais dans le doute, je dirais que globalement, ça ressemble un peu à Chrome. Mais juste un peu et c'est sûrement fortuit !

P.S. 2 : Bon, le bon point c'est que cette fois ils ont rien cassé dans le backoffice de Change \o/ (oui c'était pour tester ça initialement quand j'ai mis à jour ma nightly...)


De l'intérêt d'utiliser des standards

Lorsqu'il y a peu, Opera a annoncé sa migration sous Webkit, certains se sont réjouis à l'idée de voir réduire le nombre de moteurs de rendus et donc la diversité des navigateurs à supporter lorsqu'on développe un site.

D'autres ont rétorqué qu'une réduction de la diversité, si elle pouvait potentiellement faire gagner du temps à court terme, ne pouvait qu’être néfaste à long terme pour le web en général. En effet, le développement des standards et leur respect dans les différents navigateurs ne se fait que parce que plusieurs moteurs ont une part de marché significative. Pour preuve : à l'époque où Internet Explorer faisait 95% de part de marché, non seulement l'innovation se faisait uniquement en mode propriétaire à la seule initiative de Microsoft mais pire encore, elle a fini par s'assécher totalement après la sortie d'IE6. Seule l'arrivée de Firefox a fini par relancer la machine.

Actuellement, si Webkit est encore loin d'atteindre la part de marché passée d'IE sur les ordinateurs de bureaux, il est largement majoritaire sur les mobiles et tablettes, ce qui conduit de plus en plus de développeurs à ne développer leurs sites et applications web que dans l'optique de webkit, ignorant totalement les autres.

Faire ce choix de la facilité est à mon sens une grave erreur car si webkit est largement majoritaire actuellement, qu'en sera-t-il dans un ou deux ans ? Nul doute que l'écart se sera resserré si Firefox OS prend des parts de marché significative. Je doute assez peu que ce soit le cas, la seule inconnue restant la taille de cette part.

L'importance de respecter les standards est essentielle pour fonctionner sur un large panel de navigateur. Et fonctionner sur un large panel de navigateurs en respectant les standards (plutôt qu'en abusant de hacks en tous genre ou en développant des version parallèles) est non seulement plus maintenable mais aussi plus pérenne.

En effet, quand on se base sur les spécificités d'un navigateur, on est à la merci de son évolution. Car si les standards implémentés dans les différents navigateurs sont destinés à durer (un site qui fonctionnait bien sur les standards d'il y a dix ans fonctionne toujours actuellement), les éléments spécifiques, eux, peuvent disparaitre ou changer du jour au lendemain.

Nous en avons fait la douloureuse expérience avec RBS Change ces derniers mois. En effet, le backoffice est basé sur XUL, une technologie propriétaire de Mozilla, donc limitée au seul moteur Gecko (donc Firefox essentiellement). Depuis qu'elle a renoncé il y a quelques années à en faire un standard, Mozilla tend à réduire progressivement la portée de XUL. Initialement utilisables pour des applications web standard comme alternative plus riche à (X)HTML, XUL n'est actuellement plus utilisé que pour l'interface de Firefox. Pour continuer à l'utiliser dans le backoffice de Change, il nous faut passer par une extension.

Or la version 17 de Firefox a introduit un changement qui entrainait un plantage de Firefox dès l'ouverture du backoffice. Ce bug, critique pour les utilisateurs de Change était loin de l'être pour Mozilla puisque si un patch a été proposé en quelques jours par un contributeur externe, la validation du patch et son intégration dans Firefox a pris plusieurs mois. Et ce n'est que dans la future version 20, soit trois version plus tard qu'il sera enfin corrigé (alors qu'il avait été remonté le jour de la sortie de la 17).

Le choix de reposer sur XUL, s'il semblait bon en 2005 lorsqu'il a été fait (et l'était probablement étant donné ce qu'il permettait à une époque où les frameworks JavaScript étaient balbutiants et où les API standard étaient bien plus limitées) s'avère aujourd'hui avoir des conséquences coûteuses : redévelopper l'intégralité de l'interface ça a un coût assez élevé. Avec une technologie standard on n'aurait pas eu ce problème. Certains pans auraient dû être repensés de toutes façons mais cela aurait pu être bien plus progressif.

Je viens d'évoquer une techno 100% propriétaire comparable à Flash ou Silverlight par exemple dans le sens où, propulsée par un seul éditeur elle peut du jour au lendemain cesser d’être maintenu ou bannie de certaines plateformes. On est donc assez loin de ce qu'on risque de voir arriver avec le ciblage en "Webkit only", du moins dans un premier temps.

Mais les problèmes de ce choix de XUL a d'autres conséquences moins évidentes. En effet, choisir XUL c'est faire du développement dédié à Firefox uniquement. C'est donc se permettre d'utiliser des spécificité de Firefox à tous les niveaux, voire d'en exploiter sans s'en rendre compte ce qui s'avère être des bugs.

Nous en avons fait l'expérience une fois le bug évoqué plus haut puisque même si le navigateur ne plantait plus, le backoffice n'en était pas pour autant redevenu fonctionnel ! En effet à partir de Firefox 17, E4X (déprécié et désactivé dans la version 10) ne cause plus des erreurs seulement lorsqu'il est utilisé mais déjà des erreurs de parsing lorsqu'il est simplement présent dans un fichier. Or si on avait fait en sorte de ne plus passer dedans pour un usage normal, certaines fonctionnalités dépréciées de Change en contenaient encore... nous avions donc le choix entre tuée définitivement ces fonctionnalités ou assurer la compatibilité avec les version actuelles de Firefox. C'est le second choix qui a été fait mais d'une part ça implique qu'il faut mettre à jour Change pour pouvoir tourner sur les dernières versions de Firefox et d'autre part ça a impliquer de tuer des fonctionnalités (certes dépréciées depuis longtemps) dans une version corrective, ce qui n'est pas forcément très réjouissant.

De même, Firefox 20 modifie le comportement de la méthode setAttribute() sur un élément du DOM. Jusqu'à présent en affectant la valeur null, cela affectait au final un chaine vide et maintenant cela affecte la chaine "null". En soi c'est très bien puisque c'est conforme à ce que font tous les autres navigateurs mais ça a des conséquences sur le fonctionnement de l'interface. Si nous avions travaillé en contexte multi-navigateur, nous aurions remarqué cela très tôt. Là encore une fois, ça impose une mise à jour de Change pour rester compatible avec les derniers Firefox.

Et c'est bien cela qui pend aux nez de tous ces développeurs qui font du "Webkit only" : lorsqu'un bug sera corrigé, si leur applications reposent dessus (parfois sans qu'ils s'en doutent), il leur faudra faire des correctifs en urgence pour réparer voir coincera des entreprises sous des vieilles versions comme cela a pu et est encore le cas avec IE6. Et cela arrivera de plus en plus souvent si Webkit continue à progresser en part de marché.

Donc on ne le dira jamais assez : utilisez des standards (et de préférence matures, sans reposer sur des propriétés préfixées) et validez vos développement même mobiles sur plusieurs moteurs différents ! Ne reproduisez pas le désastre d'IE6.

Et en ce qui me concerne, sur ma tablette Android, par principe je ne lance jamais aucun navigateur sous Webkit (sauf tests justement). Jusqu'à présent j'utilisais Firefox et Opera. Maintenant je n'utiliserai plus que Firefox. C'est dommage mais c'est comme ça. Et si un site ne fonctionne que sous Webkit, tant pis pour lui.


Je m'inquiète pour Firefox...

Je m'étais habitué à voir progressivement, au fur et à mesure de mises à jour de Firefox, de plus en plus de fonctionnalités disparaitre de l'interface pour être reléguées au fin fond des menus, voire carrément supprimées (détection des flux RSS, des moteurs de recherche, barre d'état, menu, protocole...).

Je suis donc fort surpris et même inquiet de constater que depuis plusieurs versions, plus aucun élément d'interface n'ait disparu. Les équipes de Mozilla se seraient-elles tellement habituées à se contenter de suivre Chrome sur ce sujet qu'elles n'arrivent pas à trouver elles-même quel est l'élément superflu suivant ?

Pourtant ce n'est pas si difficile. Prenez les boutons de navigation "précédent", "suivant" : de nos jours les sites web contiennent tout ce qu'il faut pour naviguer (menus, fils d'Ariane, etc). Je pense qu'il est donc inutile de les conserver par défaut.

Le bouton rafraichir me semble bien inutile aussi : quand les informations varient, les sites proposent en général de rafraichir le contenu et au pire il suffit de cliquer dans la barre d'adresse et appuyer sur "entrer" pour recharger la page.

Après quand on y pense, il me semble bien superflu de garder à la fois une zone de titre et une barre d'adresse : pourquoi ne pas les fusionner comme dans la version mobile ? On éviterait du coup de voir d'inutiles adresses incompréhensibles qui, je n'en doute pas, doivent perdre les utilisateurs non-techniciens. D'ailleurs à bien y repenser, la barre d'adresse et de recherche est bien inutile puisqu'il suffit de mettre un champ de recherche à l'ouverture d'un nouvel onglet.

Ensuite, la barre d'onglets : je pense qu'on peut bien s'en passer aussi. L'être humain est généralement monotâche (et le peu de multitâche qu'il est capable de déployer est déjà bien assez occupé à vérifier sur son smartphone que personne n'essaie de le joindre). Au pire on peut toujours ouvrir plusieurs fenêtres s'il le faut. Parce qu'une barre d'onglets, ça prend facile 20 à 30 pixels de haut, on rigole pas avec ces choses là ! D'autant que le titre de la page, c'est assez inutile. Un petite notification en bas de l'écran au chargement de la page est bien suffisant.

Vous me direz que ce n'est pas pratique vu que c'était à l'ouverture d'un nouvel onglet que l'on pouvait lancer une recherche mais je me vois bien obligé de vous détromper. En effet, maintenant que Google est capable en traçant nos habitudes de deviner ce qu'on va faire, plus besoin de choisir, il suffit de se laisser porter.

Du coup on arrive à quelque chose de vraiment révolutionnaire dans sa simplicité. J'aurais tendance à vouloir proposer un nouveau nom : ça s'appellerait "Télévision".

Mais comme dirait Jean-Pierre Gauffre : évidemment, vous n'êtes pas obligés de me croire.