Firefox 12 will be pushed to the beta channel this week, meaning I’m late with my add-on compatibility report :(. Sorry for that, but other things have been taking my time. This won’t delay the Firefox 13 compatibility work, which I’ll begin right away.
Firefox 11 compat (addendum)
- Components.utils.getWeakReference(null) should fail silently. A change to the way that call failed broke NoScript and potentially other add-ons, but it was reverted before release so things should be back to normal.
For more information about Firefox 11 compatibility, please read the full compatibility update.
- Remove the Jetpack service. Very old versions of the Add-ons SDK relied on this service in Firefox. Add-ons using this service must have been broken for a very long time anyway, so we encourage all developers to update the SDK version they’re working on. Visit our Developer Hub for more info.
- The styling of the Customize Toolbar window could be improved. This shouldn’t break any extension, but if you add toolbar buttons or other widgets, it’s worth giving them a test. Themes are probably affected by this change.
Enable inline autocomplete again. Add-ons that tap into the location bar and its autocomplete / suggestions should check if anything breaks.Update: this ended up being shifted to Firefox 13.
- addDownload should be made asynchronous. Quote: “Now users of nsIDownloadHistory cannot rely on the history entry to be present after the addDownload method returns. They should use nsINavHistoryObserver or another technique to wait for the target URI to be visited, if needed. The ‘link-visited’ observer topic cannot be used because it is notified before the history entry is saved.”
- Rip out non-UniversalXPConnect privilege manager functionality. This mostly concerns web developers and intranet developers who request higher privileges for web content. The enablePrivilege function is being phased out and this is one step in that direction.
- ‘chromemargin’ attribute changed behavior. A bug in the way the chromemargin attribute worked allowed some add-on developers to move around the minimize / maximize / close buttons. Recent changes in this code closed that bug and also break these add-ons. It doesn’t look like this change is going to be reverted, but some alternatives have been proposed in the bug.
- Remove XPCOM proxies. Specifically, the nsIProxyObjectManager interface is no more.
Move nsIDocCharset and nsIDocumentCharsetInfo into docshell. Both interfaces are gone, as well as gBrowser.documentCharsetInfo.Update: it was pointed out to me that these interfaces were only moved around, not merged or removed.
- Get rid of _MOZILLA_2_0_BRANCH interfaces. This was just finished with the removal of nsIScreen_MOZILLA_2_0_BRANCH.
- Decom nsRange. Affected interfaces: nsIDOMNSRange, nsIRangeUtils and nsIRange.
- Merge nsIScriptError and nsIScriptError2. nsIScriptError2 is gone.
- Make imgIContainerObserver::FrameChanged take an imgIRequest*. This change only affects binary add-ons, if any.
Other important changes are noted in Firefox 12 for developers.
New Developer Features in 12
- Implement text/html for @mozilla.org/xmlextras/domparser. This bug is over 10 years old!
- XMLHttpRequest should allow to specify a network timeout. This give you more control on waiting times for XHR requests. The XHR object now has a timeout property (measured in ms) and an ontimeout event.
- Provide a thumbnail service. As part of the upcoming New Tab Page feature (see next section), there’s a new thumbnail service that makes it easier to generate page thumbnails. There’s no documentation about it yet, but you can have a look at the JSM code here.
Coming Up in Firefox 13
These 2 points are big enough that they’re worth mentioning in advance:
- New Tab Page feature. Firefox 13 will no longer show a blank page when you open a new tab. It’ll now show suggestions based on past activity. This overlaps with the features of several existing add-ons, so some breakage is to be expected. I would like to direct your attention to this bug: New Tab Page should be user skinnable. This is an apparently easy fix that would greatly help theme developers. If you have some time to work on this, please submit a patch. Update: note in the comments below that there may be a solution for the theme problem already.
- Firefox 13 will have mandatory ASLR on Windows for binary components. Kyle Huey explains what this means in his blog.
Please let me know in the comments if there’s anything missing or incorrect on these lists.