Déployer Firefox en entreprise
En direct du travail Alexandre 08 octobre 2015

Cet article est une mise à jour du précédent article du même nom que vous pouvez retrouver ici. Je vous invite vivement à lire au moins son chapô où j'explique l'intérêt de Firefox en entreprise mais également comment convaincre la direction d'utiliser le renard plutôt que les petits bleu (Internet Explore ou Edge) ou le rond multicolore (Google Chrome).

Bref, pourquoi cette mise à jour ?
Depuis la version 40, Mozilla a décidé de durcir la sécurité de son navigateur afin, notamment, d'empêcher toute extension non-signée d'être installée. Personnellement, je trouve que c'est une excellente idée, sauf que la méthode de personnalisation de Firefox via CCK2 ne fonctionne plus du tout. Voilà donc pourquoi il faut en revenir aux bases et utiliser la documentation du renard pour le personnaliser dans les règles de l'art.

Avant de commencer, je tiens à vous dire que cette méthode est nettement plus complexe/lourde/longue à mettre en place que la précédente, mais a le mérite de fonctionner !

 

Préparation

Je vous recommande vivement de créer un dossier de travail pour effectuer cet article, notamment parce qu'il pourra vous servir à réaliser les différentes mises-à-jour de votre installeur personnalisé. Cet article s'appuie sur l'arborescence que j'ai choisie, à savoir :

  • Créer un dossier nommé firefox_work à la racine de C:\
  • Créer les sous-dossiers suivants :
    • 7zip
    • custom
    • installeur
    • make

Passons maintenant aux pré-requis :

Normalement, une fois tous les pré-requis en place, vous devriez avoir quelque chose dans ce goût là :

Arborescence du dossier de travail

Pour les plus feignants d'entre-vous, je mets à disposition ici mon dossier complet firefox_work. Attention, le script make_custom.ps1 peut être obsolète, il faut alors le mettre à jour en remplaçant son contenu par celui-ci.

Personnaliser Firefox

Comme évoqué dans le chapô, il n'est plus possible, à partir de Firefox 40, d'utiliser CCK2, comme dans la version précédente de cet article. En effet, la fondation Mozilla a décidé, pour des raisons de sécurité, de ne pas autoriser les modules non-signés dans son navigateur. Même si ce choix complique notre travail, il est tout à fait compréhensible. Heureusement, une solution existe : se la faire à l'ancienne.

La méthode "à l'ancienne", recommandée par Mozilla depuis toujours, force à créer des fichiers de configuration personnalisée :

  • autoconfig.js : indique à Firefox qu'il doit se servir d'un fichier pour se configurer au démarrage
  • custom.cfg : fichier contenant les paramètres que Firefox doit utiliser lors de son lancement

Voyons maintenant ce que contiennent ces fichiers.

autoconfig.js

Ce fichier contient seulement deux lignes, dont la première sert à appeler le fichier contenant les paramètres.

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

custom.cfg

Cette fois, se sont directement les paramètres de Firefox que l'on doit entrer dans ce fichier, et il y en a énormément ! L'extrait que je donne ci-après, et qui est commenté, permet normalement de répondre à tout vos besoins. Toutefois, la lecture de la documentation de Firefox n'est pas inutile pour autant.

//
//    Configuration de Firefox par alexandre@inios.fr
//

// set default homepage
lockPref("browser.startup.homepage", "http://home.inios.local");
lockPref("startup.homepage_welcome_url", "http://home.inios.local");

// disable updater
lockPref("app.update.enabled", false);
lockPref("app.update.auto", false);
lockPref("app.update.mode", 0);
lockPref("app.update.service.enabled", false);

// disable Add-ons compatibility checking
clearPref("extensions.lastAppVersion");

// disable Add-ons installation
lockPref("xpinstall.enabled", false);

// don't show 'know your rights' on first run
pref("browser.rights.3.shown", true);

