Hack 60. Configure Firefox Under the Covers
To keep the Firefox GUI preferences simple, some of the more interesting but less common options were moved under the covers by the developers.
Almost every application allows you to customize it to some extent. For most graphical programs, these configuration options are available through dialog boxes and settings menus, whereas console programs usually store these options in a series of configuration files. In either case, the options are clearly visible and available to be configured.
Firefox is a little different. Instead of bombarding the user with every potential option and setting for the program within the settings dialog boxes, Firefox puts only the most commonly needed options in the main Preferences dialog box. Everything else it hides away. This has the benefit of making Firefox simple to use for most users, whereas power users can jump under the covers to tweak many different settings.
8.7.1. Entering Configuration Mode
This page gives you information about the plug-ins that are configured for the browser. There are a number of modes, including about:mozilla, about:credits, about:, and most interestingly, about:config, the main Mozilla configuration interface.
When you enter about:config, you see a number of lines listed down the page. Each line refers to a different setting that can be configured. As an example, one of my lines is:
browser.startup.homepage user set string http://www.jonobacon.org/
This setting simply sets the default home page that is loaded when the browser is started. The status column refers to this as user set, because this option was configured in the dialog box in Firefox. The type column refers to this setting as a string because the setting browser.startup.homepage requires text strings as a value. The final value column actually states the desired page for the setting. You can see that most of these settings follow the same format, and most have their status set to default. Here are a couple of examples on how to use these settings to configure Firefox to do things you can't otherwise control from the Preferences page.
8.7.2. Teach Firefox to Lie
When you connect to any web site on the Internet, your web browser leaves a small fingerprint with the web server that gives some details about which browser and operating system you are running. This information is called the user agent.
Many web sites use this information to cater their content to specific browsers. This has traditionally been the case with web sites that have not been coded to run in every browser (as they really should be) and are instead designed specifically around Internet Explorer. This causes a problem for anyone using a different browser, and even if the site was to work correctly in Firefox, the user agent would probably trigger a "This site requires IE" access-denied page. Luckily for the Firefox faithful, you can use about:config to change your user agent to anything you want. This means you can lie about your browser to web sites you visit, so you can get around their stupid IE-specific coding practices.
By default Firefox sets a sensible user agent string for you, and you can see it when you select HelpAbout Mozilla Firefox. On Linux the default user agent is:
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7) Gecko/20040914 Firefox/0.9.3
To override this setting you need to set the general.useragent.override setting. By default this setting is not available, so you need to add it. To do this, right-click the about:config page, select NewString, and in the box that appears, type:
In the box that pops up, enter a new user agent string such as:
Mozilla/4.0 (compatible;MSIE 5.5;Windows 98)
Restart Firefox and select HelpAbout Mozilla Firefox to see the new user agent string. Now you can access web sites that require IE in Firefox!
8.7.3. Loading Web Pages Faster
You can use the about:config screen to tweak Mozilla's performance by increasing the maximum number of connections to different aspects of the network. Here are the settings to change, along with their values:
network.http.max-connections 128 network.http.max-connections-per-server 48 network.http.max-persistent-connections-per-proxy 24 network.http.max-persistent-connections-per-server 12
These values are only guidelines for some sensible settings.