Work

Firefox Joining The Multi-Process Movement

Like its brethren browsers Google Chrome and Internet Explorer 8, Firefox is moving toward separating tabs into system processes, increasing browsing stability and taking advantage of increasingly common multi-processor systems.

The wiki outline of the “Content Processes” project states that the browser UI itself, and every page opened in a tab, would be split into a separate running process, which would “provide better application UI responsiveness” and improve stability. In terms of how most Lifehacker-ish types use Firefox—with a good number of useful extensions—this could only be seen as good news, as extension-related slow-downs might be walled off from actual content.

When would this happen? The wiki outline suggests a seriously rough “bootstrap,” with a non-Firefox browser operating the browser “chrome” (interface) and a single tab as separate processes, is scheduled by July 15 of this year. Phase II, “Parallel Improvements,” would see further work on safely connecting the browser chrome to the content, and is roughly estimated for Nov. 1, 2009. Extensions, performance optimisation, and multi-process content aren’t even on a rough roadmap yet, so don’t expect a multi-process Firefox in 2009.

Mozilla Links suggests Firefox could perhaps speed up its multi-process adoption by borrowing frameworks from the open-source well from which Google Chrome draws, Chromium. But what do you think? Is a multi-process, potentially more stable and CPU-adapted (and Chrome-like) browser the next big thing you’ve wanted from Firefox, or are there other areas you’d like to see worked on? Contribute to the open-source discussion in the comments. Content Processes [MozillaWiki via Mozilla Links]

