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