Mozilla is adding a new feature to Firefox 3.6 that prevents developers from sneaking add-ons into the program.
The new feature, which Mozilla dubbed 'component directory lockdown', will bar access to Firefox's 'components' directory, where most of the browser's own code is stored. The company has billed the move as a way to boost the stability of its browser.
"We're doing this for stability and user control [reasons]," said Johnathan Nightingale, manager of the Firefox front-end development team. "Dropping raw components in this way was never an officially supported way of doing things, which means it lacks things like a way to specify compatibility. When a new version of Firefox comes out that these components aren't compatible with, the result can be a real pain for our shared users.
"Now that those components will be packaged like regular add-ons, they will specify the versions they are compatible with, and Firefox can disable any that it knows are likely to cause problems," Nightingale added.
His mention of "regular add-ons" referred to the new policy that will be enforced by Firefox 3.6, a minor upgrade to last summer's 3.5 that is to ship before the end of the year. Because third-party developers will no longer be able to drop their code into the components directory, they must instead recreate their add-ons as XPI-based files, the standard Firefox extension format. Mozilla has posted information on its developer site to aid programmers who need to migrate add-ons to the XPI format.
Most, but not all, Firefox add-ons are available through Mozilla's Add-On site, which boasts that more than 1.6 billion add-ons have been downloaded by users.
Nightingale said that rogue add-ons created performance and stability problems for Firefox users. "[They] can lead to all kinds of unfortunate behavior: lost functionality, performance woes and outright crashing, often immediately on startup," he wrote in a post to the Mozilla developer's blog.
Crashes are caused in large part because of developer lethargy, added Mozilla developer Vladimir Vukicevic, who headed up the work on the new lockdown feature. "Many of these components were written for Firefox 3.0, and have not been updated for Firefox 3.5," Vukicevic said in a blog post of his own. "Because a number of internal interfaces changed between the two versions, this leads to crashes or other problems when these components are used."
Nightingale wouldn't link Firefox's new feature to any one unauthorised add-on, but the lockdown follows a security scare last month over an add-on and plug-in that Microsoft sneaked into Firefox earlier this year.
Last February, and again in May, Firefox users complained when they found that Microsoft had pushed the .Net Framework Assistant add-on and the Windows Presentation Foundation (WPF) plug-in to their browsers as part of the .NET Framework 3.5 Service Pack 1 (SP1) update, which was delivered via Windows Update. Users were furious that the software was installed without their approval, and even angrier that the components were impossible to uninstall without editing the Windows registry.
In actuality, Microsoft did not drop its code into Firefox's components directory, Nightingale confirmed. "The .Net Framework and WPF use our existing extension/plug-in mechanisms, that's why we were able to disable them when they were found to be vulnerable," he said in a follow-up e-mail. "They aren't impacted by this change." Other add-ons aren't as lucky. Google's desktop search add-on, for example, must be revamped to work with Firefox 3.6. Nightingale said Mozilla is looking into that potential incompatibility.
"We'll be working with third-party developers over the next while to help them make the transition to a supported extension mechanism," he said. "The main result for users will be less breakage, not more. But one reason we announce this and get it out in betas is to make sure we know what all the major impacts will be before we release it to a couple hundred million users."
Firefox 3.6 Beta 3, slated for release later today, will include the component directory lockdown feature. When it launches, Firefox 3.6 Beta 3 will be available from Mozilla's site. Current beta users will be updated automatically.