Firefox: centralized management

One of my pet peeves about Firefox is its lack of native ability to be centrally managed. The following has been tested with Firefox 10 ESR (Extended Support Release).

  • Create the appropriate preference file.  For the Mac version of Firefox it is Firefox.app/Contents/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 root of the Firefox install.  For Mac clients this is Firefox.app/Contents/MacOS/
  • In the firefox.cfg file enter the following (replace the URL with the URL for your web server):
//setting prefs to read from web server

try {

lockPref("autoadmin.global_config_url","http://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", "http://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.