Mozilla’s multi-process architecture project cleared for takeoff

Attention. Project code-name Electrolysis is a go.

Mozilla’s long-running project to bring multi-process architecture to hundreds of millions of Firefox users has finally met release criteria for a full-scale rollout.

Nearly every other browser on the market has adopted multi-process architecture, splitting tabs and extensions into separate processes. For the average non-technical Firefox user, the end result will be a snappier browsing experience. The hope is that in the future, the failure of one tab will no longer drag the entire program down.

Firefox 48 beta, which launched earlier this week, includes Electrolysis (E10S). While some beta users have had access to E10S since December 2015, this week’s launch will bring the new features to a larger testing pool.

Google Chrome, for example, divides up processes by tabs and extensions.

Chrome processes (1)

Try not to judge, today is a good day. I’m just barely cracking 75 and already admitted to having tab issues.

In contrast, the old Firefox runs within a single process.

Firefox JPG old processes

With E10S, a separate process is created for web content. However upon initial download of the beta, “Multiprocess Windows” was disabled. According to the Mozilla Wiki, users can enable E10S by going to about:config within Firefox.

Step one is to find browser.tabs.remote.autostart and set it to true. You can check to see if this worked by going to about:support and seeing if multiprocess windows have been enabled. If you are still having trouble getting your browser to run E10S, go back to about:config and right-click to request a new preference. You can add browser.tabs.remote.force-enable as a boolean set to true.

E10S Firefox processes

Once E10S is enabled, you can check activity monitor to view the additional “Web Content” process. For right now, all tabs run aggregated in a shared process, separate from the core Firefox process.

Over the past six years of development, users have expressed anxiety over the potential uptick in memory usage that comes with a multi-process architecture.

“We’re starting from a good place,” said Asa Dotzler, Director of Firefox at Mozilla. “Firefox uses less system resources than the other major browsers so we have some headroom. Our engineering team has been laser focused designing and implementing an architecture that doesn’t cost a lot in terms of memory usage.”

Mozilla has decided to start converting E10S from beta to release on August 2nd with Firefox 48. The update will include E10S for a lucky one percent of users. These users will be isolated and compared to a beta population. This process is estimated to take ten days. Assuming all goes well, all users will be given the new features in a staggered release.

“We have a great beta community and I expect we’ll find any issues before we roll out but it’s possible that our beta population differs in some way from our release population that causes us to miss out on something,” added Dotzler.

Mozilla also plans to add security sandboxing and process isolation for individual tabs and extensions to Firefox. For those less technically inclined, security sandboxing can be thought of like adding gatehouses to an estate. In the past, Firefox operated just like a normal house with doors on the street that could be catastrophically breached at any time. What the E10S team is essentially doing is adding gatehouses to a previously vulnerable home. The gatehouses will have restricted access to independent parts of the estate. This way even if a gatehouse is breached, the entire home is not in jeopardy.

Now that E10S has met all of Mozilla’s release criteria, the Firefox team is all hands on deck keeping an eye out for stability regressions and changes in user engagement.