Dig underneath Firefox's user interface and hack the preference system directly.
Firefox's preference system holds many of the small configuration items of the Firefox browser. These items are hidden from the user: behind formal user interfaces, unimplemented by user interfaces, or invisible because no default values are recorded anywhere. This hack explains how to work with the preference system directly.
The preference system is equivalent to a tiny database. It sits in memory while Firefox runs. The preference database is a thread-safe but single-user database. It consists of a single table of four columns:
Contains a unique string that identifies the preference. This is the primary key.
Contains the data for the preference. It can be a string, number, or true/false (Boolean) value.
States whether the preference has been locked. Users cannot change locked preferences.
Remains true as long as the user does not set (override) the preference.
The last two columns are not set explicitly; they are set indirectly [Section 3.3.4, later in this hack] Here is a typical preference:
Name Value ---- ----- browser.chrome.site_icons true /* not locked, user set */
Any string (within reason) can be used as a preference name. The dots (periods) are not especially meaningful. They are just a convenience for programmers. Programmers can compose a query that pulls out all the preferences ...