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 after a period of time 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. Thus the default is the recommended setting for most people unless you have very low RAM or are experiencing memory-related issues with Firefox.

content.notify.interval [Integer] *Create - The value in microseconds for this preference (where 1,000 microseconds = 1 millisecond = 1/1000th of a second) determines how long Firefox buffers network data before displaying it. By default the value 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. Note that for this setting to work, a new Boolean preference called content.notify.ontimer must also be created and set to True.

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 value 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. Note that for this setting to work, a new Boolean preference called content.interrupt.parsing must also be created and set to True.

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.hangUITimeoutSecs [integer] - This setting controls the amount of time (in seconds) before the Firefox Crash Protection warning prompt first appears after detecting a hung plugin. The higher the value, the more time before Crash Protection automatically kicks in, or you can set it to a value of 0 to disable crash protection altogether. Altering this value may help by giving a problematic plugin more time to become responsive again, but ultimately if a plugin is faulty then after first making sure you have the latest version, you should disable or uninstall it in Firefox.

dom.ipc.plugins.timeoutSecs [integer] - This setting controls the amount of time (in seconds) before the Firefox Crash Protection feature automatically shut downs a non-responsive plugin, after you have been warned about it. This allows Firefox to shut down the plugin should you not make a choice on the warning screen, or be unable to due to lack of system responsiveness. You can lower the value if you want to quickly kill a non-responsive plugin.

dom.popup_maximum [Integer] - This setting determines the maximum number of simultaneous popup windows which can be opened at any time from a single click. This is designed to prevent the screen flooding with popups, as some malicious sites/malware can do for example. The default is 20, but I suggest a lower value such as 5, since most of the time users will only ever need a couple of legitimate popups opening up at the same time on their screen.

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 are otherwise not recommended. If for some reason you find a legitimate extension which you are absolutely certain is completely compatible and is not a security threat is being blocked, you can set this setting to False - which is not recommended - to get around the blocklist.

extensions.checkCompatibility.[FirefoxVersion] [Boolean] *Create - This preference must be created, and a major Firefox version number appended to its name, for it to function. For example, if you are using Firefox 29.0.1, the name for this preference would be extensions.checkCompatibility.29.0. Once created and set to False, you will then 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. 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. Note that 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.

extensions.checkUpdateSecurity [Boolean] *Create - If this preference is created and set to False, Firefox will not check for the update security status of an add-on. Thus any add-on can be installed, even if it does not meet Firefox's security requirements. This is not recommended, however it may be a requirement if you wish to install an incompatible add-on, as long as you are absolutely certain that it is secure.

extensions.dss.enabled [Boolean] - If set to True, this option enables Dynamic Skin Switching (DSS). This means that whenever you install or switch to a new Complete Theme in Firefox, its changes will be implemented and visible immediately, rather than having to close down all Firefox windows and relaunch. While this is handy, it can result in bugs and layout glitches, which can make it difficult to properly judge a theme. In general it is best to keep this preference set to its default of 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 may result in fewer spelling mistakes being found.

extensions.update.autoUpdateDefault [Boolean] - When set to True (default), this setting allows Firefox to automatically update any installed add-ons which are detected to have a newer version available. It is important to run the latest version of any add-on for security and compatibility purposes, but in some cases, a newer version of an add-on may have reduced/altered functionality which is not desirable. In such cases, you can set this preference to False if you want to disable automatic add-on updates.

extensions.update.enabled [Boolean] - This setting determines whether Firefox automatically checks for updates to installed add-ons. However whether these updates are automatically downloaded and installed is determined by the extensions.update.autoUpdateDefault preference above. It is recommended that this preference be left at its default of True so that even if you disable automatic updating, you can at least be made aware of the availability of updates for your installed add-ons.

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 hardware acceleration uses the GPU to improve performance in certain scenarios. Under Windows Vista, 7 and 8, this hardware acceleration uses both Direct2D and Direct3D, whereas under XP only Direct3D is available. If hardware acceleration is enabled in the main Firefox options, you can set this preference to True to only disable Direct2D acceleration without disabling Direct3D acceleration. This will disable the alternate text rendering method in Firefox in return for a drop in performance compared to full hardware acceleration. See the 'Use hardware acceleration when available' setting of the Firefox Settings section for full details.

images.dither [String] - Determines whether Firefox dithers colors, creating more realistic color gradations, or not. The default is Auto, which means Firefox decides if the image requires dithering; 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.

