what I can't understand
is why this wasn't done in every browser, from the start. Maybe it ain't so easy but it seems so obvious.
Mozilla has released a stable build of Firefox 3.6.4, the first incarnation of the open source browser that seeks to minimize crashes by running plug-ins as processes separate from the core browser. The processes-separate release is available for Windows and Linux. In a blog post, lead Firefox developer Mike Beltzner says …
Don't know the details for firefox, but in general it's much easier to call API functions directly from within the same process since they just work like any other function call. The use of a separate process means implementing some form of inter-process communications and proxy functions which serialize requests across processes.
In other words, it's more work to do have multiple processes.
It's also about memory. Each separate process has significant overheads which eat up RAM. For example, Chrome is correctly seen as a very fast browser - but only if you have sufficient RAM. Running each tab and each plugin within its own process eats RAM like it is going out of fashion. Try running Chrome on a PC with 1GB of RAM and it won't seem so quick. That isn't too much of a problem today when even a budget PC ships with 3GB of RAM. 6-10 years ago, when most of today's browsers were in their infancy, that sort of memory would have cost thousands.
That is always one of the advantages of being a start-up. You don't have the legacy design problems so can do things right using the resources available today. You see this with Chrome and the iPhone. Of course, it also helps if you are a multi-billion dollar mega-corp.!
Thanks for your replies, I should have been more clear. I'd have expected the design to be a spawning of a new process containing a stub Firefox proxy which did little more than provide the necessary api for the plug-ins, and marshall calls back out of the process to the real FF.
A stubbed FF should be boring but easy, marshalling code is boring but straightforward, spawning that is trivial. This appears just a SMOP.
The plug-in itself would need to be provided with a rendering area, something I know nothing about but is probably straightforward.
Memory should not be big issue AFAICS; on Windows (have zero knowledge of Linux programming) the default memory space is half a meg, which is not a big overhead.
I suspect there's something more subtle. I guess it's easier to criticise than to do, though.
for partially giving us something Chrome has given us for two years. I use to be a big firefox fan (god anything but IE when forced to use winblows) but chrome pretty much owns firefox for my needs (much faster, more secure (whitelisting noscript sites gets old quick), and much less cpu and memory intensive). Chrome + privoxy = nirvana.
I have noticed that Chatroulette and similar two way webcam apps that use Flash (at least Skype doesn't crash doing the same video chat), kills browsers very frequently (upto a few times per our on some machines I had tried).
On Chrome, the browser stays running; you can refresh the screen and Flash reloads, but until now Firefox used to require a restart.
I suspect Firefox and others must have been getting lots of crash reports, so hopefully Flash improves as well.
This is exactly why I got in the habit of using Chrome - if one app crashed in a tab, I didn't loose my whole session and everything else I was looking at (not to mention one duff tab didn't hang the entire browser).
I *might* start using Firefox regularly again now they've implemented this, and not just for when I need Firebug.
Mine's the one with 1 crashed tab and 9 still running in.
Upgraded to 3.6.4 earlier this evening... now firefox keeps hanging for extended periods (even without any plugins running).
Now I'm going to have to uninstall firefox and get a hold of the previous build to install (Chrome, Opera and whatever the Apple browser is called suck a*se).
So Firefox told me to update flash. I duly followed the link.
What a disaster. Adobe are the new RealNetworks when it comes to awful product update mechanisms.
First strike against Adobe: not using the native plugin update mechanism.
Second strike against Adobe: trying to include some other obnoxious download that I don't have already, don't want, and had to untick.
Third strike against Adobe: sending not the update, but some Download Manager. Yeah, like I need another product-specific Download Manager. F*** off.
Fourth strike against Adobe: the download manager failed to pick up our corporate proxy settings correctly and the download failed citing a integrity check failure.
Fifth strike against Adobe: their lousy download manager then hung and I had to bring up Task Manager to kill it.
Stupid chumps. Bad product design. Bad engineering. And they wonder why product elegance snobs like Steve Jobs have the knives out for Flash?
So I got my firefox 3.4.6 stable finally...
Then flash crashed in one of my windows.... I didn't get a crash UI it just switched the object on the page to a patterned background with a message asking if I want to send a crash report... no option to restart the plugin.
Lies and Damned Lies!!
.deb
packages