Firefox: centralized management

One of my pet peeves about Firefox is its lack of native ability to be centrally managed.

  • Create the appropriate preference file.  For the Mac version of Firefox it is Firefox.app/Contents/Resources/defaults/pref/macprefs.js
  • Add the following lines to the preference file:
//Added for Centralized Firefox Management
pref("general.config.obscure_value", 0); // takes out ROT-13 encoding on config file
pref("general.config.filename", "firefox.cfg"); //points to the config file that you create
  • Create the file “firefox.cfg” in the Resources folder of the Firefox install. ¬†For Mac clients this is Firefox.app/Contents/MacOS/Resources/
  • In the firefox.cfg file enter the following (replace the URL (https://www.example.com/autoconf.js) with the URL for your web server):
//setting prefs to read from web server

try {

lockPref("autoadmin.global_config_url","https://www.example.com/autoconf.js"); // points to config file on web server
lockPref("autoadmin.append_emailaddr",false); //doesn't append the username of the user.  Change to true if you want per user prefs.

} catch(e) {
  displayError("lockedPref", e);
}
  • On your web server create a the file called autoconf.js
  • In the autoconf.js file enter the preferences that you want to manage:
// Auto Config prefs for Firefox 

try {

// locked prefs

lockPref("browser.startup.homepage", "https://www.example.com/");
lockPref("browser.startup.homepage override.mstone", "ignore");
lockPref("browser.startup.page", 1);
lockPref("browser.formfill.enable", false);
lockPref("signon.prefillForms", false);
lockPref("signon.rememberSignons", false);
lockPref("app.update.enabled", false);
lockPref("extensions.update.enabled", false);
lockPref("browser.search.update", false);

} catch(e) {
  displayError("lockedPref", e);
}

If can’t find the preference name that you want to manage go to “about:config” in any Firefox browser window/tab.

Recap:

What you have done was add a preference to Firefox telling it to get its configuration settings from Firefox.cfg and in Firefox.cfg you redirected it to download preferences from a file hosted on a web server.  When you update the “autoconf.js” file on the web server the preferences are reflected on the users next launch of Firefox.

Update:

Updated the article for the latest version of Firefox.