# Firefox
## Setup

* How to make Firefox the default browser

## Shortcuts

* CTRL+W closes a tab
* CTRL+T opens a new tab
* CTRL+SHIFT+T reopens the last closed tab
* CTRL+↹Tabulator; CTRL+Shift+↹Tabulator; CTRL+PgUp/PgDn: switch through tabs.
* CTRL+Shift+PgUp/PgDn: move opened tab left or right respectively.
* F6 or Ctrl+L : Gets you right up into the Address/URL bar.
* F5 : Reload the page.
* CTRL+F5: Clear cache for the current page and reload the page.
* / or Ctrl+F: Search/find text on page
* Ctrl+K : Takes you to the Firefox search box.
* Ctrl+U : View the page’s source code.
* F10 : Access top menu (File, Edit, View, History, …).
* F11 : View the page in full-screen mode.
* F12 : Access developer tools such as page inspector.
* Ctrl+W : Closes the active tab.
* Ctrl+= : Resets font size.
* Ctrl++ : Increases font size.
* Ctrl+- : Decreases font size.
* Ctrl+S : Save page
* Ctrl+Shift+I, F12: Open web development tools.

## Downloading

There are four main ways to download an internet resource:
* Ctrl+S – Download currently viewed page.
In the file saving dialogue, "Web Page, complete" takes the loaded page from memory and stores resources such as multimedia and style sheets and JavaScripts as individual files inside a _files suffix directory. "Web Page, HTML only" saves the verbatim page source code downloaded from the server.
* "Save Link as" from right-click context menu (saves verbatim page source code)
* Dragging the URL or tab into the Download arrow in the tool bar.
* Pasting an URL from the clipboard into the opened download history (in the "Library" window or about:downloads).
Additionally, the page source code can be saved by copying it from the web development tools and pasted into a text editor.

## Profiles

User profiles allow separating configuration, extensions, bookmarks, and history within Firefox. By default, there is one profile. The profile manager allows creating additional profiles. It can be opened by launching the Firefox process through a command line with the -profilemanager parameter, without spaces.
Profile folders are typically located under %AppData%\Mozilla\Firefox\ on Microsoft Windows,~/Library/Application Support/Firefox/ on MacOS, and ~/.mozilla/firefox/ on Linux and BSD. The profile manager allows manually specifying custom profile directories.
Relevant files in the profile folder are places.sqlite for browsing history and download history and bookmarks, cookies.sqlite, prefs.js for user preferences, and containers.json for configuration of multi-account containers. Sessions are stored in sessionstore.jsonlz4 when closing the browser (before Firefox 56 of 2017, it was stored as plain JSON into sessionstore.json), and backed up to sessionstore-backups/recovery.jsonlz4 and sessionstore-backups/recovery.baklz4 while browsing for recovery in case of an unexpected process termination. The previous session is backed up to sessionstore-backups/previous.jsonlz4.

## Advanced configuration

On the desktop edition (and earlier mobile versions), the about:config page allows fine-tuning the browser. The search bar at the top facilitates finding properties.
Notable properties are:
* browser.urlbar.trimURLs – may hide the protocol from the URL bar. Deactivate to always show the full URL including the protocol. Activated by default.
* browser.tabs.insertAfterCurrent – open new tabs next to the currently active tab instead of at the end of the tab list.
* javascript.enabled – deactivating usually increases speed and decreases CPU usage of progressively enhancing sites, but features implemented using JavaScript such as the toolbar of the wikitext form and JavaScript-based sites such as Twitter web app will not work. Activated by default.
* browser.backspace_action – this parameter adjusts the function of the backspace key if no text input field is active. 0: navigate to last page, 1: scroll up, if Shift key is held then scroll down. 2: deactivate.
* dom.event.contextmenu.enabled – allows JavaScript to interfere with right-click context menu. Deactivating might interfere with some sites' functionality. Activated by default.
* dom.event.clipboardevents.enabled – allows JavaScript to evaluate on-page text selection. Deactivating might interfere with some sites' functionality. Activated by default.
* browser.download.autohideButton – hide download button if no downloads in current session. Activated by default.
* browser.download.alwaysOpenPanel – Open list of recent downloads after a download finished.
* browser.download.lastDir, browser.open.lastDir – last directory to which a file was downloaded or from which a file was opened through the file picker dialogue.
* browser.startup.homepage – page displayed when starting a new session (if not restoring the previous session), and when pressing the button with the house icon.
* dom.ipc.processCount.web – number of processes across which web content is distributed. Higher count increases performance but consumes more memory, thus recommended for computers with much RAM. Four by default.
* general.autoScroll – enable scrolling using middle mouse button press.
* devtools.chrome.enabled – enable write access to browser console, accessed using Ctrl+Shift+J.
* browser.cache.disk.capacity, browser.cache.offline.capacity disk cache capacity, mainly used for static resources to save bandwidth. Difference between values unclear yet. – Values in Kilobytes.
* places.history.expiration.transient_current_max_pages: number of entries retained in the browsing history database (places.sqlite file). According to a moderator of Mozilla's support forum, the value is read-only by default but can be adjusted through the places.history.expiration.max_pages property, which has to be added manually.
* accessibility.blockautorefresh – blocks "meta refreshes" and "meta redirects", meaning refreshes and redirects using the meta http-equiv tag, as well as redirects instructed by the refresh HTTP header. However, it does not block JavaScript-based redirects and refreshes, i. e. document.location.href.
* security.csp.enable – Claimed by Mozilla to increase security against "cross-site scripting" (XSS) attacks. User reports suggest it interferes with the function of bookmarklets.
* permissions.default.image – 1: Load images as usual (default); 2: Do not load images (usually for testing purposes or to save bandwidth); 3: Only load images from the same domain.
* media.videocontrols.picture-in-picture.video-toggle.enabled (or similar): show the picture-in-picture button in video players.
* security.dialog_enable_delay – delay in milliseconds until the confirmation button in some dialogue boxes like downloading an executable file or installing an extension gets unlocked. Until then, it is "grayed out". Default value: 1000 (1 second).
* browser.cache.disk.enable – enable saving sites' resources locally to speed up loading.
* browser.cache.disk.capacity – disk cache size in kilobytes.
* browser.urlbar.update2.engineAliasRefresh – allow adding custom search engines.
* accessibility.typeaheadfind.matchesCountLimit – Sets the limit for counting text matches when searching text on the current page. A high limit can slow down the browser on long pages. The default is 1000.
* browser.privatebrowsing.forceMediaMemoryCache – While in private browsing, video and audio content is only cached into the computer's RAM, not the data storage. No such option exists for normal browsing as of early 2025.
* browser.menu.showViewImageInfo – Show the "View Image Info" option in the context menu that appears when right-clicking a picture.

## System pages

* about:memory – internal process viewer.
* about:processes – newer internal process manager. Introduced with Firefox 67 in early 2019.
* about:performance – similar to about:processes, but with more beginner-friendly worded user interface, such as "Energy impact" instead of "CPU". Introduced in late 2018.