Comments (AU Comments | US Comments)

  • dekay46

    i feel like i've been waiting for this my whole life. i've never really been fond of chrome and i've been using Firefox since it was Firebird. Lifehacker, keep me posted. I want to try this as soon as i can!

  • Leszek

    @duck_: Code is the easy part, coming up with ideas is almost always harder.

    Leszek

  • distortedloop

    I'm more than happy with Safari on OS X, except for this one issue. One bad Web site can slow down or crawl the entire browser. Firefox has always seemed bloated and memory hogging, but when this comes out, I'll give it a try, unless Chrome comes to the Mac first.

    distortedloop

  • ku1185

    The only thing that makes me consider other browsers is that Firefox is often slow, uses too much resources, and can really, REALLY, be a pain in the ass when you have dozens of tabs open and it crashes. Chrome, in my opinion, solves all of these BUT lacks 1) a good bookmarking platform and 2) extensibility (though less important in my eyes).

    I'm ready to switch browsers to whichever can deliver the complete package first. I'm currently using Firefox as my main browser, but the moment Chrome comes out with a better bookmarking system, I'm going to be all over that. Given the development timeline outlined here, I'd say that Chrome is much closer to fulfilling my needs than Firefox is.

    ku1185

  • duck_

    @PreachingLlama: the idea maybe, but not any code

    duck_

  • aaronspuler

    Another thing I'd like to see in Firefox is a 64-bit edition since I have Vista64.

  • Saad Baig

    @gormful: I second that notion, but I don't care. I have 512MB of ram, and Firefox barely uses 1/4 that, even when its left for 4 days untouched. So I dont care. Firefox FTW

  • gormful

    I'm all for speed and stability, but if Firefox keeps hogging system resources, it will be for nothing. I suggest they concentrate on making Firefox resource friendly and speed up the startup time. Also, make sure the extensions meet standards of some sort, one of which would be to not use a lot of RAM.

  • MariePrometheus

    Browsers must adapt onto what Intel has done to use, multicore CPUs, the only way to grow computational power for now.

    MariePrometheus

  • twii

    @Zero9: Ditto

    twii

  • twii

    Awesome, this was the only thing missing in Firefox (that I could think of)

    twii

  • PreachingLlama

    @GHETTO.CHiLD: That can be true, but not all tasks are that parallelisable. In fact, sometimes multithreading something can make it slower.

    PreachingLlama

  • spacecoyote

    Definitely a big step in the right direction. Browsers anymore need to handle some heavy lifting and this would be a good boost. I like the way Chrome operates, but it still ain't Firefox...As for using Chromium code, isn't that what open-source is all about? Why try to re-invent the wheel when you can just expand on it and make it work the way you want. Just my 2 cents.

    spacecoyote

  • Rohit Kapur

    I'd definitely make this a top priority, yeah. Because let's face it, while extensions and plugins and themes and all such things are very handy, nothing is more important than a stable browser.

    Other'n this, I'd love to see that Ubiquity integration in the status bar come to fruition soon. :D

    Rohit Kapur

  • GHETTO.CHiLD

    i am all about multi-core processing. what is the sense of having 4 cores if nothing ever uses them. i have only see a few programs that use mult-core cpu's like pros and the performance is dramatic.

  • Zero9

    I've been waiting for Firefox to start working on separate tab processes ever since Google Chrome first came out. It's great to see it finally under way!

  • PreachingLlama

    @Sergio Tapia Gutierrez: Not that it's particularly relevant, but I believe IE8's beta put it on the table first.

    PreachingLlama

  • mcnuggetofdeath

    That'd be awesome. Speed isnt an issue for me as i've been using the 3.2 ( now 3.6 ) alpha for months now but to know that firefox is that much more secure would be a huge reason for me to stick with firefox. I'd been waiting for extensions to come to chrome, but if this gets implemented i may very well stay with firefox.

  • Limvot

    Perfect! I just said that I wished this would happen yesterday! But it does sound like it would take a while. As for borrowing from chromium, I'm not agenst it, but I would like to see more than just copy/paste. Make the code your own! Add more innovations on top of it and make it better!

    In other news, I would like Firefox to be both less memory hogging and boot up faster. I understand that it is a big program and that I have a lot of extensions installed, but even a clean install takes like 20 seconds on my (old) computer. Chromium is like 3.

    Limvot

  • Sergio Tapia Gutierrez

    It's great that the devs want to implement what Chrome has put on the table and hopefully it will result in Firefox using less resources than it is now.

    You just gotta love inovation don't you?

    I wonder what other nifty things they have planned.

    Sergio Tapia Gutierrez

  • DarthDie

    @aaronspuler: It doesn't support x64? *is currently on win7 RC x64 using firefox* (albeit beta, which mebbe the non-beta doesn't support x64)

    DarthDie

  • scooper

    It's really not ideal having each application implement multi-processing tabbed interfaces. What we need is for the desktop environment to support intelligent tab management as part of the system-provided window management facilities. I'm actually tired of each program making different look and feel choices for essential functionality.

    In my world Firefox, Chrome, Safari, Office, editors, shell windows, etc. wouldn't implement tabs at all. They would just inherit the capability from the system. Fluxbox does this (sub-optimally) on Linux. If you prefer window tiling on your 48 inch hi res monitor, that should be a system level choice to tile related windows, instead of tabbing them.

    But I guess until Apple, Microsoft and everybody else supports what I want, I guess the browsers need to do it. Sigh.

    scooper

  • AndiC

    @Reil is adding two words every day to his user name, isn't ...:

    Actually it does, because each process has to have its own set of duplicated overheads. I actually heard that mozilla may go for a "in-between" solution and have one process per domain. As for people complaining about window 7 support, hello! windows is in beta and not in main stream usage, dont worry it will work by final release. Also i think people are forgetting that chrome is based on webtoolkit and by the time it supports poorly written add-ons it wont be as fast or stable.

    AndiC

  • dchall8

    I'm surprised so many people care. Are there that many websites that crash browsers?

  • Reimer

    @bann3d:

    Chrome uses tabs?

    Someone should sue

    Reimer

  • Reil is adding two words every d

    @Sergio Tapia Gutierrez: Actually, I'm pretty sure that using multiple processes consumes -more- resources than a single large one, unless the large one is leaking memory and the multiple ones are, for some reason, not.

  • clevin

    @Sergio Tapia Gutierrez: well, no offense, but you really got it backward.

    multi-thread may be able to improve stability, but it sure will increase the system resource usage.

    clevin

  • Sean Masters

    Chrome would appear to use an awful lot of resources, too. I've got 3 Slashdot windows open in Chrome right now (reading Lifehacker via Firefox) and Chrome has instantiated itself 5 times for a grand total of just over 170,000K mem usage. Meanwhile, I've got 5 windows open in FF, one instance of FF in Windows Task Manager, and it's utilizing just north of 220,000K

    Sean Masters

  • JCMasterpiece

    @bann3d: Yet at the same time, how much are IE and Chrome ripping off of Firefox? How much of what we see as a web browser today (as opposed to 8 years ago) is because of Firefox (and Opera)? Both Firefox and Chrome are open source. They are putting their code out there for people to work with, customize, learn from, and "rip off" on purpose.

    That's definitely not an Apple (or Microsoft) way of doing things... which is why it works so well.

  • natenovs

    @bann3d: and chrome ripped of IE8 - welcome to the software world. btw, i dont believe you can patent "splitting your app into multiple processses"

    natenovs

  • natenovs

    @OptionalJoystick: i dont think people care about fact here. the internet has decided that chrome did it first.

    natenovs

  • bann3d

    Sounds like Firefox totally ripped off Google Chrome, they are going to implement the same things Good Chrome was accused of "sucking" for by Mozilla fanboys/girls. I wish Google had a patent for this technology. Can you imagine the lawsuits if Chrome was an Apple product?

    bann3d

  • AlvinEscardon

    It's unlikely that the Chromium code will be directly usable, since the runtime models of the two programs are so different (Gecko vs. webcore, XUL vs. whatever Chrome uses). But there certainly may be some internal snippets that can be adapted... I remember a kerfuffle when Chrome was released about the use of some undocumented APIs in Vista, for example!

    AlvinEscardon

  • jerrymedina

    @aaronspuler: Not yet recommended. Just like the IE8 64bit version, you won't be able to see flash where present. As flash only supports 32bit interfaces at the moment.

  • OptionalJoystick

    @duck_: IE81b1 came out in March, Chrome beta in September.
    [en.wikipedia.org]
    [en.wikipedia.org]

    OptionalJoystick

  • Tempura

    @PreachingLlama:
    @Limvot:
    Nether Chrome nor IE8 Beta was the one who put this on table, but mozilla itself has discussed the topic long before. It's just that chrome has delivered first.

    Tempura

  • TekWarren

    I hope when this happens that the processes are somehow named to correlate with their tabs.

    TekWarren

  • david.j.quigley

    @[www.sixmonthmba.com]) where they listed 999 possible ideas (not all good, but still ideas) for businesses.

    Ideas are cheap, the energy and drive to convert a good idea into a reality successfully is difficult.

    david.j.quigley

  • nbgangsta

    I just want my extensions and my skin to work.
    Btw, "borrowing frameworks"?
    Know what, as long as Firefox is Firefox, I'm ok with it.

    nbgangsta

  • OdetteCestrinus

    worthless - with firefox as stable as it is there is no reason to cordon off the processes. seriously. I can run 100 tabs for days and days in OSX and NEVER have a crash. thats why even though safari is faster, i use firefox

    OdetteCestrinus

  • Eduardo L. Martinez

    This is a welcomed addition to an already amazing browser. I have dabbled with Chrome and it's multi-process protocol and have found it quiet useful when your overloading your browser and one of the tabs crashes for any reason. However, just like bswilson, I'd like to see them put ALOT of attention of Firefox and less on other features like Ubiquity, lets face it, more people will use Firefox than Ubiquity.

    Eduardo L. Martinez

  • SadafMacula

    Something tells me that multiprocess Firefox is NOT going to be lighter, nor is it going to be faster. Cross process communication is a burden.

    SadafMacula

  • bswilson

    I think thia is a welcome change; I just wish Mozilla would focus more on things like this, and less on Ubiquity and Geolocation features that are being shoehorned into the browser. Make them EXTENSIONS, and focus on your core product!

  • NICU

    @gormful: The only reason I use firefox over Chrome is for their extensions - I need LastPass, ReadItLater, FoxMarks, and Ad Block. Firefox should do everything they can to make extension writers happy because once those are available on Chrome I'll be heading that way.

    NICU

  • NICU

    @spacecoyote: Good point, hadn't really looked at code sharing that way. In such a competitive environment I'd like to see some competition and see which side has the better developers. Copying/sharing saves time on smaller details, but on major components I always think its best to roll your own.

    NICU

  • tifutu

    You'd think with the movement to multi-core CPU's in the last couple of years and how quickly that movement has been adopted, that something like this would have been implemented long before Chrome.

    Non-the-less, I think it's great, and sure indication of what some competition can bring to the game.

    Browsers like Firefox have a massive amount of power, and provide a platform for so much more, I think the move to Multi-Process is great and is the key that could unlock the next level in the evolution of the best web browser ever.

    Being able to dedicate so much more power when, where and as it's needed could provide quite a powerful foundation for the integration of addon's such as Ubiquity.

    Let's hope we get to sample it soon, July seems so far away :)

  • NICU

    @Zero9: Same here, glad to see they're reading my mind!

    NICU

  • KylaVibius

    It's a good step but the thing is are multiprocess browsers really less resource hoggers? Chrome is for next-gen hardware and is not really that much better at RAM or CPU. But yeah, I am all for a stabler firefox.. many times have i had to shutdown firefox because of a laggy tab etc. Add-ons have also slowed down my browsing :P

    KylaVibius

  • dotdotdotdotdot

    @Sergio Tapia Gutierrez: Yeah, and hopefully the Chrome Devs will pickup what firefox has put on the table and stop crashing every 5 minutes in Windows 7

    dotdotdotdotdot

  • Chris Irwin

    @PreachingLlama: This can be true, but browsers are prime targets for this. Multiple tabs/windows doing their own thing without any sort of syncronization between them -- I'm talking gecko components being independant. The "chrome" still has some shared data it needs to handle, such as bookmarks and history.

    Furthermore, Firefox is already multithreaded, it's just following chrome and moving things out to separate processes for extra security benefits.

  • SoniChaos

    @dotdotdotdotdot: Eh? I'm posting this from chrome on Windows 7 (RC1) right now.... hasn't crashed on me once yet.
    Have you tried using the latest beta of Chrome?

    SoniChaos

  • einsteinx2

    @Izkata: Well you just answered your own wish there: Flash. Flash on linux has always been and still is buggy and crash prone. Thank Adobe for that, not Mozilla.

    einsteinx2

  • Harrison: Why don't Facebookers

    Yeah, I'll be sticking with the last version to use a single process.

    I'm not interested in multiple processes taking up a shitload more memory than one single process would.

  • orlo

    @bann3d: Yeah, it would be great if there were more patents and a couple of large corporations controlled everything and every product sucked.

    orlo

  • radiantchains

    @DarthDie: Firefox doesn't have a native 64-bit version. You're probably using 32-bit Firefox. There are a couple sites that host third-party 64-bit builds of Firefox, but you're only able to use 64-bit plugins with 64-bit builds of Firefox. Adobe Flash isn't yet available in a 64-bit version.

    radiantchains

  • arekkusu82

    So is this gonna be a child born from Chrome and Firefox. I hope this won't end up with a really ugly kid. At least, it's gonna have a Multi-process brain.

    But, yeah, this is something required in current age browsers. I hate when a flash movie in one single tab crashes the whole browser. or when Firefox becomes so slow, because you have too many websites open with flash content running.

    arekkusu82

  • hover-it

    I've switched most of my browser application use to Iron (privatized Chrome derivative @ [www.srware.net]).

    The reason why I switched is FF 2 & especially 3 were getting slower & slower (especially the startup). I welcome process driven browsing because I've had FF or IE open with many tabs running, then the browser froze & I had to stop the entire application's, therefore losing all the open tabs.

    I've had the same thing happen in Chrome/Iron & all I needed to do was kill that tab, therefore leaving all the other tabs open (wow, that is so cool!).

  • CaffeineCarlton

    @JCMasterpiece: much of the open-source development work on the rendering engine used in Safari and Chrome (WebKit) is done by Apple.

  • Ziru Zhu

    most likely, this will significantly delay the next firefox release, which can be really really bad. i often open >30 tabs, and i really really don't like to see >30 firefox processes in my task manager. more importantly, i don't think users will really care too much as long as ff could improve the resource usage and stability.

    btw, if firefox can make a simple change to allow multi-process for different windows, that would be welcome for sure.

    Ziru Zhu

  • alejbascuas

    Long overdue.

  • CaffeineCarlton

    @Limvot: what's the start up time without any extensions installed? and is it the latest stable.. or the the 3.5 beta?

  • Izkata

    I'd prefer them to go over the code differences between Firefox 2 and Firefox 3, and find out what makes Firefox 3 crash so much. Especially if tabs were saved and a page with flash was open, on linux...

  • TheMightyBuzzard

    @PreachingLlama: Fortunately, a multi-tabbed browser is one of them.

    TheMightyBuzzard

  • grawss

    @OdetteCestrinus: Same here on windows. The last time it crashed was on Firefox 2.X running an entirely different operating system on an old computer. Firefox is rock-solid as far as I'm concerned.

    grawss

  • djaymes

    I don't think separate processes would work, I mean, what if it freezes, could you pluck off the right tab with the task manager? o-o

    djaymes

  • Bryan Price

    I remember an argument I was having with a friend - about 10 years ago.

    I was thinking about building a new machine with multiple CPUs. His claim was that current technology (back then) wouldn't be good. My reply was that by running separate programs (let alone subdividing the program I'm trying to run), it would be an improvement.

    Alas, I didn't get to buy such a beast. I managed to get married instead. But now, my latest desktop has a 4 core CPU, and I'm sold (even if most of the time it's just running BOINC).

    Running one processor per tab would rock. :)

  • SamburgerHandwich

    @Leszek: 2 words: flying car.

    SamburgerHandwich

  • subfugitive

    Yes, multiprocess browsing would be a welcome improvement -- as long as it *actually* increases stability and speed.

  • Stebalien

    Separate processes for individual tabs is definitely needed. Hopefully it will prevent flash crashes from crashing the whole browser (a big problem in linux).

  • Penguins-R-Us frequents the site

    Unfortunately, the only time I've ever had Google Chrome crash it was the one that was in charge or something that caused all the chromes to crash.

    Penguins-R-Us frequents the site OMG Ponies! Frequents- I can has preview? I'm a PC and I run Windows

  • ipodtouchlover

    I love Firefox (extensions) too much to switch to chrome, but I think the Mozilla need to focus on giving new users in the (non-IE) browser market no reason to chose any other browser. This is also something I would love to see.

    ipodtouchlover

  • jercb123

    It doesnt matter to me whatever allows me to look up por...err i mean torre... school work!

    jercb123

  • Kyang

    @duck_: Credit where it's due. IE8 had it out before Chrome. :) .

    Kyang

  • Nitrokart

    While that might be nice from a technical standpoint... when using Chrome at least, I can't tell the difference between processes. Isn't it supposed to make it easy to stop non-responding tabs?

  • Aaron McClellan

    This news has me amped up, Firefox is a memory hog, I love god help me I love it, but that has been the only real issue I've ever had with Firefox. Then again it's not a major issue for me, since I have a whopping 8GB of Physical memory and another 6GB of dedicated virtual memory.

    Aaron McClellan

  • Luca G-.C

    Honestly, I run a lot of add-ons (they are awesome! what can I say?) and I do wish Fire Fox ran faster. Is this process means faster performance and less add-on lag, then I cannot wait. Chrome is a great deal faster, but I just don't like the interface and spartan setup as much.

    Luca G-.C

  • monkichi

    Lets hurry with the x64 bit browser too... Be nice to have an x64 browser when Adobe finally release their x64 flash.

  • the-me

    firefox has gotten slow, big and clumsy. I really dig the extensions, but in comparison to opera firefox is a battleship. and startup time ... oh my.

    yes, I think multiple processes are the right way to go - but a few performance improvements couldn't hurt, either. I don't know which one I like more.

    the-me

  • Vages

    Yes, I've been wanting this feature in Firefox for quite some time.

    Vages

  • baskinghobo

    I love Firefox but when Google Chrome supports addons i'm switching!

    baskinghobo

  • Evan Plaice

    @tifutu: Multi-threaded processing is difficult or unnecessary to apply to a lot of applications. Plus, believe it or not, many developers out there don't believe in picking up new concepts beyond their original skill-set.

    Chrome is also different in that it is multi-process not multi-threaded. Sending information across different processes is tricky.

    In multi-threading, the main thread and all the sub threads share the same memory space so they can use the same variables, resources, etc...

    In multi-process, each process has its own memory space separate of every other process. The only way I know how to send data between processes is by using pseudo-networking (ex. Opening a network socket in one application and sending data to the loopback address) or by using a database.

    Cross-context (cross process) calls are tricky because there needs to be an underlying system to stack/queue the data being send and received because processes are handled asynchronously within the operating system. Ie if the process isn't expecting a response at the exact moment it is sent then it has to be added to a stack/queue to wait until the process IS ready.

    Networking and databases are inherently designed to stack/queue requests until they are ready to process. I'd really like to know how Google went about implementing this. They mention a global data pool but in the traditional sense, this isn't possible in Windows because memory can't be statically assigned or accessed directly without changing system wide permissions and, like I said, each process has its own address space.

    Whoever came up with this concept was one smart cookie (not to mention he/she has big cahones to try it). To code this would require intimate knowledge of operating systems and how task switching works.

    If you want to learn more check out this:
    [academicearth.org]

    The only reason I know about all this is because I had to write a complex set of apps that were both multi-process and multi-threaded. Really, not a fun process the first time around.

    Evan Plaice

  • Evan Plaice

    @NICU: Even with the best devs, 99.9% of code created/used comes from pre-written libraries.

    The most creative and most productive developers are the ones who have good library resources so they don't get stuck reinventing the wheel every time they write an app.

    That's why open source software often times evolves much faster than closed source. The devs are more diverse and more inclined to look for resources where others have tried and succeeded/failed at implementing the same or a similar feature.

    Evan Plaice

  • Evan Plaice

    @Kyang: Actually, multi-threading on multi-processor systems has been around since the early 80's.

    Making browser apps multi-threaded is nothing special/innovative except that it is a pain in the a** to implement and it'll probably improve performance on multi-core systems.

    If you want to talk about who successfully implemented it first. Then credit goes to Chrome. Chrome has supported this since it was released.

    Evan Plaice

  • Evan Plaice

    @Evan Plaice: By dual-core I meant multi-core.

    Evan Plaice

  • Evan Plaice

    To clarify.

    Multi-threaded uses more resources (ie. RAM), but it also greatly improves the processing time involved in running the app (on a multi-core computer).

    The reason, the computer doesn't have to go through nearly as many context switches between applications to create the illusion of asynchronous processing.

    What does this mean? Firefox should run faster (but only on dual core systems) and if implemented properly, a thread or browser window can crash without taking down the whole application.

    Of course, re-writing Firefox to be multi-threaded would be a major pain because there are a lot of hard-to-trace issues involved in implementing multi-threaded processing.

    Evan Plaice

  • NicoleStamkos

    Please, do this ASAP. I'm on a Mac and right now have about 150 tabs spread across Firefox, Flock and Opera - all open at the same time. And I've *literallly* trashed Safari - it's crashed too many times on me with many tabs open. One process per tab would be just amazing.

    NicoleStamkos

  • DixonHecate

    Sounds great if it can improve the browsing experience. Personally, I'd like to see some more work with CSS3 and/or SVG. I'd actually prefer XHTML 2.0 work, but that would be pointless because of the fact that the XHTML WG can't seem to figure out what they're doing lately.

    DixonHecate

  • keycool1

    @bswilson:
    I think this is actually pretty "core" innovations that are integral to the future innovation of the project.

    keycool1

  • HelenG

    @bswilson: Excellent point!

  • HelenG

    I would like a potentially more stable and less memory consuming browser from Firefox because bar those two points it is fantastic.

    I also love Chrome and use that too.

    Would I want Firefox to be more like Chrome? No, I want Firefox to be Firefox but with a slightly faster Fx and less memory (although I think the extension developers should also take note as many - not all - are problematic and cause the lagging and crashes) - and Chrome to be just as it is Chrome.

    bswilson has a good point too, make the browser slimmer and if people want the extras they can install them, I've never heard of Ubiquity until today.

Post Your Comments

Got something to say? There are two ways to comment:

1. Guests

Click here to comment instantly.

2. Facebook Users

Click below to comment using your Facebook account.

We're looking for comments that are interesting, substantial or highly amusing. If your comments are excessively self-promotional, obnoxious, or even worse, boring, you will be banned from commenting. All comments are moderated.