Firefox : apprendre à gérer son propre user.js

firefox-desktop

Les bases avant le détail

Sans trop se tromper, on peut dire que Firefox est le navigateur n°1 des défenseurs de la vie privée sur le web.
Tout d’abord, il est géré par la fondation Mozilla. Mais ce qui le rend très intéressant, c’est le nombre de modules ainsi que les possibilités de personnalisations qu’il offre.

Quand on va dans les paramètres d’un navigateur web, on peut faire plus ou moins de réglages (moteur de recherche, historique, cookies,…). Très souvent, les réglages s’arrêtent là.
Avec Firefox, on peut gérer très finement les paramètres grâce au fichier user.js. Dans ce dernier, on peut définir énormément de paramètres personnels.

Si vous souhaitez protéger votre vie privée tout en optimisant Firefox, je vous invite à lire ce qui suit.
Cela demande un investissement de départ mais le jeu en vaut la chandelle.

Dernière précision avant de commencer…

Cela fait quelques mois maintenant que je suis l’évolution de ce billet. Si l’anglais ne vous repousse pas, je vous conseille de le lire en entier. À défaut, vous pouvez vous contenter de mon article. Mis à part la gestion du fichier user.js, je vous recommande chaudement les modules uMatrix et uBlock Origin. Si vous ne connaissez pas ces modules, jetez un œil à ce tutoriel.

Le fichier user.js

OK donc l’idée est de récupérer une configuration déjà optimisée sur Github puis d’ajouter (éventuellement) nos propres réglages pour concevoir un Firefox à notre image.
Assurez-vous de télécharger une version qui colle avec la vôtre. Tant qu’à faire, mettez à jour Firefox avant de commencer ou avant de mettre à jour votre user.js.

Exemple :

  • date: 11 March 2017
  • version 52: Daypants Believer

Les sources

ghacks : vous connaissez peut-être le site ghacks.net. Ce user.js est géré par la même personne. Il suffit de cliquer sur Source code (zip) pour récupérer le user.js.
atomGit (optionnel) : cette version est basée sur celle de ghacks. C’est un complément et pas un remplacement. On peut noter un paramétrage moins soutenu sur la vie privée et la sécurité afin d’éviter quelques problèmes lors de la navigation sur le web. Ce user.js inclut aussi des modifications pour activer un défilement dynamique et fluide.

Au final, soit vous prenez que la version de ghacks soit les deux.

Les mises à jour automatiques

Elles sont désactivées dans les fichiers user.jsci-dessus. Il est plutôt recommandé de faire des mises à jour manuelles tous les 2-4 jours.
Pourquoi me demandez-vous ? Car les développeurs peuvent à n’importe quel moment et sans vous prévenir, partager ou vendre leur travail à des tiers. Cela engendre bien souvent du code supplémentaire pour monétiser le module, en contrepartie de votre vie privée. Quelques exemples de modules qui ont mal tourné : Abduction, Quick Locale Switcher, FasterFox Lite, BlockSite, Google’s Search By Image…
Alors avant de faire une mise à jour, regardez ce qui a changé ! Ce conseil marche aussi pour d’autres plateformes.

Vous pouvez également ouvrir votre fichier pref.js et identifier toutes les occurrences de « http » afin de voir vers quoi elles pointent. Si vous souhaitez désactiver une fonctionnalité, ajoutez la préférence dans votre user.js et remplacez l’URL par "" ou "https://127.0.0.1".

dev-script-code

L’eau à la bouche

Pour vous donner un rapide aperçu des possibilités qu’offre la gestion d’un user.js, je vous donne quelques exemples :

  • accélération au démarrage
  • désactiver la géolocalisation, la télémétrie, les bilans de santé, les rapports de bugs automatiques et tout un tas d’autres options
  • gérer le nombre d’onglets pouvant être restaurés
  • afficher un avertissement si la sécurité est « brisée »
  • réduire son fingerprint
  • désactiver WebRTC et WebGL
  • activer/désactiver certains types de média
  • des informations sur le user agent
  • la gestion des cookies, des liens, des onglets, du défilement doux…
  • le comportement de Firefox à sa fermeture et à son ouverture
    *etc…
    Mon fichier actuel comprend plus de 500 modifications !

Utiliser un tel fichier permet aussi de constater le nombre de choses qu’un navigateur peut faire sans que l’utilisateur ne s’en rende compte !

Sauvegardez votre profil actuel

