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 :