Multiprocess Firefox is an architecture that splits the Firefox browser into two pieces - a single parent process that displays the browser UI, and child processes that display the actual web content. These are the processes you see in the
As documented under performance settings, you can control the number of child processes.
Content process limit: With Multiprocess Firefox, also called
electrolysis or e10s , Firefox runs web content for all tabs
separately from the main Firefox process for increased security and
performance. Using multiple content processes can further increase
performance and minimize the impact of content process crashes. You
can modify this setting if multiprocess is enabled; however, having
too many content processes can slow down your computer, and
consequently, Firefox. The recommended maximum is four, but you can
set up to seven.
Therefore, the total number of processes are controlled by the configuration, and is not directly related to the number of tabs in use. You can check the configuration for your system under Options > General > Performance.
As listed under the Process model for Firefox, Multiprocess Firefox also uses child processes to sandbox untrusted content. In addition to web content child process, Firefox also uses sandboxed child processes for the following on Linux:
- Gecko Media Plugins (GMPs), used for media playback
- File content process, used to load 'file://' URLs
- WebExtension Process, used to load extensions built using the
On Firefox 63.0.3, the WebExtensions process is also loaded at startup, which is the extra process seen in the
htop output. You can verify this by accessing the
about:memory URL from Firefox, and the selecting 'Show Memory Reports' > 'Measure'. The main process and the child processes (including the WebExtensions child process) will be listed here, along with their respective PIDs.