Firefox Tweak Guide

[Page 11] Advanced Tweaking (Pt.3)

config.trim_on_minimize [Boolean] *Create - This setting only works in Windows, and determines whether Firefox - much like other Windows applications - reduces its memory usage when minimized to the Taskbar. If set to True, it will use less memory when minimized, which is useful for systems with low RAM and multiple open applications. However if set to False (the default) it speeds up minimizing/maximizing Firefox, as Windows will not constantly attempt to reduce and reclaim RAM from Firefox, and this can also increase stability. Thus the default is the recommended setting for most people unless you have very low RAM.

content.notify.interval [Integer] *Create - Note that for this setting to work, a new Boolean called content.notify.ontimer must also be created and set to True as well. The value in microseconds for this preference (where 1000 microseconds = 1 millisecond = 1/1000th of a second) determines how long Firefox buffers network data before displaying it. By default this is 120000 microseconds (120 milliseconds). Lowering this setting may improve display speed in Firefox, however it will also increase CPU usage to do so. Experiment with this setting, either raising it or lowering it to see if the results are beneficial on your system. Don't drop this value to one which is extremely low however. If in doubt, do not change this value as you are more likely to slow Firefox down than speed it up.

content.switch.threshold [Integer] *Create - This setting determines how long Firefox waits for user input (mouse or keyboard input) before switching to a less-responsive but less system-intensive low frequency mode while loading a page. The default is 750000 microseconds, but raising this value might keep Firefox more responsive at the cost of greater system load and slightly longer page loading times. I don't recommend changing this value.

dom.disable_window_open_feature.* [Boolean] - There are 10 settings which begin with this tag (and end with one of the following: .close, .location, .menubar, .minimizable, .personalbar, .resizable, .scrollbars, .status, .titlebar, .toolbar). These settings control the appearance elements of popup windows which you can force to be displayed. For example, if you set the dom.disable_window_open_feature.close setting to True, it will force all popup windows which open up to have a close button in the top right hand corner of the popup window. This is useful since many popup windows (mainly ads) deliberately remove such elements to prevent easy resizing/closing of their content. For that reason I recommend you set at least the .close and .resizeable settings to True.

dom.ipc.plugins.timeoutSecs [integer] - This setting controls the amount of time (in seconds) before the Firefox Crash Protection feature considers a plugin to be unresponsive and shuts it down. The higher the value, the more time before Crash Protection kicks in. Altering this value may help resolve problems with frequent plugin-related crashes, however ultimately if a plugin is faulty then you should uninstall it wherever possible rather than raising this value.

dom.popup_maximum [Integer] - This setting determines the maximum number of simultaneous popup windows which can be open at any time from a site to prevent the screen flooding with popups (as some malicious sites/malware can do). The default is 20, but I suggest a value such as 5, since most of the time users will only ever need a few legitimate popups opening up at the same time on their screen. If you find legitimate popups are being blocked, raise this value again.

extensions.blocklist.enabled [Boolean] - If this option is set to True (the default), Firefox refers to an online blocklist to determine whether to block the installation of certain extensions which may be security risks or otherwise not recommended. If for some reason you find a legitimate extension which you are certain is completely compatible and is not a security threat is being blocked, you can set this setting to False to get around the blocklist - though obviously this isn't recommended.

extensions.checkCompatibility.[FirefoxVersion] [Boolean] *Create - If this preference is created - e.g. extensions.checkCompatibility.11.0 for Firefox 11.0 (only major version numbers are accepted) - and then set to False, you will be able to install and use add-ons which would normally be detected as incompatible with your current version of Firefox and hence not allowed installation. A warning appears at the top of the Add-ons Manager window indicating that incompatible add-ons may be installed. In some cases installing an incompatible add-on may not cause any major problems, however in a range of cases there may be odd behavior or crashes as a result. Use this setting with caution. Typically you must also create and set the extensions.checkUpdateSecurity preference to False (as covered below) to allow some incompatible add-ons to be installed. New to Firefox 4.0

extensions.checkUpdateSecurity [Boolean] *Create - If this preference is created and set to False, along with the extensions.checkCompatibility.[FirefoxVersion] preference above, any add-on can be installed, even if it does not meet Firefox's security requirements for add-ons. This is not recommended, however it may be a requirement if you wish to install an incompatible add-on.

extensions.dss.enabled [Boolean] - If set to True, this option enables Dynamic Skin Switching (DSS). This means that whenever you install and/or switch to a new Theme in Firefox, its changes will be implemented and visible immediately, rather than having to close down all Firefox windows and relaunching Firefox. While this is handy, it can be quite buggy and results in glitches, so in general it is better to keep this set to False.

