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.

Hello world!

It is all but fitting to have to first post be Hello world! Yes, this is just another WordPress install. Sure, I could have developed something from scratch and if I were a designer I probably would have gone that route. But I am not. I am a sysadmin. I make things work. For now WordPress is suiting my needs just fine. If for some reason that changes, I am sure you will read about it here.

Speaking of things that you will read here. My goal is add content frequently. Most of the content will be things that I run into in the “real world”. You can expect to find topics on networks, servers, virtualization, developing stuff (recently web applications, databases and the like).

Hopefully, you will find the content useful.