Multi-process Firefox project nears completion of first phase

After years of work, Mozilla's browser to finally separate UI from content for performance, stability gains

mozilla firefox primary
Credit: Rob Schultz

Mozilla is nearing a production release of a multi-process Firefox, the "largest change we've ever made to Firefox," a company product manager said this week.

"If all goes well in our beta testing, we're about 6 weeks away from shipping the first phase of e10s to Firefox release users with the launch of Firefox 48 on August 2," wrote Asa Dotzler, the product manager in charge of the Firefox roadmap, in a Monday post to his personal blog.

"This is a huge change for Firefox, the largest we've ever shipped," Dotzler added.

Electrolysis, or "e10s" for short, is Mozilla's long-running project to bring multiple processes to Firefox, a fundamental design change that should boost the browser's performance and make it more stable.

Electrolysis harks back to 2009, when Mozilla first began talking about, and working on, a multi-process Firefox.

On the performance side, multiple processes can take advantage of multi-processor systems. Stability is improved as separating rendering from content prevents the browser from crashing when a website or app falls. And when combined with sandboxing, the design can also serve as an anti-hacker obstacle: If attackers manage to exploit a specific page's content or an app, they should not be able to compromise the browser and gain access to the underlying system and files.

Other browsers, including Apple's Safari and Google's Chrome, have implemented multiple processes, albeit in different ways. Safari, for instance, relies on a single process for the rendering engine, then spawns a new process for each tab's content. On the other hand, Chrome assigns a new rendering process, not just the content, to each new tab. As a general rule, the Chrome method uses more device memory than the Safari model.

For the first phase of e10s, Firefox will use just two processes, one to parse pages, a second for all content. Only at some later point will Mozilla press forward on sandboxing each tab and moving to a Chrome-like process-per-tab design.

Mozilla began working on e10s six years ago, but paused the project until mid-2015. Since then, e10s has moved from the roughest nightly builds to, recently, being offered to half of the pool running the beta. With the beta of Firefox 48 -- which has not yet been released -- Mozilla will enable e10s on all customers' copies.

The next step, as Dotzler spelled out, will be to slowly release the multi-process Firefox to the production track, which is slated to ship version 48 on Aug. 2.

At that point, Mozilla will throttle the release so that only 1% immediately receive the redesigned browser. If all goes well, Mozilla will open the throttle so all receive e10s in the following weeks. Mozilla frequently uses this throttling technique to gauge an upgrade's performance or find out if engineering has missed major bugs; only after it's sure that everything is good does it greenlight the upgrade for all.

Even with Firefox 48, not every user will get e10s: Dotzler said that a big chunk of the user base would not see e10s in August. "The groups that will have to wait a bit for E10S account for about half of our release users and include Windows XP users, users with screen readers, RTL [right-to-left language writing] users [such as Arabic and Hebrew], and the largest group, extension users," Dotzler wrote.

The last group will be impacted by e10s because Firefox's aged add-on model assumed that the browser and content used the same memory space; existing add-ons must be modified. Mozilla has published a list of e10s-compatible add-ons that showed 12 of the top 20 Firefox extensions now work. Notable exceptions included NoScript Security Suite and Ghostery.

Last year, Mozilla announced it would overhaul Firefox's add-on technology to make it compatible with Chrome', so that developers can easily make their extensions Firefox-ready. (Microsoft has taken a similar approach with Edge.) When that happens, the multi-process design will not affect extensions.

At some point, Mozilla intends to isolate add-ons in their own processes.

"E10S is the largest change we've ever made to Firefox and we hope you'll help us get through this with as few surprises as possible," said Dotzler. "To help out, get on Beta and let us know what you find."

When available, the beta of Firefox 48 can be downloaded for Windows, OS X and Linux from Mozilla's website.

It's unclear whether, Dotzler's assertions notwithstanding, e10s and modern process management will rescue Firefox from the significant decline it's suffered in the last several years. According to analytics vendor Net Applications, Firefox's global user share, an estimate of the percentage of all users running Mozilla's browser, fell to 8.9% in May, the lowest level in 11 years.

In the last two years, Firefox's user share has plummeted by 47%, and from its peak in 2010, by 65%. Most of those losses have been assimilated by Chrome, which is now the world's top browser.

This story, "Multi-process Firefox project nears completion of first phase" was originally published by Computerworld.

Shop Tech Products at Amazon