extensions.getAddons.maxResults [Integer] - This preference determines the maximum number of results shown when add-ons are displayed under the 'Get Add-ons' tab in the Add-ons Manager. The default is 15, however you can alter this value to show more or less results within the tab.

extensions.spellcheck.inline.max-misspellings [Integer] - When the built-in spell checker in Firefox is enabled, this option determines the maximum number of spelling mistakes the spell checker can encounter and try to identify before it gives up. The default limit is 500, but on text entry boxes with a large number of mistakes this can cause a noticeable slowdown. Lowering the limit can make Firefox much more responsive on such pages, but results in fewer spelling mistakes being found.

geo.enabled [Boolean] - The Geolocation feature in Firefox is enabled by default and only functions if you give explicit permission to a website to use it on a case by case basis. However if you wish to permanently disable Geolocation in Firefox, set this option to False.

gfx.direct2d.disabled [Boolean] - Firefox 4.0 introduced hardware acceleration features which utilize the GPU to improve performance in certain scenarios. Under Windows Vista and 7, this hardware acceleration uses both Direct2D and Direct3D, whereas under XP only Direct3D is available. If hardware acceleration is enabled, then you can set this preference to True to only disable Direct2D acceleration without disabling Direct3D acceleration. This will rectify the blurry/alternate text rendering method in Firefox in return for a drop in performance. See the 'Use hardware acceleration when available' setting of the Firefox Settings section for full details. New to Firefox 4.0

images.dither [String] - Determines whether Firefox dithers colors (creates more realistic gradations) or not. The default is Auto, which means Firefox decides if the image requires dithering or not; if set to True, Firefox will dither all images; if set to False, it will not applying dithering to any image. The default is recommended, however if you want to see all images in their original unaltered form, set to False.

intl.locale.matchOS [Boolean] - This setting is used by Firefox to determine where you are located in the world. If set to True, the setting tells Firefox to use the locale you've set in your operating system as your Firefox locale. If set to False, Firefox won't check or use your OS locale, it will use the one set in the general.useragent.locale preference. [Boolean] - By default Firefox enables the TraceMonkey Just In Time (JIT) compiler to improve javascript performance - this is witnessed by the i>javascript.options.jitprofiling.content preference being set to True by default (and it should be left as such). However the JIT compiler for extensions, denoted by the preference, is disabled at present because of potential problems it can cause. To enable potentially faster performance in some extensions, set this preference to True but be aware of its problematic nature.

keyword.URL [String] - This setting determines the address to use to run searches when you type a word in the Firefox Address Bar. By default the value is blank and thus automatically points to Google, which means the default is the same as You can enter a custom search string here to alter the site which the Address Bar uses for searches. For example, enter as a value here to allow search launched from the Address Bar to use the Bing search engine.

keyword.enabled [Boolean] - By default entering a word (and not a URL) in the Firefox Address Bar is considered a Keyword, and Firefox will either look for a bookmark with the same defined keyword and launch it, or commence a search in Google using that word. If you don't like this functionality you can disable it alltogether by setting this value to False. Bookmark Keywords will still function however.

layers.acceleration.disabled [Boolean] - By default, if hardware acceleration is enabled, Firefox will use layers technology to identify and GPU-accelerate portions of a web page which can be rendered faster on a graphics card than the CPU. This option allows users to disable this technology by setting the preference to False, however this in turn essentially disables hardware acceleration. So this preference should not be altered directly, it is best to enable or disable hardware acceleration within the normal Firefox options. New to Firefox 4.0

layers.prefer-d3d9 [Boolean] - By default, if full hardware acceleration is enabled, Firefox will utilize Direct3D10 layers acceleration. If this preference is set to True, then Direct3D9 acceleration will be used instead, which may resolve compatibility issues at the cost of performance. New to Firefox 4.0

layers.prefer-opengl [Boolean] - By default, if full hardware acceleration is enabled, Firefox will utilize Direct3D layers acceleration. If this preference is set to True then OpenGL rendering mode will be implemented. However Direct3D is native to Windows and much faster, so this option should generally not be changed from its default of False. New to Firefox 4.0

layout.scrollbar.side [Integer] - Firefox shows a scrollbar on the left or the right of the screen depending on the language being used; for English this is the right side. If you want to force Firefox to display the scrollbar on the left or the right regardless of language, set this option from its default of 0 (auto) to 2 (scrollbar always on right); or 3 (scrollbar always on left).

layout.spellcheckDefault [Integer] - This setting controls whether the built-in spell checker is disabled (0); enabled and checking multi-line text boxes (1 - the default); or enabled and checking all text boxes (2) which includes single-line text boxes.

layout.word_select.eat_space_to_next_word [Boolean] - This setting determines the selection behavior when you double-click on a word on a web page. By default (True), Firefox selects the word and the white space on the right of that word. If set to False, Firefox will only select the word itself with no extra spaces.