Avant de vous lancer dans les modifications, sauvegardez votre profil Firefox actuel. Pour cela, rendez-vous sur about:support et cliquez sur Ouvrir le dossier correspondant en face de Dossier de profil. Donc vous prenez le dossier profile au complet et vous le dupliquez ailleurs.
Si vous voyez un user.js dans votre dossier, effacez-le.

Modifier le user.js

Toutes les modifications que vous allez faire seront effectuées dans ce fichier. Il est donc important d’avoir un bon éditeur de texte. Si vous utilisez Windows, Notepad++ est un grand classique. Si vous êtes sur une distro GNU/Linux, vous utilisez déjà votre éditeur de texte préféré 🙂

Vous pouvez commencer par copier/coller le fichier user.js de ghacks dans votre profil. Si vous souhaitez compléter avec le user.js de atomGit, il suffit de mettre son code à la suite de celui de ghacks.

Comprendre le user.js et le mettre à jour

Bah oui, c’est bien beau d’avoir un user.js mais il est très important de le parcourir en entier ! J’insiste. Il y a de fortes chances que les paramètres de ghacks ou atomGit ne vous conviennent pas tous. Vous êtes libre de mettre ce que vous voulez en face de chaque valeur. Certaines modifications faites dans ce fichier ont un impact très lourd sur l’expérience utilisateur alors prenez le temps de comprendre ce qu’il modifie.

Contrôler ce que l’on fait

Dans le fichier user.js que vous avez téléchargé, vous pouvez noter la présence de ghacks_user.js.parrot. Firefox lit le fichier du haut vers le bas. S’il rencontre une erreur de syntaxe, il ignorera tout ce qui suit cette erreur. Pas bon du tout ! Pour savoir si Firefox a bien chargé toutes les préférences, ghacks_user.js.parrot sert de contrôle.

Concrètement, je vous conseille d’ajouter ceci en-dessous de vos paramètres personnalisés, soit à la toute dernière ligne : user_pref("ghacks_user.js.parrot", "Cool, tout fonctionne !");
Au redémarrage de Firefox, allez sur about:config et recherchez ghacks_user.js.parrot. Si Firefox vous affiche Cool, tout fonctionne ! alors tout fonctionne, effectivement 🙂 Firefox arrive à lire votre user.js jusqu’au bout.
Si Firefox vous renvoie autre chose, c’est qu’il y a au moins une erreur dans les lignes précédentes. ghacks et atomGit mettent une valeur différente pour chaque grande partie de leur fichier, ce qui permet de limiter les recherches.

Faire sa propre tambouille

Si vous voulez ajouter vos propres changements dans le user.js, il est fortement recommandé de les placer tout en bas du fichier.

Vu que Firefox lit le fichier du haut vers le bas, il lira vos préférences en dernier. Ce seront elles qui seront appliquées même si atomGit et ghacks avaient mis une autre valeur au même paramètre.
De plus, ça facilite la mise à jour du fichier. Tous les x jours ou semaines, vous pourrez récupérer le fichier original de ghacks (et atomGit) mis à jour. Vous copiez tout le contenu et vous le collez dans votre user.js au-dessus de vos paramètres personnels ! Vous comprenez le truc ?
Bon après, il est bien de voir quelles modifications ont été faites dans les fichiers sources de ghacks et atomGit. Vous voudrez peut-être modifier de nouvelles valeurs.
Voir les modifications de ghacks et atomtGit.

Note importante

Si vous enlevez un commentaire // ou si vous supprimez un paramètre après avoir lancé Firefox, ce paramètre sera probablement maintenu activé car il aura été copié dans le fichier pref.js.
Du coup, si vous voulez enlever un commentaire ou retirer quelque chose de votre fichier user.js, vous devez le faire avant de lancer Firefox.
Si vous supprimez ou retirez un commentaire après avoir lancé Firefox, allez sur about:config, recherchez le paramètre, faites un clic droit et sélectionnez Réinitialiser. Redémarrez ensuite Firefox. Le paramètre sera supprimé au redémarrage.

Et voilà, vous avez tous les éléments pour construire et tenir à jour votre propre user.js.

N’hésitez pas à me contacter si quelque chose n’est pas clair. Pour information, ces modifications peuvent généralement être appliquées à la version mobile de Firefox 🙂

