The Mozilla Foundation, the organization behind the Firefox browser, is working on adding a new feature to its browser that is similar to the Site Isolation feature that Google rolled out to Chrome users this year.
For readers who haven’t been keeping up with the latest Chrome features, Site Isolation works by opening a new browser process for any domain the user loads in a tab.
Chrome does this to isolate code from different sites in different processes, hence, creating a harder-to-penetrate security boundary between websites, and preventing malicious from one site from accessing data from other sites.
Google added Site Isolation in Chrome 63, released in December last year. Back then, it was only available if users changed a Chrome flag and manually enable it in each of their browsers.
Google accelerated its Site Isolation release plans when details about the Meltdown and Spectre vulnerabilities became public. From an experimental project that had been in the works for several months, Site Isolation became Chrome’s primary defense against Meltdown and Spectre attacks and immediately entered an accelerated rollout plan.
This plan finished at the end of May when Google released Chrome 67. According to Google, 99% of the users who update to Chrome 67 will have Site Isolation enabled by default.
Mozilla starts Project Fission
But Chrome won’t be the only browser with Site Isolation. Work on a similar feature also began at Mozilla headquarters back in April, in a plan dubbed Project Fission.
According to Mozilla sources who spoke with Bleeping Computer, this project is still in its early stages. We were told that implementing a per-domain-process architecture is a relatively simple task, especially after Mozilla has already rolled out Electrolysis, a project that split Firefox from a single-process app to a multi-process architecture.
Currently, Firefox works by creating one GUI (graphical user interface) process and multiple page rendering processes. Firefox is still tethered to a maximum number of rendering processes it can create, but that multi-process architecture is already in place.
This limit of maximum rendering process has been established because as Firefox creates more processes, those processes also start to hog a PC’s memory, driving up RAM use.
Switching to a per-domain/site process architecture should be relatively easy, at the technical level, but the main hurdle remains RAM performance.
Work started on improving Firefox’s RAM use
This month, Mozilla engineers have started work on improving this performance. On July 10, Mozilla announced the start of Fission MemShrink, a sub-project of Project Fission, during which Mozilla engineers plan to improve Firefox’s RAM use. We cite from a Mozilla mailing list on the subject:
The Fission MemShrink project is one of the most easily overlooked aspects of Project Fission (also known as Site Isolation), but is absolutely critical to its success. And will require a company- and community-wide effort effort to meet its goals.
The problem is thus: In order for site isolation to work, we need to be able to run *at least* 100 content processes in an average Firefox session. Each of those processes has its own base memory overhead—memory we use just for creating the process, regardless of what’s running in it. In the post-Fission world, that overhead needs to be less than 10MB per process in order to keep the extra overhead from Fission below 1GB. Right now, on our best-cast platform, Windows 10, is somewhere between 17 and 21MB. Linux and OS-X hover between 25 and 35MB. In other words, between 2 and 3.5GB for an ordinary session.
That means that, in the best case, we need to reduce the memory we use in content processes by *at least* 7MB. The problem, of course, is that there are only so many places we can cut memory without losing functionality, and even fewer places where we can make big wins. But, there are lots of places we can make small and medium-sized wins.
Firefox users can track advances on Fission MemShrink on this Bugzilla page.
The advantages of a Fission (Site Isolation) feature are just too good to ignore. There is no deadline or even guarantee that Fission MemShrink will succeed, but we at least know that Mozilla cares enough to at least try.
Firefox has often been labeled a memory hog in the past. Even if Mozilla engineers don’t manage to shave off 7MB of memory use per process to make Fission MemShrink succeed, what they do manage to shave off will most likely be implemented in Firefox as is.
July 28, 2018