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.
About time (Score:1, Insightful)
Nice (Score:3, Insightful)
This is cool. Competition is good.
Re:I love how.. (Score:3, Insightful)
They've effectively been there already. It was when Netscape started talking about the browser being the "new desktop" that Microsoft started to see them as a serious threat. Cue the purchase of Spry Mosaic, its rebranding as Internet Explorer and attempt to extinguish Netscape by bundling it with Windows.
Re:So sad... (Score:3, Insightful)
The 'multithread bandwagen'? Multithreading is not just some temporary hype that will be gone and forgotten next year. It is A Good Thing. If they get it right it'll be a big improvement to the browser.
Having said that, your concerns that it may be a pain to implement in a browser that was not designed to support them are valid. While I expect them to succeed, you can always stick with an older (single-threaded) version for a while while the most problematic bugs get fixed.
Humiliated By Google's Chrome (Score:4, Insightful)
The clowns working on Firefox had years, YEARS, to get their act together and rewrite the STINKING PILE OF SHIT that is the Firefox codebase. But they chose to flame anyone who dared talk about the massive architectural problem in the absurdly outdated Firefox process model.
Memory protection for each tab? Not possible! Stop asking for something that can't be done! They cried!
Threading for Javascript? Not possible! Stop asking for something that can't be done! The Firefox devs cried!
That is why those AC posts from Firefox devs were so vicious and venomous for everyone pointing out the massive memory/resource leaks in Firefox that have only been somewhat lessened in the latest versions. The solution for those problems involves a complete rewrite of the process and memory model for Firefox.
Now Google came out and humiliated the Firefox devs with Chrome and its amazing realworld threaded Javascript and memory and process protection/isolation.
Nothing but pity and absolutely no sympathy for anyone faced with retrofitting Firefox into a semblance of a modern browser architecture.
Now with full extension support in Chrome this is like hearing about Microsoft scrambling to fix their massive security problems in IE long after you dumped it.
Will this benefit the average user? (Score:3, Insightful)
Eventually we'll get to the point where the window comes up and it takes a ludicrous time to fill . . . just like Windows already does now.
Better philosophical architecture is a good thing. Running well in the practical typical system, in front of the average user, is good too. Disruptive change is not always the way to please your users.
The "About Time" Bandwagon (Score:5, Insightful)
I'll bite. It's about time.
Even explorer.exe is able to open directories using different processes, if you want. Frankly, I found it frightfully annoying to have X+ tabs open and have ONE of those tabs cause the entire program to crash, usually due to a plugin issue. Made no sense to me. Multi-process/multi-threaded/multi-whatever programming has been around for quite a while now, and multi-core cpus have been pretty common, too.
It's one of the huge advantages that I saw with Chrome (over Firefox). That and program open/new tab open speed. FF 3.5 seems to have addressed this somewhat, but it's still slower, I think.
Hooray for competition, and hooray for finally taking advantage of the hardware out there. Really, for one of the most used applications someone will use, it seems silly to only allow it to use a single-process model.
Re:Restart Firefox Only Once A Month??? LOL! (Score:4, Insightful)
It's become common place for people to blame Firefox for things like Flash crashing or the gunk that comes from browsing. I've been browsing for some time with noscript and without flash and I rarely end up with this kind of trouble. On top of that I have the cache, cookies and history cleared upon exit. And I'm not having any sort of trouble of the sort you're describing.
I don't mind people criticizing Firefox, but this immature trolling because of your own incompetence is enough to make one slightly annoyed.
Re:Humiliated By Google's Chrome (Score:5, Insightful)
Hey chill, give em a break. There is something to be said for filtering out every little feature request that gets sent your way. Good filters are how great software stays great (like Linux) and makes sure that the project doesn't veer in the wrong direction. I don't know much about the Firefox developers, but I'd say they have good reason to be filters for a lot of things.
As a sysadmin, I deal all the time with users asking for the latest features, but I have to weigh which ones can be done now, which ones have to wait and which ones shouldn't be done because they are stupid. I try to keep an open mind, but sometimes you get stuck in a rut because of old information or "the way things used to work", so you just have to be patient, try to show the new way and hope that it sinks in.
Re:Humiliated By Google's Chrome (Score:5, Insightful)
They're not doing it because Chrome has it, they're doing it because IE8 has it. Microsoft putting this in Internet Explorer before Firefox is basically equivalent to kicking Firefox developers in the nuts.
Re:About time (Score:5, Insightful)
Re:About time (Score:4, Insightful)
Re:About time (Score:3, Insightful)
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.
Actually it was more like 10 years ago :/
And you're right -- Internet Explorer 4 had a multiprocess model (one process per window), but Mozilla insisted on having everything running in the same process, even the frickin mail client.
A lot of people questioned this at the time, but the response was "That's the way Netscape Communicator 4 does it and everyone loves Netscape 4".
Re:Nice (Score:3, Insightful)
Re:About time (Score:5, Insightful)
OK I'm a user, and I want a browser where the UI doesn't lag when pages are loading. I also want a browser that doesn't completely freeze when a Java applet launches or PDF file opens. I would also like a browser where I don't have to restart the whole thing when Flash gets borked and refuses to play youtube videos.
Point being there's a lot of user-visible issues and longstanding complaints which are addressed by this. Furthermore, the incumbent browser (IE) doesn't have any of these issues.
(And "Use Adblock and stop using Java/Flash/PDF" is a workaround, not a real solution.)
Re:Why a process? Surely a thread would scale bett (Score:3, Insightful)
Forking a process on unix-like systems if fairly lightweight but for Windows this will not scale well at all. Why not just have rendering worker threads? Have I missed something?
Er. This is an argument which applies to high-volume servers that handle hundreds/thousands of requests per second. Windows' process model is not so heavy-weight that you notice it opening a new browser tab once every few minutes.
Re:About time (Score:5, Insightful)
> First off, the Mozilla community is not confined to geeks on Slashdot who care passionately about things like process separation. The Firefox developer community most certainly does care about its users, but the users don't necessarily know that they want, much less could benefit from, process separation.
That's the same group of developers who wilfully ignore repeated ordinary user requests to give them an option to accept duplicate certificates, even after some big red security warning. To make things worse, it doesn't even bother to display which certificate and which CA are in violation so the user can delete them. On IE, you can click "Continue anyway" to bypass the self-issued certificate duplication and log on to your router, for example.
Their response: it's the fault of your router company.
This is ridiculous. The Mozilla devs definitely think they know better than the users.
Diamond Joe Quimby: "It Can Be Two Things" (Score:1, Insightful)
First Google's Chrome humiliated the Firefox developers.
Then Microsoft's IE 8 kicked Firefox developers in the nuts.
I'm really surprised that Microsoft hasn't advertised such a major technological advantage over Firefox in any of their advertising media.
Re:About time (Score:3, Insightful)
Re:Diamond Joe Quimby: "It Can Be Two Things" (Score:4, Insightful)
Have they ever advertised against Firefox? I'd be surprised if they did. To compare oneself to a rival is to legitimize that rival.
Re:About time (Score:3, Insightful)
Re:About time (Score:2, Insightful)
Uhm, I've written plenty of single threaded apps that can give the appearance of being multithreaded.
All it has to do is use non-blocking calls and make regular UI updates to make sure the user isn't aware of the single-threaded nature.
It takes effort, but its far from a requirement, and in many cases is far easier than writing proper thread safe multithreaded applications considering in almost every toolkit out there there is only one thread that handles ALL UI in an application.
You know that Google Chrome window you see, with all those tabs in it, and all the processes controlling them. Guess what, the GUI you see runs in a single thread, fed by a bunch of backend processes with some re-parented windows.
It amazes me how people post on slashdot as if they know everything about programming when they really don't have a clue.
Re:About time (Score:4, Insightful)
A lot of people questioned this at the time, but the response was "That's the way Netscape Communicator 4 does it and everyone loves Netscape 4".
I've heard a lot of words used with Netscape 4. I can confidently say "loved" was never one of them.
Re:Humiliated By Google's Chrome (Score:3, Insightful)
Uhm, the firefox javascript engine supports multithreading just fine, and gecko 1.9 supports multithreaded javascript out of the box, the previous branch required some extra effort to do so what it most certainly would allow multiple javascript threads.
Not really sure what the hell you're talking about but I have a couple Firefox extensions that depend on the fact that they can use multiple threads.
This is all documented on mozdev, both the new methods for gecko 1.9 and the workarounds to do it in the 1.8.x branch.
I've been using multiple javascript threads in gecko/xulrunner for at least 2 years.
Re:Humiliated By Google's Chrome (Score:3, Insightful)
BE's opposition was based on solving the problem, if there is one, rather than re-architecting the solution on principal.
His position is against the original bug reporter:
Essentially, his objection was that it wasn't solving the problem. This is a different argument - more like whether Google Chrome has a good idea with their protected processes. That's a problem with stability - If the browser handled ALL exceptions intelligently, and watched for runaway scripts, it wouldn't be needed at all.
IE 7's tabs are isolated, and the dev team said they had to jump through hoops to get it to work correctly - adding more complexity, which means more potential points of failure. From the same bug:
https://bugzilla.mozilla.org/show_bug.cgi?id=40848#c11 [mozilla.org]
I'm all for deciding what the problem is and finding a solution to fix it - not proposing a new design just to see if we can.
Re:About time (Score:3, Insightful)
So yes, flash can lock up a thread, and since a large amount of firefox users intentionally block flash, its not actually that pressing of a need.
This is based on a particular set of assumption - that all Flash is bad, that all Flash is undesired, and that only unwanted Flash is causing problems. And I'm also not sure what percentage of Flashblock FF users have installed, or how it's configured.
In the days of YouTube, Hulu, etc., Flash content is very much desired, and depending on a plugin to fix a fundamental design weakness in the browser is not the best idea I've heard of.
Just because it's not a pressing need for YOU, doesn't mean it's not a pressing need.
I guess at least you can always talk out your ass now that everyone else is doing it and pretend you knew this all along. Obviously it was your idea.
I've actually been talking about this for _years_, here and elsewhere, along with many others, under this undername. If you wish to waste your time, check up on it. But you should do that before you accuse me of jumping on some bandwagon with no proof.
A much bigger advantage ... (Score:2, Insightful)
What amazes me the most is how practically everybody looks at this from the "when it crashes" point of view, when to me personally the biggest advantage to all of this is that one can actually have 40+ tabs open and having the system need Only swap in the Current Tab instead of every single tab all at once after an extended period of browser inactivity (likely causing the system to swap out the currently single browser process).
I know people will say RAM is cheap and all that ... but still why should the system worry about swapping back in all 40+ open tabs when i am really only interested in the currently active one. Let it worry about swapping in another when i want it.
Re:Humiliated By Google's Chrome (Score:2, Insightful)
We'll buy it if matches what we have watched our own system monitors show us about what the browsers are doing with CPU utilization and RAM use over years of using Firefox and Opera.
I might add that, as with any experiment, if the "unknown dude" presents the steps he or she took to do the experiment, and they are reproducible, one can then check to see if the same results are obtained. I'll admit I'm not going to do the experiment, but from a quick skim of the webpage, it looks like enough information is given to copy the experiment. What's your problem? Do you only accept a finding if it's done by a "celebrity", rather than by looking at what was done?