javascript.enabled [Boolean] - By default Firefox enables the JavaScript programming language, allowing Firefox to provide a range of scripted effects and features on websites. This preference allows you to choose whether to enable (True) or disable (False) JavaScript in Firefox. Disabling JavaScript will improve performance and security, but will reduce functionality on many sites. Alternatively, consider an add-on like NoScript to allow greater control over the execution of scripts on a per-site basis - see the Add-ons section of the guide for details.

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 web search 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.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.

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.

layout.scrollbar.side [Integer] - Firefox shows a scrollbar on the far left or the right of the screen depending on the language being used; for English this is on 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); 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.

media.autoplay.enabled [Boolean] - This setting determines whether Firefox allows embedded media on web pages to automatically commence playing. If set to False, this should stop autoplay of media on pages, but at the moment only appears to affect some media, such as HTML5 videos.

network.dns.disablePrefetch [Boolean] - This setting controls whether DNS (Domain Name System) 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 currently viewed page in advanced of any of them being clicked. However, if you are concerned about any privacy implications from enabling this feature, you may wish to disable this functionality by setting this option to True.

network.dns.disablePrefetchFromHTTPS [Boolean] *Create - This setting is the same as the preference above, except it only applies to HTTPS (i.e. secure) web links and objects, and by default is disabled (True). Creating this preference and setting it to False will enable DNS prefetching for secure links and objects, which can speed up browsing on secure pages.

network.dnsCacheEntries [Integer] - This setting determines how many entries should be held in the Firefox DNS 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 400 entries in the cache, which should be fine for most people.

network.dnsCacheExpiration [Integer] - This setting determines how long cached DNS entries 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.http.max-connections [Integer] - This setting determines how many simultaneous HTTP connections in total can be made by Firefox. The default is quite high at 256, so it shouldn't require raising. The maximum is 65535, but keep in mind that by raising this setting you only raise the maximum possible number of connections, you aren't forcing Firefox to increase the actual number of connections it makes every time.

network.http.max-connections-per-server [Integer] *Create - 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 or allowed.

network.http.max-persistent-connections-per-server [Integer] - 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 to improve browsing efficiency. The maximum possible is 255, and as mentioned further above, raising this to a high value will either result in a refused connection, or slower response times from the web page.

network.http.pipelining [Boolean] - If set to True, this setting uses the HTTP Pipelining feature supported by most servers to improve browsing speed. This setting affects all connections, both http and https. The only real concern is that this feature is not supported by all servers, so you may experience problems on certain sites with it enabled. I recommend that you enable the setting (True) to see if it increases your browsing speed, and only disable it if you experience problems.

network.http.pipelining.ssl [Boolean] - Similar to the setting above, but only affects secure HTTPS connections. Using pipelining for secure servers is much less problematic, so you may wish to disable global pipelining using the setting above, and set this preference to True to only enable it for secure sites.

network.http.pipelining.maxrequests [Integer] - This setting determines the maximum number of requests to send when the HTTP Pipelining feature (covered above) is enabled. The default is already at a high value of 32, while a value of 1 disables pipelining.

network.http.sendRefererHeader [Integer] - A 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 the Referer Header altogether. The default of 2 is recommended, but you may wish to disable it if you have privacy concerns. Note however that if you disable this feature, some site features may not function correctly. For example, you may be blocked from viewing certain content, especially images, as the site might think the image has been hotlinked.

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. This feature tries to load up what the web page believes is the most likely next page(s) you will want to view. It does this in the background during idle periods. This can speed up browsing, but may also have privacy implications, as elements of web pages you haven't actually visited may be placed into your browser cache.

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 using a lower value to see if it improves the responsive feel of Firefox at the expense of slightly longer overall load times. Conversely, some users report faster overall page load times with a higher value. Generally, this is best left at its default on most systems.

pdfjs.disabled [Boolean] - If set to False (default), this will allow native Firefox support for viewing PDF files within the browser, without the need to have any PDF reader add-on. If you experience any problems with viewing PDF files within Firefox, you can disable this feature by setting this preference to a value of True.

plugins.click_to_play [Boolean] - If set to True (default), this enables the Plugin Button feature covered in more detail under the Features, Tips & Tricks section. If you wish to disable this feature, you can set this preference to False. This will temporarily remove the Plugin button from the Address Bar on relevant sites, however it doesn't appear to fully disable this feature permanently.

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 further 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 it 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 as covered in the Add-ons section of the guide.

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 to True.

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 list of the most useful About:Config preferences. The next page covers how to tweak Firefox using the UserChrome.css and UserContent.css files.