Addons have always been one of Firefox's strong points and it's no coincidence that it's addons that contributed a lot to the browser's success, especially in the early days. But addons are an inherently weak point of any browser for the simple reason that they're not controlled by the browser maker and the original developers.
Addons can come with security vulnerabilities, can cause memory leaks, can be poorly written, can crash and take down the browser with them, or can slow down the browser to a crawl. There's a lot that can go wrong and many times it does.
This is a problem for all browser developers, but, unlike Opera or Chrome
, not to mention the others, Mozilla is not willing to close down its platform and make it harder for third-party developers to expand Firefox's functionality just to make its life easier.
That said, Mozilla knows it needs to do something to improve the quality of addons. The fact that addon memory leaks were a main cause of slowdowns for Firefox, so much so that a patch to fix those leaks led to a significant improvement in performance to plenty of users, is evidence enough of that need.
Since it won't punish developers, it's trying to better educate them and to make it easier for them to eliminate the common problems with addons before they even occur, through good code and design.
Which is where the new Add-on Guidelines
comes in. It's in draft form at the moment, meaning that it could still see some improvements, additions and changes, but it's a big step towards a more standardized and formalized approach to creating Firefox addons. It should prove a very good resource for anyone building Firefox addons.
"The idea behind this document is to make our guidelines clear to everyone, and to have a distinct guide that applies to all add-ons, even those not hosted on addons.mozilla.org. In addition to guidance for developers, these guidelines establish a formal process for users and community contributors to report violations to Mozilla to help us identify problems sooner," Mozilla explained