Mozilla outlines goals for multiprocess browsing implementation

Two years after Mozilla unveiled its plan to implement multiprocess …

Mozilla's Chris Blizzard has published a blog entry that outlines the goals of Mozilla's renewed effort to bring multiprocess browsing to the Firefox Web browser. The post highlights the key advantages that deeper process isolation will bring to Firefox and addresses some of the underlying requirements for Mozilla's implementation.

The shift towards multiprocess architecture is a major trend in Web browser design. Most of the mainstream Web browsers already isolate plugins like Flash in separate processes in order to mitigate the notorious security and stability problems that come from running third-party code in a browser. Chrome and Internet Explorer go a step further and support process isolation for tabs.

Mozilla first started to explore multiprocess browsing in 2009 when it launched the Electrolysis project. The breadth and complexity of the existing Firefox code has posed some challenges for the effort. The long-term goal of Electrolysis was to eventually deliver process isolation for tabs on the desktop, but it's still not there yet. So far, the project has enabled plug-in isolation on the desktop and tab isolation for the mobile version of Firefox.

The multiprocess browsing project became a higher priority after the release of Firefox 4. Due to the transition to shorter development cycles, however, Firefox 5 (which has already been released) and versions 6 and 7 (which are coming soon) don't have the feature. It's not clear yet when multiprocess browsing will actually land.

Blizzard's post about the design goals offers some insight into how Mozilla is approaching the problem. He says that moving tabs into separate processes can improve the responsiveness of the browser's user interface, enable better hardware utilization on computers with multicore processors, prevent certain kinds of crashes from taking down the entire browser, and enable more fine-grained security sandboxing.

These are all obvious advantages of well-implemented multiprocess architecture. The manner in which the architectural change will impact the Firefox memory footprint is a bit less clear. Adding processes for tabs will add to the memory overhead, but it also offers some advantages. Blizzard says that using separate processes will reduce memory fragmentation problems and allow the browser to more predictably release memory when tabs are closed.

Mozilla's MemShrink team has been working on some major optimizations that will significantly shrink the browser's memory footprint in version 7. Their current and ongoing work will obviously help offset the increase introduced by multiprocess architecture.

Between Electrolysis, MemShrink, and the new iterative release strategy, Mozilla is taking some very impressive measures to modernize its Web browser and the way that it is developed. At this time when the browser market is becoming significantly more competitive, these improvements are going to help keep Firefox in a strong position.