Firefox 19 will be released on February 19th. Here’s the list of changes that went into this version that can affect add-on compatibility. There is more information available in Firefox 19 for Developers, so you should read that too.
- Remove XML Events. This is an obscure feature related to XForms, which was dropped long ago.
- Remove XTF. Another XForms-related feature.
- Rename mozallowfullscreen to allowfullscreen.
Private Browsing Mode is changing to support private and non-private windows opened at the same time. This means that many XPCOM interfaces and other functions are changing to support it. The changes are mostly new parameters that tell the function which context it is being called from, so that it can work accordingly.
- ContentPrefService uses global Private Browsing state. All methods in this service now require the context to be passed to them.
- nsNavHistory uses global Private Browsing state. This changes some of the History component code to support the new per-window private browsing. There are no API changes in this patch, though.
- Add GUIDs to downloads. This adds a GUID to nsIDownloads, and APIs to handle downloads by GUID. The other APIs are still available, but will be gradually deprecated.
- nsStrictTransportSecurityService uses the global Private Browsing service.
- Improve signature of nsIConsoleService::GetMessageArray. This is an API improvement, but it affects many add-ons. The getMessageArray function used to require passing an object that would be modified to hold the return value. This was changed so the function now returns the array, so now you can do something like msgArray = consoleService.getMessageArray(…);
- Move DOMImplementation to Paris bindings. This changes nsIDOMDOMImplementation, making it non-scriptable.
- Remove the nsIDOMCanvasRenderingContext2D interface. This removes everything in nsIDOMCanvasRenderingContext2D except for the DRAWWINDOW_ constants.
- nsIUrlListManager.safeLookup not updated. The safeLookup function now takes an nsIPrincipal as an argument.
- Remove imgIRequest::loadImage’s aRequest argument.
- Change nsIChannel to support 64-bit content-length. This is just a return type change, so it should only affect binary add-ons, if any.
- menuitems don’t inherit the “hidden” attribute from commands. Now they do 🙂
- Add an option ignoreExisting to OS.File.makeDir.
Please let me know in the comments if there’s anything missing or incorrect on these lists. If your add-on breaks on Firefox 19, I’d like to know.
The automatic compatibility validation and upgrade for add-ons on AMO will happen very soon, so check your email if you have an add-on on AMO.