Mozilla has just released the latest update to their Firefox add-on SDK, a toolkit created for a number of reasons, most importantly to make it simpler for Firefox add-ons to maintain compatibility with future Firefox releases, and to make it easier to code Firefox add-ons in general.
Maintaining compatibility has been a huge problem for Firefox since they opted for a quick release cycle. To counter some of the effects of this move Mozilla made a few important changes to how add-ons work:
- They automatically started marking add-ons hosted at Mozilla as compatible with the latest version of Firefox, if they detected that it did not use any features that were marked as changed.
- They created the Firefox add-on SDK which only requires one to update to the latest SDK and repackage the extension in order to make it compatible with the latest version.
Unfortunately, Mozilla learned that a large number of the add-ons people used were not packaged with the add-on SDK -- quite understandable since it was new and add-ons would need to be rewritten to use it. More surprisingly, a majority (75%) of add-ons weren't downloaded from Mozilla's servers! This meant that with each new update many add-ons would stop working, since Mozilla could not automatically update add-ons they don't host, and external hosters of add-ons would have a tough time updating traditional add-ons in time for each Mozilla release.
This brings us to the latest change coming in the next version of Firefox, Firefox 10. Add-ons will now be marked as compatible by default. Currently Firefox assumes that add-ons created for an older version are not compatible with the latest version; even though this assumption is not true in a majority of cases. Now Firefox will assume compatibility by default. Each add-on specifies which versions of Firefox it is compatible with; this will now be taken as a suggestion rather than a hard fact.
Using the large number of users that use Firefox Nightly, Aurora and Beta, Mozilla will get a clear picture of which add-ons work in the next version of Firefox, and which don't. They can then blacklist the add-ons that don't work, so people won't be inconvenienced unless there is no other option.
Other than that, development on the other solution to add-on compatibility woes continues on. The latest update to the Firefox SDK brings a number of changes and new features:
a simple Prefs API that allows add-on authors to create preferences for their add-ons with ease. This uses the new inline options feature added in Firefox 7. Inline options make it simple to configure add-ons by allowing them to show their options embedded in the add-on manager instead of a separate dialog.
Improved performance with a new simplified loader.
- Trusted content such as page-workers, panels, and widgets can bypass content scripts, and use page scripts directly. More info here
- A new HTTPD Module that provides a basic HTTP server to testing
- The layout of XPI files (Firefox add-ons files) generated is simplified