layout.word_select.stop_at_punctuation [Boolean] - This setting determines whether Firefox selects the punctuation around a word when it is double-click selected. If set to True, the punctuation is not selected with the word; if set to False, additional punctuation around the word is also selected. For example double-clicking on (default) in Firefox will either just select default, or (default) based on this setting.

network.dnsCacheEntries [Integer] *Create - This setting determines how many entries should be held in the Firefox DNS (Domain Name System) cache. Whenever you enter a web address in Firefox, it needs to convert that text address into an IP number. It does this by looking up the name and IP number through a DNS server. By holding DNS entries in a local cache, the next time you want to go to the same site Firefox can load it up much faster. By default Firefox holds 20 entries in the cache. I recommend changing this number to match at least the number of sites you regularly browse. More importantly, check the setting below to ensure DNS entries are kept up to date.

network.dnsCacheExpiration [Integer] *Create - This setting determines how long the cached DNS entries (as set by the network.dnsCacheEntries setting) are held before they are discarded. The default is 60 (seconds), however before changing this setting consider the pros and cons - the longer cached entries are held, the quicker your browsing may be, but the longer it may take for Firefox to be aware that a site which was temporarily considered unavailable (unresolved) is now accessible again (resolved).

network.dns.disablePrefetch [Boolean] *Create - This setting controls whether DNS Prefetching is enabled or not. By default it is enabled (False) in Firefox, and this can aid in speeding up browsing as Firefox speculatively resolves DNS entries for web links and objects on the viewed page in advanced of any of them being clicked. However if you wish to disable this functionality, set this option to True. See the last page of this guide for more details on this feature.

network.dns.disablePrefetchFromHTTPS [Boolean] *Create - This setting is the same as the network.dns.disablePrefetch preference above, except it only applies to HTTPS (i.e. secure) web addresses, and by default it is disabled (True). Setting this option to False will enable DNS prefetching for secure links and objects.

network.http.max-connections [Integer] - This setting determines how many simultaneous HTTP connections can be made by Firefox. The default used to be 30, but in more recent versions of Firefox it is now quite high at 256, so it shouldn't require raising. The maximum is 65535, but remember that by raising this setting you are only raising the maximum possible number of connections. You aren't forcing Firefox to increase the actual number of connections it makes every time; if your system actually attempted to force several hundred connections to open at once for example it would likely slow down to a crawl.

network.http.max-connections-per-server [Integer] - This setting determines how many simultaneous connections can be made to a single server. The default is 15, however you can increase the value for broadband connections to something like 20 or 32 to attempt to increase browsing speed. The maximum is 255, however note that raising this setting to a high value (in conjunction with a high value for the network.http.max-persistent-connections-per-.* settings below) may be construed as part of a DoS (Denial of Service) attack by some servers and your connection may be refused or even permanently banned. Simply increasing the number of possible connections to a server doesn't necessarily make things any faster, it doesn't force lots of extra connections, it just allows more connections if they're needed.

network.http.max-persistent-connections-per-proxy [Integer] - If you are connected to a proxy, this setting determines how many connections to keep alive at any time. The default is 8, however you can attempt a higher value to potentially improve speeds. As mentioned in the settings above, raising this to a very high value will put additional stress on the proxy server and may ultimately result in slower browsing for everyone on the proxy and/or a refused connection.

network.http.max-persistent-connections-per-server [Integer] - If you are not connected to a proxy, this setting determines how many connections to a single server to keep alive at any time. The default is 6, however you can attempt a higher value such as 8 to improve browsing efficiency. The maximum possible is 255, and as mentioned in the settings above, raising this to a very high value will put stress on the particular websites you are connected to and will either result in a refused connection, or slower response times from the web page for every person trying to connect to it. Do not raise this value to one which is very high as it is inconsiderate and counter-productive if everyone does so.

network.http.pipelining [Boolean] - If set to True, this setting uses the HTTP Pipelining feature supported by some servers. Note that if you're behind a proxy, see the network.http.proxy.pipelining preference below instead. HTTP Pipelining can improve browsing speeds, however because the feature is not supported by all servers you may experience problems on some sites with it enabled. I recommend that you try enabling this setting (True) to see if it increases your browsing speed.

network.http.pipelining.maxrequests [Integer] - This setting determines the maximum number of requests to send when using the HTTP Pipelining feature (see above). The default is 4, and the maximum possible is 8 (higher values are ignored), while a value of 1 disables pipelining. I recommend setting this to 8. If you experience any problems with the Pipelining feature it is best to disable it altogether.

