This post is just a mixed bag of add-on compatibility issues that developers should be aware of, most of which will be included in future compatibility updates in this blog, but are worth giving a heads up in advance.
Asynchronous Places 
A large number of Places APIs will be removed in Firefox 21, as Places continues to become fully asynchronous. The list of API changes and discussion is happening on this dev.extensions thread.
Per-window Private Browsing Mode 
Much has changed in the past couple of releases in preparation for per-window private browsing mode. In Firefox 20, most of what was left has been taken out, including nsIPrivateBrowsingService and some observer notifications.
Lazy Tab Restoration 
Firefox already implements this feature where old tabs are only loaded on demand after a Firefox restart. To further optimize this feature and save more memory, the browser elements in these tabs will be set to display: none. This means that many assumptions about accessing such tabs are now broken, like the existence of a docShell, browser.contentWindow, etc. If your add-on looks into content of existing tabs, you should make sure it works with tabs that haven’t been loaded yet. This will ship in Firefox 20, currently on beta.