Browser vendors are always trying to improve the stability of their platforms. One key approach being adopted by multiple browser vendors is to take plugins out of the regular browser process and isolate them. The benefit of out-of-process plugins is that if a plugin, say Adobe’s Flash for example, crashes, the entire browser won’t crash.
Backers of the open source WebKit rendering engine, which is used by Google’s Chrome, Apple’s Safari and RIM’s upcoming new browser for Blackberry, are now testing out new out-of-process capabilities in WebKit2. Mozilla is out this week with Firefox Lorentz Beta which includes out-of-process plug-ins as well.
Google Chrome has had its own flavor of out-of-process plugins since its first release. According to WebKit developers the Chrome approach was not easily duplicated in the mainline of the open source WebKit project.
“Chromium WebKit does not directly provide a multiprocess framework, rather, it is optimized for use as a component of a multiprocess application, which does all the proxying and process management itself,” the WebKit2 wiki page states. “The Chrome team at Google did a great job at trailblazing multiprocess browsing with Chrome. But it’s difficult to reuse their work, because the critical logic for process management, proxying between processes and sandboxing is all part of the Chrome application, rather than part of the API layer.”
Rival browser vendor Mozilla is now also tackling out-of-process plugins as part of its Lorentz branch of development. The Lorentz branch is an effort to put new browser features into the current Firefox 3.6 release without breaking backwards compatibility for existing plugins and addons.
The first Firefox Lorentz beta is now out and works on top of the current Firefox 3.6.3 release. Mozilla developers have been working on out-of-process plugins as part of the Firefox 3.7 Mozilla Developer preview as well.
“This beta offers uninterrupted browsing for Windows and Linux users when a problem causes a crash in any Adobe Flash, Apple Quicktime or Microsoft Silverlight plugin instance,” Mike Beltzner, Director of Firefox at Mozilla, wrote in his beta release announcement. “If a plugin crashes or freezes when using Firefox “Lorentz”, it will not affect the rest of Firefox. Users can submit a plugin crash report, and then reload the page to restart the plugin and try again.”
Firefox touts fewer crashes
While the purpose of having out-of-process plugins in Firefox is about improving platform stability, the current Firefox 3.6 release isn’t doing too badly in that area already.
Mozilla developer Ken Kovash reported this week that Firefox has seen a 40 percent improvement in stability over the last five months. Kovash made that determination after looking at the crash reports submitted by Mozilla browsers.
“Improving Firefox stability was a top level objective of the Mozilla community during the last few months of 2009,” Kovash wrote. “That effort was led by a variety of folks across a wide breath of the community, people who saw the many complaints about crashes, collected the data, figured out what was causing the most pain, addressed those issues (sometimes in code, sometimes by working with partners) and saw product improvements.”