network.http.proxy.pipelining [Boolean] - If set to True, this setting enables the HTTP Pipelining feature (see network.http.pipelining above) for proxy servers. This can improve browsing speeds, however because the feature is not supported by all proxies you may experience problems. I recommend you try enabling this setting (True) to see if it increases your browsing speed if you're behind a proxy.

network.prefetch-next [Boolean] - This setting determines whether to use a Firefox feature called Link Prefetching to anticipate and load up in advance pages you might visit shortly. See the last page of this guide for more details.

network.http.sendRefererHeader [Integer] - The Referer Header tells the server you are on details about which page you last came from with each new page request. This is used by many sites to not only track users for statistical purposes and to improve site design and content, but also to provide additional functionality. The default value of 2 sends this information as required; a value of 1 only sends this information for documents, not images; and a value of 0 disables it altogether. The default of 2 is recommended. If you disable this feature, some site features may not function correctly (e.g. you may be blocked from viewing certain content, especially images).

nglayout.initialpaint.delay [Integer] *Create - This setting determines how many milliseconds Firefox should wait before it starts to display the page contents. This brief delay allows Firefox to load and arrange the various page components as correctly as possible. The default is 250 milliseconds (a quarter of a second) which isn't very long, but you can try setting this to a lower value or even 0 to see if it improves the responsive feel of Firefox at the expense of slightly longer load times. Some users report faster overall page load times with a higher than default value, so experiment to see which value suits your browsing habits, and if in any doubt do not create or alter this setting.

pdfjs.disabled [Boolean] - If set to False, this will allow native Firefox support for viewing PDF files within the browser, without the need to have any PDF reader add-on. This capability may be buggy, which is why it is disabled (True) by default. New to Firefox 15.0

places.frecency.[type]VisitBonus [Integer] - The Address Bar, also dubbed the Awesome Bar, provides much greater functionality. Part of this is the ability to provide a drop-down set of search results whenever a word is entered in the Address Bar. These results are based on a search through your bookmarks, history and tags, and the way in which they are ordered is based on a combination of both frequency of use, and recency of use - hence the term 'frecency'. The preferences starting with places.frecency contain the parameters used to calculate the weighting and prominence given to the search results. VisitBonus equates to the extra percentage bonus given to certain location types. While you can experiment with these to see if you can improve the order of search results based on your particular tastes, I recommend noting down the default values first before making any changes.

plugins.click_to_play [Boolean] - If set to True, allows you to click the Plugin icon, which appears on sites which use plugins to run content, and select whether to allow or block that plugin from running on that site. New to Firefox 14.0

plugins.hide_infobar_for_missing_plugin [Boolean] - When viewing a web page which requires a Plugin (such as Flash), Firefox will prompt the user to install this plugin. If you don't ever want to see any such prompts, set this setting to True, however obviously this will cause confusion if you're not given any warning or prompt indicating why certain content isn't playing on a page.

print.use_global_printsettings [Boolean] - If set to True, Firefox will use the same printer settings you chose globally for every open Firefox window. If set to False, each open Firefox window can have a separate print setting applied to it.

privacy.popups.disable_from_plugins [Integer] - Some sites use plugin-based scripts to circumvent the popup blocker and launch a popup window when you click on the page. If this preference is set to 0 it doesn't block any such popup windows; if set to 1 it limits the maximum of popups (based on the dom.popup_maximum setting - see above); and if set to 2 it blocks all popups from plugins (except for sites in your list of pop-up Exceptions under Firefox Options>Contents) which is the default setting; if set to 3 blocks all popups regardless. The default of 2 is fine, but if you still can't get rid of certain script-based popups try 3 or use the NoScript extension covered in the Add-ons section of the guide. Be aware that some sites, such as Flash-based sites, may legitimately need to open popup windows using plugins.

privacy.popups.showBrowserMessage [Boolean] - By default the first time Firefox blocks a popup (if the popup blocker is enabled) then it will ask you whether you want to display a message each time a popup is blocked. The answer you provide at that time sets the default for this setting, but you can always come back and change it at any time by editing this preference.

ui.submenuDelay [Integer] *Create - After creating this preference, you can set the amount of delay (in milliseconds) between when you hover your mouse over a submenu in Firefox, and the time it takes for the submenu to open. For example, click the Firefox button and hover over the Options item to see this delay in action. By default the delay time is determined by your general menu delay in Windows. You can set a Firefox-specific delay value with this preference.

zoom.maxPercent [Integer] - Determines the maximum percentage by which a page can be zoomed in using Firefox's full page zooming feature. The default is 300% however you can raise this value if you wish to zoom in even more on a page. You can also adjust the minimum zoom level with the zoom.minPercent preference, the default being 30%, and you can make this value even smaller to allow you to zoom out further if you wish.

That concludes the About:Config preferences list. The next page covers UserChrome.css and UserContent.css tweaks.