The state of multi-process architecture in Firefox
Mozilla has been working on a multi-process architecture for Firefox for some time now. The feature separates components of the browser from each other to improve stability and also security.
Electrolysis, or e10s, is still in active development and original plans to release it with an earlier version of the browser has to be delayed.
As it stands right now, e10s is enabled on Nightly versions of the web browser by default. Mozilla enabled the architecture on Nightly versions of Firefox back in November 2014 and pushed out updates related to it regularly to the channel.
Development alone has been tricky enough but what made this an undertaking of epic proportions was that many add-ons are affected by the switch.
Mozilla keeps track of add-on compatibility on the are we e10s yet page and if you compare the state of add-ons a couple of months ago to today, you will notice that compatibility has improved.
Not all add-ons are compatible yet though and many have not even been tested for compatibility. Major add-ons, like NoScript, Multi Links, Privacy Badger, Remove it Permanently or ChatZilla are not compatible yet (you find them listed at the end of the page now).
What this means is that the add-ons won't work at all or only partially if you enable multi-process architecture in Firefox.
Mozilla plans to ship the next Developer Edition of Firefox with Electrolysis enabled. The next version, Developer Edition 40, will be released on Tuesday 12 along with updates for all other Firefox channels.
Along with it goes a change in how e10s is highlighted in the browser. All tabs were underlined up until now when the multi-process architecture was enabled in the browser.
This was removed in recent Nightly builds and there is currently no visual indicator anymore that provides you with the information.
The option to launch a new e10s window was removed as well from the browser. There is however still an option to launch a new non-e10s window as it may be useful for testing purposes.
While e10s will likely ship with version 40 of the Developer Edition of Firefox, it won't make its way down to Beta and Stable right then if it does.
The current schedule is to deliver e10s in Firefox Beta 41 and Firefox Stable 42. If all things go well, e10s may land in Firefox 42.
Bugs or issues may delay the deployment of e10s, even the launch in the Developer Edition may be delayed depending on that.
What is clear however is that development is coming to an end and that a release of e10s this year seems feasible (Firefox 43 is the latest release version that ships this year which means that Mozilla has that buffer when it comes to shipping Electrolysis this year). (via Sören Hentzschel)
Now You: Have you tried Electrolysis yet in Firefox?
> The problem is with your scenerio of “use protected login fields” is that the data would have been stored on the RAM as it’s typed, which could be accessed via Flash or JavaScript items that are being displayed as “ads” or if Malware was on the computer. Sandboxing reduces the chance of that (it’s not fool-proof tho)
That’s not true, plugins are already in there own sandbox, nothing can read out the ram without any exploit/bypass even if you use insecure stuff like Flash.
> You obviously haven’t done any sort of tech support. The people who know and use those sort of techniques are the 10%-15% of the internet users. I’m also talking about World Wide, not specifically to any country.
NoScript for Firefox and Notscript for Chrome/Chromium is available world wide which doesn’t need much knowledge to configure except reading (which most people never do).
> fail to see your point here. Currently Firefox has just 1 process for all those millions of tabs. So instead of allowing you to investigate further, you just have 1 process that you could kill and not any others. If you could explain further, that’d be great.
Killing one tab kills everything, but having a million processes is much more complicated since you don’t know which tab maybe use which site if there is no separate indicator. And I bet there is none, like on Chrome too.
In fact it’s a feature, as I said nobody really needs because it’s more theoretically, in fact the sandbox was several bypassed + if the site you visit is already secure and not ask you to install insecure plugins or addons to get working I don’t see any reasons at all.
In fact people constantly recommend addons but that makes it less secure, since the page could detect the mime types or the plugin lags of bugs or is vulnerable (or cause unnecessary traffic), imho all should be designed to be secure from the first start without any (or less) plugins/addons. But today’s people like this -> install xyz addons that claiming to secure xyz instead of just fixing or making a bugreport on the official issue tracker – I never got that.
I fear that Mozilla is trying too hard to make Firefox more Chrome-like. unless I am mistaken, Chrome has support spreading each tab into multiple processes for years now. As a user with an entire arsenal of addons, I fear having many of them break, between 10s and signature requirements.
Heck, one of my addons, Flashblock, is a quick-and-dirty modification of an outdated version of said addon (the old version, without modification, doesn’t work, while the “official” new version breaks Silverlight).
I’m on Nightly with e10s and not seeing positive changes to the RAM imprint or even changes in browser behavior. Well, yes it crashes way more rarer than in early days of multiprocessing feature, but there’s not much to add. This is one of this changes which is important but not visible to the user. I don’t see why we don’t need e10s, but my pet peeve for now is non-working extensions.
i hope performance/responsiveness can be increases with seperated processes. having the UI rendered seperately from the rest sounds like a great start to me.
i’m only using an old core2duo with 4gb of RAM and an HDD, so i’m not expecting miracles here, but as of now i have websites getting unresponsive, just because there are some other tabs loading in the background. loading animations on the tabs displaying with only 1-2fps under slightly heavier load doesn’t look very sexy neither. i hope seperating some of those things can help keeping my current tab and the UI more responsive, while the rest of the tabs can take however long they want to load.
i haven’t properly tried out e10s yet and i might not give it a try until more of my addons are supported, but i think it’s a very promising change and so i’m looking forward to it becoming stable.
of course e10s will take more ressources initially, especially RAM, but even so, i’d rather have a modern, performant and secure browser that uses a couple gigs of RAM, than a browser that stagnates and works only so-so, but uses slightly less memory.
Wonder if Mozilla has forgot about offering 64-bit arch … – multi-threading is OK but don’t know if there will be much difference in performance (guess it will consume more resources only to run, otherwise it may even slow down if resources are not met). As such, until they make some dramatic improvement, I’d remain happy with Cyberfox and Waterfox, as always.
Strange, i downloaded x64 portable version of Nightly from Mozilla’s FTP and it’s autoupdating everyday.
Firefox lags badly for me in Windows 8.1 and Windows 10. The only thing that helps is the Vacuum Places Improved addon. I have to click it in the Tools Menu about every 15 minutes so I can scroll down pages. But it doesn’t help a lot. e10s hasn’t helped it any for speed. Chrome runs like a rabbit with its butt on fire. :)
My computer is ASUS M51AC i7 3.74GHZ 16gb of RAM with 64-bit Windows 8.1. I don’t have the money for more RAM.
If the Vacuum Places addon helps improve things but only temporarily, this makes me think there may be some deeper issues with the places database which a Reset/Refresh could fix.
That or perhaps you have an excessive amount of bookmarks or history?
Maybe there is something wrong in the way you configure/use Firefox… The difference between Chrome and Firefox when it comes to performance should be minimal (at least from my experience with both of them).
Status: incredibly late, botched and overdue.
Nobody really needs e10s, theoretically it’s only a sandbox for each separate tab and that’s it. It doesn’t have anything todo with multi-process, it’s just a sandbox isolation to ensure nothing can read the ram, to steal login fields. Theoretically that sounds good, but since Chrome uses that feature there was a lot of exploits which escapes that sandbox. Instead of adding a sandbox for seach tab it’s just better to use protected login fields itself or use external trusted software like KeeFox which protects the clipboard and the login fields, of course even that could be bypassed but the idea to add an feature that are well known to be bypassed are crazy, well in fact some stuff needs to be enabled for this, JavaScript and such, but as far as I know most of people already know about that and using NoScript or similar tools to hardening such attacks like XSS,..
For power users it’s just pure pain to have 1 million opened tabs which will be shown separately on the task-manager and nobody know without looking in the details/dev tools which tab is for which process, that also can be a security problem if something hangs or force closed by external plugins/extensions.
No, we really, REALLY need firefox multiprocess because of the elephant in the room: javascript. Anybody who has done any non-trivial development on javascript will have triggered some non-terminating loop, performance sponge, CPU spike or other form stupidity. This is going to take down your entire browser, plus all the dev documentation you were looking at that you needed to fix it, plus any debugging tools you were using to diagnose it.
And if it can happen in dev, it can happen in prod. Facebook’s JS has non-trivially crashed a lot of people’s browsers already.
True process isolation gets to limit the damage only to the offending tab.
Regarding power users with 1 million opened tabs – that’s chrome’s fault, not multi-process specifically. The process name should be trivially renamable to firefox – URL or firefox – title.
From: https://wiki.mozilla.org/Electrolysis
“The two major advantages of this model are security and performance. Security improvements are accomplished through sandboxing, performance improvements are born out of the fact that multiple processes better leverage available client computing power. ”
The problem is with your scenerio of “use protected login fields” is that the data would have been stored on the RAM as it’s typed, which could be accessed via Flash or JavaScript items that are being displayed as “ads” or if Malware was on the computer. Sandboxing reduces the chance of that (it’s not fool-proof tho)
“as far as I know most of people already know about that and using NoScript or similar tools to hardening such attacks like XSS,”
You obviously haven’t done any sort of tech support. The people who know and use those sort of techniques are the 10%-15% of the internet users. I’m also talking about World Wide, not specifically to any country.
“For power users it’s just pure pain to have 1 million opened tabs which will be shown separately on the task-manager and nobody know without looking in the details/dev tools which tab is for which process, that also can be a security problem if something hangs or force closed by external plugins/extensions.”
I fail to see your point here. Currently Firefox has just 1 process for all those millions of tabs. So instead of allowing you to investigate further, you just have 1 process that you could kill and not any others. If you could explain further, that’d be great.
So will this mean each tab will have it’s own process like in chrome? Because then FF becomes unusable for me because I would have to get a few GB more RAM. I have two FF instances running with ~2000 tabs – would be impossible with chrome architecture. (No I do not plan to discuss why I use FF like that).
I’m a very heavy tab user as well – with 1600 in one window or thereabouts. Although I just spent a few hours today cutting that down to a manageable 950.
The initial release of multiprocess Firefox will only separate the user interface from the content (tabs). So two primary processes.
In the future they will begin moving tabs into separate processes. However, the reason they are not doing this now is because of memory usage. The engineers believe, through the use of shared resources, that Firefox will be able to be similar in memory use (but slightly more).
I had believed that crazy memory use was simply the nature of the multiprocess animal, but if true, it will reveal that Chrome is simply horribly inefficient at it’s memory management.
“there is currently no visual indicator anymore that provides you with the information.”
Actually there is….now when you hover over the tab and tab description appears, if e10s is enabled at the end it will show e10s like in this screenshot below :-
https://i.imgur.com/oVgmNun.png
I understand why they’re moving towards the multi-process model but, honestly I’ve never had issues with it using Firefox, ever. Just seems to increase the memory usage (not really a big concern either, I have RAM and we all know – or should – that unused RAM literally is wasted and consuming energy providing no benefits at all) so if a browser uses RAM I’m all for it: I’m a big fan of RAMdisks, have been since I used one oh, 30 years ago now on an Amiga 500. I could actually create a RAMdisk on that machine and it could be warm-booted: the Amiga itself could reboot from the RAMdisk.
Think about that: even today’s most powerful most modern most technologically advanced personal computers can’t do that.
The Amiga was built from the ground up with hardware-based multitasking which from a technical standpoint is also something that today’s most advanced personal computers still don’t do – they work on software-based multitasking.
But I digress… ;)
“But I digress…”
yes you do! :)
I stopped using Firefox a couple of months ago. Development seems mired in old problems. I fear Firefox is heading the Thunderbird way. It will keep a small following of dedicated core users but major development will be abandoned and stalled at some point.
i hope it will improve firefox a lot
because, i use firefox for many years nows … and it have always be my favorite browser but now i begin to think he is not so good, and it begin to have nice alternative on the web
I don’t know if Firefox is not so good anymore but obviously Planet Mozilla seems to be migrating out of the solar system. The organization has been adding deep transformations of its browser one after another with an obvious lack of communication with its users. I am seriously wondering of moving back to a Firefox fork, free of its excesses yet compatible with latest updates. Pale Moon is too far behind, now with its add-ons’ fork library (how often to I not read here and there “Please make it compatible with Pale Moon”…). Perhaps Cyberfox, 64-bit while we’re at it. This is becoming day after day a serious option in my case.
Firefox is still pretty good, and so are some of its forks too. My only issue with using a fork instead of Firefox is that after a major code architecture overhaul as e10s it is very hard for developers to maintain a fork that remains in the pre-e10s era. So even the fork(s) developers might consider switching to the new architecture and then the whole purpose of using it disappears.
As for the whole change for the sake of change and without any feedback from the users, I can only agree with you.