10 commentaires sur “Firefox : apprendre à gérer son propre user.js

  1. Salut l’ami !

    Es-tu sûr que le fichier user.js peut être appliqué à la version mobile de Firefox ? J’ai fermé le navigateur, puis effacé le fichier pref.js dans /data/data/org.mozilla.firefox/files/mozilla/*****.default et copié mon user.js avant de relancer Firefox, mais pas de changement dans mon navigateur et le parrot n’est pas présent dans about:config, même après plusieurs essais. Le fichier reste bien là, mais c’est tout.

    J’aime

    1. Hello!
      Alors oui je suis sûr de l’avoir fait il y a quelques mois en arrière.
      J’avais mis le bizarre pendant un temps (ex : impossible de faire un copier coller :-)) donc je n’avais pas fait de tests récemment.
      J’arrive pas non plus à faire fonctionner le user.js mais en modifiant les permissions.
      En revanche, mes modifications dans pref.js marchent. Pas terrible mais c’est mieux que rien.

      J’aime

      1. Merci pour ta réponse ! Je viens d’essayer et modifier le fichier prefs.js fonctionne également. Cependant, même si la valeur du parrot est bien la dernière enregistrée, je doute que toutes les fonctionnalités soient prises en compte (notamment le fait de toujours utiliser la navigation privée), certaines n’étant probablement pas implantée dans la version mobile de Firefox.
        Aussi je me demande si about:config n’est pas la meilleure solution pour modifier les préférences sous Android…

        J’aime

        1. C’est sûr que non, certaines valeurs ne sont clairement pas disponibles sur mobile (je n’ai pas de liste sur le sujet).
          En revanche, copier/coller les données de ton user.js version PC va toujours beaucoup plus vite que de tout faire depuis about:config. Enfin, c’est comme ça que je le ressens.
          Chacun est libre de faire comme bon lui semble 😉

          J’aime

  2. J’ai enfin eu le temps de parcourir les deux user.js et ajuster les réglages pour convenir à mon usage ! 😀

    Maintenant, je me pose quand même une question : penses-tu qu’utiliser Nightly est contre l’intérêt même (en terme de sécurité principalement) ou est-ce quand même viable ?

    J’aime

    1. Concrètement Nightly ne fonctionne pas sur mon téléphone (plantages répétitifs à l’ouverture). Si ça fait pareil sur PC, la problème est vite réglé.
      Sans être très calé sur le sujet, Nightly semble très expérimental donc je le déconseille pour assurer une bonne sécurité et vie privée. On n’est pas à l’abri que quelque chose soit cassé lors d’une nightly et provoque une fuite de données par exemple.

      J’aime

  3. Merci pour ton commentaire et ravi de voir que l’article a plu 🙂

    Oui, tout à fait pour la version. C’est la situation idéale on va dire.
    Si tu as une version de retard, je ne trouve que ce soit dramatique. Il se peut que de nouvelles préférences soient manquantes mais c’est tout. La perfection n’existe pas en sécurité/vie privée 😉

    Je recommande un user.js plutôt que de passer par about:config pour plusieurs raisons :
    • On peut mettre des commentaires ce qui est très pratique pour s’organiser, faire des recherches dans ses modifications, garder en tête des informations sans pour autant les appliquer,…
    • Utiliser les mêmes préférences sur plusieurs profils Firefox ou appareils.
    • La facilité d’utilisation de manière générale et la possibilité de partage avec d’autres personnes.

    J’aime

    1. Merci beaucoup pour ta réponse rapide. Je vais tenter le coup d’utiliser le user.js de la version 51 comme base.

      D’après ce que j’ai vu sur le wiki du github de ghacks, ce fichier aurait aussi quelques options dites « cachées » que ne permet pas le about:config seul.

      En tout cas, tu as gagné un abonné à ton flux RSS, j’attends tes prochains articles avec impatience. 😉

      J’aime

  4. Merci pour cet article très intéressant. Si j’ai bien compris, il faut utiliser une version du user.js qui corresponde à sa version de Firefox ? Or, sous Archlinux, Firefox est déjà en version 52.0.1 et le user.js de earthIng (ghacks n’en a pas fait pour le moment apparemment) n’est disponible qu’en alpha. Dommage. :/

    Sinon, concrètement, quelles sont les différences entre la modifcation du fichier user.js et celle du about:config de Firefox (que j’utilisais jusqu’à maintenant) ?

    Merci d’avance pour ta réponse et encore merci pour l’article ! 😀

    J’aime

C'est ici pour laisser un petit mot...