Firefox To Get Multi-Process Browsing 383
An anonymous reader writes with news that multi-process browsing will be coming to Firefox. The project is called Electrolysis, and the developers "have already assembled a prototype that renders a page in a separate process from the interface shell in which it is displayed." Mozilla's Benjamin Smedberg says they're currently "[sprinting] as fast as possible to get basic code working, running simple testcase plugins and content tabs in a separate process," after which they'll fix everything that breaks in the process. Further details of their plan are available on the Mozilla wiki, and a summary is up at TechFragments.
So sad... (Score:0, Interesting)
...to see Firefox desperately jumping on the multithread bandwagon. Yes, of course restarting your browser once about every month is a terrible pain in the butt. Takes a long time too! I'm thinking: they didn't design for this from the start, so implementing it now will not be worth the headaches caused by unforseen issues.
Nice (Score:5, Interesting)
Competition from Chrome was a good thing: first the Javascript improvements, now separate processes for the plugins.
Re:Why a process? Surely a thread would scale bett (Score:2, Interesting)
Re:About time (Score:3, Interesting)
Wow. The Firefox developer community really doesn't care much for its users, does it? I've interacted with them in small ways in the past, and this verification of my suspicions only supports the dim view I take of them.
Re:About time (Score:5, Interesting)
They had to chance a code base from around 5+ years only because they didn't things right 5+ years ago. Remember, back then they were doing a complete code rewrite anyway.
And no, the true reason to do this is not multicore. That it also gets faster on multicore is just a nice side effect. The true reason to do it is stability. If one page makes problems, you don't lose all the others. This was indeed even more important back when browser and mail was the same program, because it meant that a page crashing your browser could destroy your almost-completed email, too (yes, this has happened to me, although I'm not sure if it was still old Netscape or already new Mozilla). Of course, today it's quite possible that your browser is your mail client again because you're using webmail.
Note that if it were just a performance thing, they could have gone multithreaded instead. This would probably get even better performance.
Re:I think I prefer a single process (Score:5, Interesting)
Yes, back in the days when a bad web page would crash your browser this was bad, but I have not seen those crashes recently.
Do you run a lot of plug-ins, by any chance? Browser makers don't control plug-in code (other than the code for their own plug-ins, of course), but this code is still capable of taking out a browser process if it goes bad.
If the browser is stable, what benefit do multi-processes have?
The other big benefit is that one process can't hog the CPU: even if one page gets into a ridiculously tight JavaScript loop that bogs that page down, the others should continue to load.
Still, the "if the browser is stable" issue is a very big if, and as I mentioned above, it's not completely under the browser maker's control.
Also, and maybe I should read the details, but if I am authenticated to a website in one tab, does that authentication carry over to other tabs using other processes?
It depends on how the browser is written, but it can be done.
Re:About time (Score:3, Interesting)
This should solve a long-standing bug regarding proxies and DNS.
For whatever reason, if you are using a proxy server (It may only pertain to specific proxy configurations, I'm not sure, I do know that the proxy setup where I work triggers this bug), the whole browser will freeze while a DNS lookup executes. NOT good if you accidentally typo a domain.
Re:About time (Score:5, Interesting)
Note that if it were just a performance thing, they could have gone multithreaded instead. This would probably get even better performance.
Firefox is already multithreaded (if it weren't the UI would freeze during downloading, rendering, etc).
It amazes me how many people here on slashdot don't understand the differences and distinctions of multi-process vs. multi-threaded.
NSPluginViewer? (Score:4, Interesting)
I remember some browser (Konqueror, is it?) uses a separate NSPluginViewer process to run Flash. It's the best approach because it let me renice the Flash.
Do you notice Flash runs at a lower priority in IE? (Try running into a busy Flash page and scroll up and down - you'll see the Flash applet slowing down but the UI scrolling of the browser is still responsive.
Not so in Firefox. Hope they'll finally get it right.
What about cookies/isolation? (Score:3, Interesting)
One problem we have is that we want to open many of the same applications more than once. Imagine wanting to login to slashdot with two different logins.
Right now in IE and Firefox each tab shares the same cookie space. So when you login with one tab you'll notice the cookie in the other tab getting "overwritten".
Now with multiple processes is this the case. When one tab "open another window" resutling in another tab are these two tabs in the same processes sharing cookies and the like?
The browser is general is a horrilbe state machine. It would be nice if Javascript would support some form of lighter weight cookie that could be access between page loads.
Re:Humiliated By Google's Chrome (Score:1, Interesting)
You have confused the call for "every tab a different process" for "every tab a different thread". We're not talking about every tab needing its own thread; we're talking about every tab should have its own complete instance of the rendering stuff and its own javascript environment. Multiple threads per instance is a separate issue. It's useful, but the full goal here is to have one a problem only crash the tab it's in instead of crashing the whole browser.
Example: fire up chrome and open a bunch of tabs, then open task manager and look at the process list, and you'll see multiple chromes.
So too will be the future of firefox; what we see as one program will really be a wrapper for a whole bunch of them, isolated from each other so that they can't crash each other.
Re:About time (Score:3, Interesting)
Let me guess, you are running on ff on ext3? Upgrade to ext4 (or run windows or mac) and the problem is not there.