Using Firefox/Advanced

From Wikibooks, open books for an open world
Jump to navigation Jump to search
Chapters: 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14

about:config[edit]

In Gecko-based browsers, such as Firefox, SeaMonkey, and their derivatives, about:config is a powerful way to tweak preferences in ways that are not normally accessible through the Preferences page (earlier, the Options window).

As in the Firfeox user interface, preferences in about:config apply only to the active browser profile. Different user profiles can have different preferences; though most settings are the same across profiles.

Type about:config into the Firefox address bar, and you might first be shown a page to warn you, that these are advanced settings, and changing some of them might break how Firefox works. There is a 'Continue' button and a checkbox not to show the warning page again. After clicking the 'Continue' button, you are then taken to about:config settings.

At the top is is a search bar to allow finding the right preference by filtering the list. Copying and pasting a preference name into the search bar makes it easy to find the right one.

A user is presented with a table-based list of preferences, showing their name, status, type, and value in their respective columns. The list can be sorted in ascending and descending order by clicking on each column's header. One can move around in the list by single-clicking a setting to move cursor focus into the list, and then using the keyboard navigation keys (Up, Down; PgUp, PgDn; Home, End).

Most about:config preferences are built-in and displayed. Some preferences are hidden, and must be added by the user. Other preferences are created by an installed extension, such as NoScript.

A preference status can be one of the following:

  • default
  • modified — if changed from their default value, the entire line is shown in boldface
  • locked — shown in italics. This status is rare and is meant to prevent a preference from being trivially changed. A setting is typically locked by a Linux distribution (to prevent telemetry, for example) or by a system administrator (usually in a corporate environment).

A preference type can be one of the following:

  • a boolean — a true/false setting;
  • an integer — full numbers from 0 to something large. The numbered values can and do have different units;
  • a string — This can be any form of text or numbers, though each string of text usually has its own syntax, as required by each preference.

Changes can be made by double-clicking one of the available options, or selecting them and pressing the Return/Enter key.

That way, via double-click or Enter, the booleans are toggled, as they have only a single value of true or false, and are thus the simplest to change. Other preference types are modified, in which case an input box appears for numbers (integers) or text (strings).

Note: In some preference cases, a string type preference can contain or may require a simple integer number instead of text. Therefore, when changing a respective preference's value, pay attention to its type and documentation.

When right-clicking a preference, a context menu appears with the following commands:

  • Modify/Toggle;
  • Copy — copy the preference name and value separated by a semicolon. It is pasted as preference.name;value
  • Copy Name — copies only the preference name for easy pasting and searching
  • Copy Value — copies only the preference value. Very useful, if the value is a long string of text and extends well outside the display area.
  • New > — Create a new preference that is not listed: a string, integer, or a boolean.
  • Reset — resets the preference value to the default pre-set by the browser or an installed extension. This is useful, should anything go wrong.

A more complete list of about:config settings can be found here, with descriptions and which values the preference will take (where applicable).

Example preferences[edit]

  • browser.block.target_new_window — if set to true, links that normally force a new window to open will open in the current window instead.
  • browser.xul.error_pages.enabled — if set to true, Firefox displays an error page similar to IE instead of a message box if loading a page fails.
  • layout.frames.force_resizability — if set to true, allows the user to resize frames on any web site that uses them.

Optimise resource usage[edit]

Setting some of the settings one or another way is either imperative or recommended for memory-limited devices, such as those with 1 GB or less RAM, especially in a liveCD condition, as liveCD environments might not be able to use swap — specifically with computers that have Windows, where a Linux swap partition does not exist.

Computers with 1 GB RAM or less must have that setting on to reduce memory and resource consumption.

Devices with 1.5–2 GB RAM in a liveCD setting are able to handle greater resource requirements, but not by too much. At this point, the value that is imperative for 1 GB RAM, is only recommended for computers and devices with 2 GB RAM memory.