// don't show WhatsNew on first run after every update
pref("browser.startup.homepage_override.mstone","ignore");

// disable the internal PDF viewer
pref("pdfjs.disabled", true);

// don't ask to install the Flash plugin
pref("plugins.notifyMissingFlash", false);

// disable the flash to javascript converter
pref("shumway.disabled", true);

// disable health reporter
lockPref("datareporting.healthreport.service.enabled", false);

// disable all data upload (Telemetry and FHR)
lockPref("datareporting.policy.dataSubmissionEnabled", false);
lockPref("toolkit.telemetry.enabled", false);
lockPref("toolkit.telemetry.prompted", 2);
lockPref("toolkit.telemetry.rejected", true);

// disable crash reporter
lockPref("toolkit.crashreporter.enabled", false);
Components.classes["@mozilla.org/toolkit/crash-reporter;1"].getService(Components.interfaces.nsICrashReporter).submitReports = false;

// disable initial RSS intro
lockPref("browser.feeds.showFirstRunUI", false);

// configure proxy
lockPref("network.proxy.type", 5);

// disable plugin checking
lockPref("plugins.hide_infobar_for_outdated_plugin", true);
clearPref("plugins.update.url");

// disable features
lockPref("loop.enabled", false);
lockPref("browser.pocket.enabled", false);

Une petite explication concernant les fonctions :

  • lockPref() : permet d'empêcher un utilisateur de modifier la valeur et ce, même en passant par about:config
  • clearPref() : laisse le paramètre vide. Cela permet notamment de désactiver une fonctionnalité native du navigateur
  • pref() : applique la valeur, mais permet à l'utilisateur de la modifier pour la session courante
  • defaultPref() : applique la valeur, mais permet à l'utilisateur de la modifier pour toujours (cf commentaire de Pit)

Aller plus loin

Certains l'auront remarqué, le changement de méthode nous fait perdre quelques trucs bien utiles comme :

Un fichier d'installation personnalisé

NB : cette partie fonctionne uniquement si votre dossier firefox_work est parfaitement structuré, dans le doute, prenez le mien.

Firefox étant régulièrement mis à jour, j'ai décidé de mettre au point un script me permettant d'intégrer toutes mes personnalisations.
Concrètement, le script permet d'automatisé le processus du fichier d'installation officiel vers le notre.

Pour avoir la dernière version du script, qui n'est pas forcément celle fournie avec mon dossier firefox_work, je vous invite à vous rendre ici. Un petit copier-coller du contenu dans le fichier make_custom.ps1 et le tour est joué.
Il ne reste plus qu'à exécuter le script et répondre à la seule et unique question qu'il vous pose :

Les dossiers suivant sont situés dans C:\firefox_work\installeur, veuillez choisir celui que vous souhaitez utiliser en indiquant le numéro entre crochet.
[1] - Firefox Setup 40.0.3.exe
[2] - Firefox Setup 41.0.exe
Choisir le numéro du dossier à personnaliser: 2

Le script s'occupe alors de générer un fichier d'installation personnalisé firefox-custom.exe que vous pourrez trouver dans dans le dossier make.

Déployer l'installeur

Nous revenons à quelque chose de beaucoup plus simple puisque la commande suivante permet d'installer Firefox de façon silencieuse :

firefox-custom.exe -ms

Voici le script que j'utilise pour déployer :

Script batch (en administrateur)

:: Installation de Firefox
firefox-custom.exe -ms

:: Désactivation du service de maintenance de Firefox
sc config "MozillaMaintenance" start= disabled

:: Désinstallation du service de maintenance
"C:\Program Files (x86)\Mozilla Maintenance Service\uninstall.exe" /S

:: Suppression du raccourci sur le bureau
del "C:\Users\Public\Desktop\Mozilla Firefox.lnk"

Référence

Écrire un commentaire

Quelle est la dernière lettre du mot ppch ?