From MozillaZine Knowledge Base
This class encapsulates many of the commonly used features of Mozilla's preferences-related interfaces into a centralized, reusable class. It traps exceptions, allows you to specify default values for preferences when they don't exist in any preference tree, and keeps code organized by localizing preference manipulation to a single class. The only interfaces not yet supported are nsILocalFile and nsIRelativeFilePref. Feel free to add them if you like. Sample usage is shown in the leading comments.
Code temporarily taken down for maintanence