
About four months ago, Mozilla began the first tests of a multiprocess architecture. In the version of Firefox 48,
it was turned on by default for a small part of users, and then the test sample was increased by one and a half times. As
reported by Mozilla in the official blog, almost all Firefox users without installed extensions are among the testers.
The results of the experiment were very good. The response time of the browser has decreased by 400%, and improvements in speed when loading pages amounted to 700%.
There is not much time left before the end of testing, when multiprocessing becomes the standard built-in feature of Firefox, so Fire Fox will catch up (or overtake) stability, security and speed of Chrome, Edge, Safari and Internet Explorer, which have long been using multiprocessing architecture.
')
Multiprocessing means that Firefox is able to distribute tasks across multiple processes. In practice, in the browser, this means isolation of the rendering engine from the browser user interface. Thus, the problem with rendering a web page does not cause the entire browser to freeze, which increases overall stability. If a separate isolated rendering process is launched for each tab, the problem with hanging will be limited to just one tab. In addition, the isolation of rendering in a separate sandbox improves work safety: it is more difficult to use exploits for vulnerabilities in the rendering engine.
Chrome and others have been using multiprocessing for many years. In Chrome, it is completely present from the very first version, which was released in 2008. It was in a sense a technological breakthrough. It is interesting to note that to create the very first version of Chrome, Google
invited several Firefox developers to the staff , and they did not let them down.
But at the very Mozilla case a little stalled. The development of a multiprocess architecture, code-named
Electrolysis (e10s), began in 2009, but between 2011 and 2013 it was stopped "due to a change of priorities."
Immediately after the
transition to the new system extensions in 2015, work on a multiprocess architecture was resumed. The new system has been implemented software interfaces WebExtensions, largely compatible with the extensions of Chrome and Opera.
In August 2016, Electrolysis has finally grown to production testing. Then came the version of Firefox 48, where multiprocessing was activated for a limited number of users with browsers without extensions.
To enable multiprocessing, go to
about:config
and set the logical parameter
browser.tabs.remote.autostart
to
true
. If multiprocessing is not enabled, you should create a new logical parameter
browser.tabs.remote.force-enable
and set it to
true
. The result of operations will be shown on the
about:support
tab in the “Multi-process Windows” section.

Further testing
Starting with Firefox 49, multiprocessing began to be tested on browsers with a limited set of proven add-ons. The results were encouraging, so with the release of Firefox 50, the test audience was further expanded by including browsers with a large set of add-ons, for which their authors made a special mark on multiprocessing support. The list of supported extensions is updated on
Are we e10s yet? .
Using the
Add-on Compatibility Reporter add
-on, you can check if your add-ons are compatible with Firefox's multi-process mode.
Now there are a few last steps. It is necessary to ensure the normal operation of the browser in the builds of Firefox with extensions that do not yet support multiprocessing. According to the plan, in the version of Firefox 51 they plan to provide work with extensions that are not explicitly marked as incompatible with multiprocessing.
Further Mozilla will refine the architecture itself. In addition to separating the rendering engine into a separate process, you should implement support for multiple content processes. In this case, the performance gains will be as high as possible, and the risks of browser stability from lagging of individual tabs will be minimized.
First, the second content process was implemented on the Nightly branch. Now the developers are checking on it, how many individual processes Electrolysis can withstand, and catch bugs.
The second big task is to implement a security sandbox with child processes that are limited in rights. In the version of Firefox 50, the sandbox was first implemented in a release for Windows. This is still the first experimental version, which is not properly protected, the developers warn. In future versions of Firefox, the sandbox will be added to Mac and Linux versions.
Albeit with a delay of several years, but Firefox finally introduces multiprocessing. And this great news for all users of this wonderful browser. Better late than never. And it is better to do everything right, but not in a hurry. The first tests showed that Electrolysis provides a noticeable increase in performance, stability and safety.