Individual in the Enterprise
Firefox, Thunderbird have full-fledged graphical settings editors. It is easy for a user to change the behavior of his or her web browser with a few mouse clicks. While this approach is sensible for the home user, GUIs hamper software configuration in the corporate enterprise. Although Mozilla products textually represent preferences in a flat file, discovering the right text and value is not always simple. I will outline some techniques I use to determine preference strings for a given behavior.
Preferences in Mission Control Desktop
Mozilla MCD autoconfig is an invaluable tool to the software administrator. It runs at browser startup setting preferences according to corporate policy. After starting, Firefox saves all settings to the user’s local
prefs.js file. The autoconfig API and user
prefs.js work with text preferences. When you decide to change the application’s behavior your
prefs.js is a good place to look.
Quit Firefox. Backup then remove your Firefox profile directory. On linux it is in
$HOME/.mozilla/firefox. Then launch the browser starting with a good autoconfigured profile.
Take a backup of your user prefs.js from Firefox”s profile directory. (
$HOME/.mozilla/firefox//prefs.js) Make the behavior change and apply. Use
diff to compare the preference files.
Suppose your company decides that Firefox should only keep third-party cookies for the lifetime of the browser. Once the user closes Firefox, it will delete all third-party cookies. Make the change (for version 3.6.3) in Settings –> Privacy –> Check Accept cookies from sites, then check Accept third-party cookies and change the dropdown to Keep until: I close Firefox.
Your preferences should look something like this:
0 apollo firefox/kzssiknu.default % diff -u prefs.js.pre prefs.js --- prefs.js.pre 2010-04-22 12:57:30.000000000 -0500 +++ prefs.js 2010-04-22 12:57:39.000000000 -0500 @@ -230,6 +230,7 @@ user_pref("lightweightThemes.persisted.footerURL", true); user_pref("lightweightThemes.persisted.headerURL", true); user_pref("metrics.upload.enable", false); +user_pref("network.cookie.lifetimePolicy", 2); user_pref("network.cookie.prefsMigrated", true); user_pref("nglayout.debug.disable_xul_cache", true); user_pref("nglayout.debug.disable_xul_fastload", true);
See that a new preference called
network.cookie.lifetimePolicy was inserted with value
2. Use these in autoconfig, calling
// Remember third-party cookies until the browser closes lockPref("network.cookie.lifetimePolicy", 2);
Sometimes it’s not that easy
The above method does not work all the time. For example, Thunderbird’s password settings are not so obvious. My company does not allow password storage so I needed to lock out that behavior.
Inspecting the preferences GUI leads nowhere. My first resource in these cases is the About:config_entries page on MozillaZine. It’s a wild wiki page containing mostly-complete setting documentation for all the Mozilla products. There you will find a table with the right information.
|Name||Type||Meaning of Values|
|signon. rememberSignons||Boolean||True: (default): Enable the Password Manager
False Opposite of the above
The About:config_entries page also has pointers to the wiki’s Category:Preferences and The Preferential Project. Each page has something the others lack. When these resources fail, I sign on to irc.mozilla.org (as
OccamRazor, old-school IRC etiquette rules apply.) or as a last resort, hit a search engine.
When you find the right text to twiddle document the behavior in your autoconfig as I did for the cookie lifetime above.