Firefox 17 will be released on November 20th. Here’s the list of changes that went into Firefox 17 that can affect add-on compatibility. There is more information available in Firefox 17 for Developers, so you should read that too.
- Flip __exposedProps__ to default-safe. We have been talking about this upcoming change for a while. Read Exposing add-on objects to content safely for more information.
- enablePrivilege. This feature has been deprecated for a while, and its code is being progressively removed from Firefox. It no longer works as expected, so you should look for alternatives if you rely on it.
- Remove XHR.onuploadprogress. This property is non-standard, so it was removed. For alternatives, look at the XHR docs.
- Implement toString of function objects by saving source. If your add-on uses eval and function.toString to monkey-patch existing functions, this change will most likely break it. As usual, we recommend avoiding this technique as much as possible.
- Certificate of a signed extension is validated on each startup. The change here is that the signature in a signed extension will only be checked once on install instead of every time Firefox starts.
- Don’t allow alert/confirm/prompt in onbeforeunload, onunload and onpagehide. The title says it all. This prevents some cases where pages force users to stay.
- Throw an exception when attempting to add a non-preserved weak map key. This should only concern you if you use WeakMap.
- Add a new nsIFilePicker::ShowAsync method. nsIFilePicker::Show is now deprecated, and the asynchronous alternative is what you should favor.
- Eliminate checkLoadURI() and checkLoadURIStr(). checkLoadURIWithPrincipal() should be used instead.
- Separate message managers into senders and broadcasters. This changes the way messages are sent an received, and eliminates the nsIChromeFrameMessageManager interface.
- Update GetCodebasePrincipal callers to use the correct “data jar”. This bug temporarily renamed the getCodebasePrincipal function, breaking some add-ons on Beta. The change was reversed, so no code change is required.
- Top-level XUL windows should support size constraints. This means we now fully support minwidth, minheight, maxwidth, and maxheight for top-level XUL windows.
- Need the ability to extract the most representative color from a favicon. I thought this was interesting and potentially useful. The new interface is documented here.
Additionally, the load handler problem that appeared in Firefox 16 should now be fixed in Firefox 17.
Please let me know in the comments if there’s anything missing or incorrect on these lists. If your add-on breaks on Firefox 17, I’d like to know.
The automatic compatibility validation and upgrade for add-ons on AMO will happen next week, so check your email.