Mozilla Plans to Add App Multithreading to Firefox (May 10, 2009) —Mozilla announced its plan to add application multithreading to Firefox over the next two years, a feature already partially enabled in its main rivals, IE8 and Google Chrome.

mozilla-firefoxThe company said allowing the software to take advantage of multicore microprocessors to boost responsiveness, the enhancement would also improve browser stability.

This project will happen in several phases, with the phase one ‘bootstrap’ due to complete by the middle of this July. Further phases will add and debug more complex elements of the new browser, with phase two due to complete by November.

The goal is to end up with a browser capable of running each tab as an independent process, which would stop a hang in one from crashing the whole program, as would currently be the case. “Security sandboxing will be covered in a later phase.

Other uncertainties include whether Mozilla will start using the open source networking stack taken from Chromium — also used by Google’s Chrome browser — in place of Mozilla’s own Necko.

“It needs discussion about taking the chromium network stack wholesale (replacing necko, basically). This may or may not be the fastest path to success: it really depends on how hard it is to map the APIs together and how much we’re willing to change callers versus re-implementing the XPCOM API on top of the chromium stack. If we take chromium networking, we should probably do it on Mozilla-central in parallel with phase I, says project developers.

Mozilla’s problem is that its main rivals Internet Explorer 8, and Google’s Chrome, are ahead of it in the multithreading stakes, both of which implemented tab threading. As some developers have pointed out, this architecture can, in certain circumstances, be less efficient when working on less capable processors. Quad core processors, for instance, will be the exception rather than the rule for at least another year.

Leave a Reply

Your email address will not be published. Required fields are marked *