I’m experimenting with a new (to me) method of delivering configuration settings for Firefox.
Previously I was inserting custom configuration files into the application bundle.
While this worked, it had a significant disadvantage. In order to be able to install new versions of Firefox without deleting these inserted files, I had to repackage new Firefox releases. This is very easy and takes little time, but is still more work than zero. I wanted to see if I could make things more modular, so I could install Firefox from the Mozilla disk image without having to repackage it.
Mozilla has a tool called the “Client Customization Kit” or “CCK” which was designed to allow organizations to customize Firefox for their use. I had looked at it in the past, but for a variety of reasons had thought it would not be able to do what we needed. (And last I looked, it had not been updated for Firefox 3.x. That’s no longer an issue — it was updated for Firefox 3.6 in March.)
One big problem I saw was that the CCK creates a Firefox extension. These are usually installed in the user’s profile in their home directory, so that’s not a good fit for something you want to manage enterprise-wide. With Firefox 2.x and earlier, there is a way to install extensions “globally”, but they end up inside the application bundle on OS X, and that’s the same problem I was trying to solve.
With the release of Firefox 3.x, a new location for global extensions was added. The location varies depending on the OS — Mac OS X; Windows; Linux — but the important thing is that this new location is outside of the application bundle on OS X. This new global location is:
(I have no idea why it couldn’t be just “/Library/Application Support/Mozilla/Extensions/Firefox/”.)
So it is possible to:
- Use the Firefox CCK to create a Firefox extension that customizes Firefox settings for your organization, and then:
- Build an installer that puts this extension in the right place to be used by all Firefox users on a given machine.
Since hopefully the desired configuration for Firefox changes far less frequently than the app itself does, this is a win for the administrator, especially if your software distribution mechanism can install Firefox directly from the Mozilla disk image. (And I had to create an installer for the customizations when I was putting them inside the Firefox app bundle anyway.)
There are some other benefits/differing capabilities that arise from moving to this solution:
- Admin users could update Firefox themselves and still have your organization’s settings applied. Previously, if they had replaced your customized Firefox with a version downloaded from mozilla.com, the custom configuration would be erased.
- Some additional settings become much easier to manage; specifically the “feature” that takes you to a “What’s New” page with each new release of Firefox is easy to turn off now. I think that was possible before with manual configuration; I just never puzzled it out. Now it’s a check box in the CCK assistant.
- Users who really hate your custom settings or want/need to turn them off for some reason can now do so. In Firefox, select Tools->Add-ons. In the Add-ons window, select the Extensions tab, then your CCK extension, and click “Disable”. You could consider this change a net positive or net negative; the ability to disable the extension can be turned off, if you need the settings to be locked down.
Firefox Client Customization Kit:
Mozilla article on installing extensions: