Firefox has had limited multi-process capabilities since version 48. However, Mozilla has disabled multi-process by default for the majority of its users. Firefox 49 added multi-process support for what the browsers developers call a “select set of well-tested extensions”. Firefox 50 brought multiple processes to “a broader set of extensions, those whose authors have marked them as multi-process compatible”. Now Mozilla is planning to enable multi-process in Firefox 51 to cover all extensions, except those that are explicitly marked as incompatible.
The multi-process design is not a new feature amongst web browsers. Edge, Internet Explorer, Chrome, and Safari all have a multiple process design. The developers achieve multi-process by separating the core browser, each tab, and the content it holds, extensions and things like JavaScript and rendering engines from the browser frame so that each has their own process. They do this for two reasons. To improve the stability of the browser so that if the rendering process crashes, it does not kill the entire browser. Another reason is to improve security by making the rendering process to run in a low-privilege sandbox, so exploitable flaws in the rendering engine are harder to take advantage of.
Asa Dotzler from Mozilla has explained the future multi-process plans as follows:
The first of those longer term multi-process features is to go from one content process to multiple content processes. The goal is to bring out the most from the multi-process architecture, gain performance where it’s possible and minimize the impact of content process crashes. The first step is turning on a second content process in our Nightly channel. That gives us the opportunity to discover and squash bugs as we evaluate the right number of process to ultimately enable. That testing on Nightly is happening now.
The second long term multi-process feature is security sandboxing. Security Sandboxing makes use of child processes as a security boundary. Sandboxing work begins in Firefox 50 with the introduction of our first Windows sandbox. This is an early, laying the groundwork sandbox and is not yet hardened. Over the next few releases, the sandbox will be added to Mac and Linux and will become more restrictive and protective.
Mozilla further claims that even with the limited changes made in Firefox 50, the responsiveness of the browser has improved by 400 percent due to the separation between the renderer and the browser shell. They also hope that with Firefox 51 they can increase responsiveness to 700 percent during page loads. Mozilla will release Firefox 51 on January 24th, 2017.