Firefox 22 will be released on June 25th. Here’s the list of changes that went into this version that can affect add-on compatibility. There is more information available in Firefox 22 for Developers, so you should read that too.
Update: please read this update for one more compatibility issue that was just discovered.
General
- Add-ons that set default zoom level will give unexpected results when Firefox becomes hidpi-aware on Windows. Add-ons that use nsIMarkupDocumentViewer.fullZoom will most likely see unexpected results under certain circumstances.
- Make getUserData and setUserData ChromeOnly. Those functions will no longer be available for content, only from privileged code.
- FillInHTMLTooltip should move into XBL binding. This is no longer a global function in browser.js.
Places
There is much more Places code cleanup happening in 22, so that file system access happens asynchronously. Read the documentation of Places utilities for alternatives of these functions and objects.
- Remove deprecated synchronous favicons APIs. From nsIFaviconService, the following methods were removed: setFaviconUrlForPage, setAndLoadFaviconForPage, setFaviconData, setFaviconDataFromDataURL, getFaviconData, getFaviconDataAsDataURL, getFaviconForPage, and getFaviconImageForPage.
- Stop implementing nsIGlobalHistory2. nsIBrowserHistory no longer extends nsIGlobalHistory2, so it doesn’t implement addURI, isVisited or setPageTitle anymore.
- Move markPageAsXXX methods to nsINavHistoryService. They were moved from nsIBrowserHistory to nsINavHistoryService.
- Remove nsINavHistoryService::AddVisit.
- Remove deprecated nsILivemarkService interface.
XPCOM
- Stop defining |Components| object in content scopes. The Components object will no longer be available from content, with a few exceptions (DOM interface constants), which are mentioned in bug 429070.
- Remove nsISupportsArray usage from nsITreeView. This changes the signatures and return types for the following functions: getRowProperties, getCellProperties, getColumnProperties. These functions now return a whitespace delimited list.
- Remove the dummy PrivateBrowsing service. Removes nsIPrivateBrowsingService entirely, which was just left as a temporary compatibility shim.
- attributes should be defined on Element and not Node. attributes
and hasAttributes(see comments below) are now members of Element, instead of Node. - Fold NSPR and NSS into mozjs (for Windows) or libxul (for other platforms). If your add-on has binary components or you build against Mozilla code for other reasons, this is possibly important. I’ve already been contacted a couple of times about failed builds because of this.
New!
- Give both version numbers to bootstrap methods when an addon is down/upgraded. If your add-ons is bootstrapped, this gives you better information when performing an add-on upgrade.
Please let me know in the comments if there’s anything missing or incorrect on these lists. If your add-on breaks on Firefox 22, I’d like to know.
The automatic compatibility validation and upgrade for add-ons on AMO will happen soon, so check your email if you have an add-on listed on our site.
Kohei Yoshino wrote on
Jorge Villalobos wrote on
Kohei Yoshino wrote on
Jorge Villalobos wrote on
Paulo Valentim wrote on
Neal wrote on
Luke wrote on
Jorge Villalobos wrote on
madrum wrote on
Jorge Villalobos wrote on
Xiong wrote on
hanyu wrote on
Jorge Villalobos wrote on
hanyu wrote on
Evan Edwards wrote on
tab_util_user wrote on
Robert wrote on
Patrick wrote on
Alex wrote on
Jorge Villalobos wrote on
Rob Robinson wrote on
Alberto López wrote on
Thirilog wrote on
Ioan-Cosmin Szanto wrote on
Steve Tapp wrote on
Jorge Villalobos wrote on
Charlie Howard wrote on
Jorge Villalobos wrote on
Martin wrote on
Jorge Villalobos wrote on
Nikhil wrote on
Tim Robinson wrote on
jonathan wrote on
Ray wrote on
tony 123 wrote on
tony 123 wrote on
Sunil wrote on
Jorge Villalobos wrote on
Shalini Kuruvath wrote on
James Edwards wrote on
Jorge Villalobos wrote on