Name Type imperative
at =< 1GB RAM
ok at 2GB RAM Notes
app.update.auto boolean false true or false If set to false, Firefox will not auto-update itself.[1] This preference does not affect extension and search updates.
app.update.enabled boolean false true or false If set to false, the browser's self-update function is off.[2] Usually set to true on Windows to keep Firefox up-to-date and secure. In some Linux distributions, the preference is set to false and locked, as the browser is updated through the distribution's package manager. This preference does not affect extension and search updates.
app.update.interval integer 604800 Sets the interval in seconds for the browser update check. The default is 86400 seconds (one day);[3] 604800 seconds is one week.
browser.tabs.remote.autostart boolean false false Switch off Electrolysis (abbreviated as e10s), which puts each tab in its own process.
dom.ipc.processCount integer 1 this seems to count, too.
browser.sessionhistory.max_entries integer 25 25 to 50 Go back and forward in window/tab history for up to 25 pages instead of the default 50.
browser.sessionhistory.max_total_viewers integer 0 0 to 4 Quick back-and-forward browsing based on the number of pages stored for quick access. The default is -1 (aka "everything"). When the value is 0, each page is requested again from the server, with increased page load times, but should take less device resources overall.
browser.sessionstore.interval integer 90000 90000 the default is something low, but increase it to 90000 to prevent heavy storage media requests every now and then.
browser.sessionstore.max_tabs_undo integer 3 7 to 10 This can also be set to 0 with very memory-limited devices, but then a user would lose all work, if Firefox crashes or is force-closed. Default is 10, IIRC.
extensions.pocket.enabled boolean false false Disables Pocket for those that do not use it (that's most people)
general.smoothScroll boolean false false or true Disable smooth scrolling. At 2 Gb RAM and greater, set per taste.
browser.search.suggest.enabled boolean false false/true Disable instant search suggestions from the address bar.
browser.search.update.interval integer 90000 90000 Increase the time to check updates to search engines. Default is lower.
extensions.blocklist.interval integer 90000 90000 Increase interval to 90000 from the lower default.
extensions.update.interval integer 90000 90000 Increase interval time to check for extension updates. In about:addons, switch off automatic update checking from the gear icon.
privacy.sanitize.sanitizeOnShutdown booean true true Before setting that to 'true', set only browser cache to be deleted on exit in the browser Preferences user interface. Other items can also be set to be deleted, but in no-swap conditions (a LiveCD), deleting browser cache on exit is important.
privacy.donottrackheader.enabled boolean true true This is an optional privacy setting that adds a "Do Not Track" header to the web request. Most websites do not honor the header, and this preference might be set to be deprecated in the future.
privacy.trackingprotection.enabled boolean true true This sometimes helps, but can break news and like sites that want to show embeds from social networks. This can be disabled per-site from the shield icon to the left of the site URL in the address bar.
browser.startup.homepage string about:blank When about:blank is set as a homepage, then it increases browser startup speeds.
services.sync boolean false true or false Firefox Sync synchronises all browsing data with the cloud for easy access on other devices. false switches Sync off, if a user does not use Sync.

This option must be added separately, and it might not work, as it's not supported by all versions of Firefox. The preference is often seen in Firefox derivatives.

accessibility.typeaheadfind.enablesound boolean false true or false false disables playing a sound when using the keyboard to quickly search for text or links without Ctrl+F.
devtools.screenshot.audio.enabled boolean false true or false false disables playing a sound when making screenshots.
narrate.enabled boolean false default false disables screen narration.
toolkit.cosmeticAnimations.enabled boolean false false disables browser user interface animations.
Name Type imperative
at =< 1GB
ok at 2GB RAM Notes

Disable media[edit]

All media functionality is disabled: this includes playback, media capture (audio and video recording), and screen sharing.

Optional, or not required, if computer RAM memory is 2 Gb or greater.

Name Type imperative
at =< 1GB
Notes
media.autoplay.enabled boolean false Autoplay is disabled with false. Might not automatically play back YouTube videos.
media.autoplay.enabled boolean false Autoplay is disabled with false. Might not automatically play back YouTube videos.
media.encoder.webm.enabled boolean false WebM codec (encoding)
media.ffmpeg.enabled boolean false Access ffmpeg component to play back video
media.ffvpx.enabled boolean false
media.flac.enabled boolean false FLAC codec
media.getusermedia.screensharing.enabled boolean false Screen-sharing
media.gmp-provider.enabled boolean false
media.gmp-widevinecdm.enabled boolean false
media.gmp-widevinecdm.visible boolean false
media.mediasource.enabled boolean false
media.mediasource.mp4.enabled boolean false
media.mediasource.webm.audio.enabled boolean false
media.mediasource.webm.enabled boolean false
media.mp4.enabled boolean false MP4 container (typically for H.264/AV1 video)
media.navigator.enabled boolean false
media.navigator.video.enabled boolean false
media.ogg.enabled boolean false Ogg Vorbis codec
media.ogg.flac.enabled boolean false FLAC codec
media.ondevicechange.enabled boolean false
media.opus.enabled boolean false Opus codec
media.peerconnection.dtmf.enabled boolean false
media.peerconnection.enabled boolean false
media.peerconnection.identity.enabled boolean false
media.peerconnection.rtpsourcesapi.enabled boolean false
media.peerconnection.simulcast boolean false
media.peerconnection.use_document_iceservers boolean false
media.peerconnection.video.enabled boolean false
media.peerconnection.video.vp9_enabled boolean false
media.play-stand-alone boolean false Play stand-alone media file in its own tab.
media.resume-bkgnd-video-on-tabhover boolean false 'Resume background video on tab hover'
media.video_stats.enabled boolean false Video statistics
media.wave.enabled boolean false Wave codec
media.webm.enabled boolean false WebM codec
Name Type imperative
at =< 1GB
Notes

Optional[edit]

Name Type imperative
at =< 1GB
recommended
at 2GB
Notes
browser.tabs.loadInBackground boolean false false Switches to a new tab as and when a link is opened in a new tab. Otherwise, the original tab is displayed, and the newly-opened tab is shown only loading in the background until a user switches to it.

Speed up network access[edit]

The following changes can be made to speed up network access.

Usually, the preferences related to network speeds do not need to be changed, unless you know exactly what you want to do with these settings.

Changing these preferences may speed up browsing, but in most cases, the difference is negligible. Some of these settings have also been deprecated in modern Firefox versions.

General browsing speed can be improved through extensions by using an adblocker (such as Adblock Plus or uBlock Origin) and/or a scriptblocker, such as NoScript. As they variously block content, page rendering speeds improve, and network requests to advertisements and trackers are also reduced.

Pipelining[edit]

Normally, the browser will make one request to a web page at a time. When you enable pipelining, it will make several requests at a time, which usually speeds up page loading. Make these changes to enable pipelining:

Set "network.http.pipelining" to "true"

Set "network.http.proxy.pipelining" to "true"

[Tip: If your browser is set to connect to an optional http proxy, you can leave "network.http.pipelining" as "false", then add the domains of websites that do not work with pipelining (like images.google.com) to the proxy exclude list.]

Set "network.http.pipelining.maxrequests" to 8. — This means, that Firefox will make up to 8 requests at once rather than the default 4. This is only an advantage if you have a fast and reliable internet connection.

Maximum number of connections[edit]

For broadband users:

Set "network.http.max-connections-per-server" to 14. Many guides recommend setting this figure to 100, but this can have undesirable effects upon webservers.

Set "network.http.max-connections" to 48

Rendering[edit]

Right-click anywhere and select New-> Integer. Name it "nglayout.initialpaint.delay" and set its value to "0".

This preference sets the amount of time the browser waits before it acts on information it receives, but it will increase the total time taken to render the page. While this option is more suitable for a faster computer, setting the value to something low, or "0" works better with slow connections.

The default vaue is "250". Try a value of "100", if "0" causes problems.

Editing the userChrome.css File[edit]

userChrome.css is a file that allows you to change the appearance of Firefox with CSS rules. The actual browser window (i.e., not the webpage, but everything else) is called the "chrome". The file userChrome.css overrides default settings to allow for more customization.

userChrome.css is not created by default. It should be created in your profile folder, which can be found in the following places:

Windows:
%appdata%\Roaming\Mozilla\Firefox\Profiles\<Profile name>\
Linux:
~/.Ajay/firefox/<Profile name>/
Mac OS X:
~/Library/Ajay/Firefox/Profiles/<Profile name>/
or
~/Library/Application Support/Firefox/Profiles/<Profile name>/

In all cases, the profile is randomly named, with 8 characters followed by .default. Inside that folder is another named "chrome". Inside the chrome folder is where userChrome.css needs to be created.

Editing the userContent.css File[edit]

The UserContent.css file allows a user to change the general appearance of web pages. This requires knowledge of Cascading Style Sheets (CSS).

Changing the web pages' appearance through this file can be relatively cumbersome, and is limited to CSS only. Using the GreaseMonkey or Stylish extensions is recommended, as each provides a user interface to doing the same things, and are therefore easier to use.

The GreaseMonkey extension is more advanced, as it allows adding JavaScript to downloaded web pages to make a webpage or site function better. With some extra effort, this also includes adorning pages with CSS.

Comparatively, Stylish only allows modifying the downloaded pages' CSS, and unlike GreaseMonkey, Stylish also runs on all versions of Firefox for Android.

Note, that while these extensions only change the appearance of web pages downloaded into the browser; the extensions do not change the pages' and sites' appearance on the web server.

Tips[edit]

  • Allowing extension downloads from mozilla.org instead of www.mozilla.org will match all subdomains of mozilla.org, just as blocking cookies from doubleclick.net instead of www.doubleclick.net will allow blocking of all doubleclick.net subdomains. Allowing "www.mozilla.org" would not allow "addons.mozilla.org". However, as a security measure, when whitelisting sites for extensions, the most specific domain available should be used (i.e., addons.mozilla.org instead of mozilla.org) to prevent potentially malicious installs from other subdomains on a site.
  • To get Firefox on a computer without an internet connection, or where internet downloads are blocked, one can download the installer as normal from another computer (usually you can do this at a public library), and then put the *.exe file on some removable media and transfer it to the first computer. Another option is to download Firefox portable on a USB stick or memory card, and run the portable Firefox off external storage.
Chapters: 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14

References[edit]

  1. "app.update.auto". MozillaZine Knowledge Base. MozillaZine. 2010-12-10. http://kb.mozillazine.org/App.update.auto. Retrieved 2019-08-23. 
  2. "app.update.enabled". MozillaZine Knowledge Base. MozillaZine. 2011-07-08. http://kb.mozillazine.org/App.update.enabled. Retrieved 2019-08-23. 
  3. "app.update.interval". MozillaZine Knowledge Base. MozillaZine. 2010-11-22. http://kb.mozillazine.org/App.update.interval. Retrieved 2019-08-23.