Mozilla may bring the multi-process architecture Electrolysis (e10s) back from the dead
Why is there no sandboxing in the Firefox browser, and why are not individual websites running in their own process instead of one process for all the websites Firefox users have currently open in the browser? That's a good question and if you have been around for a while you may remember that Mozilla planned to start working on the implementation of a multi-process architecture in Firefox that it called Electrolysis or short e10s.
It quickly turned out in 2011 that Electrolysis was not something that could be done quickly, that it required many resources and that other improvements to Firefox would make more sense at that point in time. And Mozilla started to work on the browser's responsiveness instead and optimized it in many other ways first, optimizations that yielded a result in shorter time.
Today, Firefox is faster, leaner and slimmer than ever before and while the optimizations will continue, it appears as if Mozilla has started to bring back the e10s project from hibernation. In a recent IAMA (I'm ... ask me anything) session on Reddit, Mozilla employees confirmed that E10s is evaluated again by the team.
There is a new effort underway to evaluate e10s, again. The biggest issue was that addons, which make Firefox so useful and extensible, at the same time were mostly incompatible with process separation. One way to solve that is to have "Proxies" and "Wrappers" that pass different operations between the processes. This is however not a very clean solution, so the new Addon SDK ("Jetpack") was built with sandboxing in mind.
Electrolysis has also been discussed in recent team meetings as indicated here for instance, and while that does not mean that it will be finally implemented in the browser, it certainly looks as if this could really happen in the near future. Some bugs on Mozilla indicate that the team is already working on e10s.
So what are the goals of the e10s project? To increase the browser's responsiveness and stability, and also increase its performance especially on multi-core computer systems. Sandboxing does not seem to be high up the list, but it is listed as a future goal on the Electrolysis page on the wiki.
Adding the architecture to Firefox will certainly be a step in the right direction for Mozilla and the browser as a whole. It will also bring it closer to Chrome (and Opera in the near future) in this regard, which is supporting both multi-process contents and sandboxing. (via)
Advertisement
I’ve been trying everything and unfortunately they won’t work. I tried posting a playlist in my wordpress in the ‘Pages’ section but the playlist won’t show. Can someone please help with this?.
Wow.. Now are even addons in the question…
We reach exactly the point now where the Firefox Devs are getting “enlightened” and do whatever it has to be done to clean up the mess Firefox is right now.
Browser Main Theme is overloaded with features.. Let’s make it simpler. Having all tabs running in one Process is dangerous… But it does not work that well with much addons.. Hell, Let us favour Stability and instead drop support for many addons or at least the possibilities which can be done with Addons… Third Party full themes are also make problems, lets talk about only allowing Personas…
Do not get me wrong, Stability is GOOD! But if Mozilla would not have put from the beginning the Browser so full of customize Options, we would not miss to see all the stuff go one after one!
And now turning the whole concept of Firefox as a Browser around at 180° – That is a messy thing too. Guess the Guys at Mozilla have already decided the way to go. Stability needs Simplicity, because overcomplexity only enlarges the possible amount of errors.
Seeing the developement process as a whole.. Mozilla has made mistake after mistake. And now with their plan to make Firefox more Stable, more easier to use – that leads to piss of a lot of Users who decided to use Firefox BECAUSE of the amount of functions.
But sad fact is if Mozilla wants to get to that goal… The only way is to clean up the Browser like that, to add features which leads to the loss of features which are already inside (ability to customize).
With a better concept right from the start Mozilla would not always fall into many traps as they have fallen again and again in the past…
Disappointing only!
I’ve been following Mozilla’s development pretty closely for a while now and have to agree with their decisions related to e10s.
Given the roadblocks it made sense to focus on the lower hanging fruit. But the issues of memory and responsiveness which they’ve fixed (and continue to do so) *really* needed fixing. Firefox currently beats all the other browsers in memory usage. If they had gone with e10s without fixing those issues Firefox would have been a massive mammoth consuming all your system’s resources (multiprocess is the main reason for Chrome’s big memory usage). They have been able to make it much more responsive (and there are still more issues being pursued), but e10s may have helped to cover these issues up.
The past year & a half’s crusade on memory and responsiveness has led them to try to measure almost everything – for memory usage & responsiveness.
The biggest hurdle will be dealing with Addons. They cannot simply drop non-Jetpack addons and tell developers to stop whining. Firefox cannot afford to alienate that many developers and users.
Developers have some ideas and are exploring different ways to mitigate the issues. (Attempting to allow synchronous addons to operate in an asynchronous, multiprocess environment is no small task.)
Thanks for the insight. While I did not pay that much attention to it, I agree that add-ons are one of the main issues here.
This article is wrong. Firefox does have sandboxing. Its just not multi-process.
No, it doesn’t in any shape or form have sandboxing support. On any OS. The closest it has is AppArmor support in Linux.
Sandboxing need not be OS level. Firefox has tab-level memory sandboxing (a separate memory pool for each tab, and anything trying to talk to another pool goes through a wrapper). This means that overflow style attacks would leave them in a pool of the data they already had access to, with hopefully no way out.
It isn’t as encompassing/safe as an OS level sandbox could be, but to say Firefox has none is simply wrong.
So what does this mean for OMTC? OMTC seemed like a compromise to increase responsiveness of Firefox without going the full multi-process route of Electrolysis, but instead going the multi-threaded route.
I wonder if the goals of the two projects are being merged in some way.
OMTC and e10s are separate. There is nothing to merge.
Firefox is already multithreaded; OMTC just moves compositing off the main thread. (One of the big thrusts has been removing anything that can block the main thread.)
Should they move forward with electrolysis, then it will just be a win win.
One thought floating in my brain is that because of the time Mozilla has spent optimizing Firefox in its single-process form, would it then be a notable advantage in multiprocess form, as compared to Chrome? (Chrome has probably never had to deal with perceived issues due to poor use of threading in Webkit.) However, perhaps Webkit was already slim and well tuned such that it will matter not in comparison. Just thinking outloud.
Mozilla is late to this party. Many disses Microsoft for its IE browser, but IE8 was the first browser to have process-per-tab and adopted by Chrome when it was first released.
I’m glad they are finally picking it up again. It’s going to break addons, but it has to happen if Firefox want to be as responsive and quick to launch as Chrome and IE10. I wish it could have been sooner.