Thursday, 15 December, 2016 UTC


Summary

If you haven’t read it yet, please give our plans for 2017 a look. These updates are aimed mostly at add-ons using legacy APIs, but WebExtensions is the way forward.
Firefox 52 will be released on March 7th. Here’s the list of changes that went into this version that can affect add-on compatibility. There is more information available in Firefox 52 for Developers, so you should also give it a look.

General

  • Remove support for all NPAPI plugins (except Flash). Read this blog post for more information.
  • DnD of multiple shortcuts from desktop only opens one. This enables drag and drop of multiple links to the browser area, which includes some changes like replacing browserDragAndDrop.drop with browserDragAndDrop.dropLinks.
  • The ChromeFilePropertyBag versions of the File constructors are web-observable. This replaces the File constructors with the static functions CreateFromFileName and CreateFromNsIFile.
  • Drag and Drop: DataTransfer.types is wrong type. Instead of
    dataTransfer.types.contains, add-ons should use dataTransfer.types.includes. A shim was added to preserve compatibility, but it’s temporary.
  • Crash with Youtube Subtiltle Downloader. This change makes CORS requests from add-ons using an expanded principal not work.
  • Deprecate and remove CanvasRenderingContext2D.mozDash/mozDashOffset.
  • Remove web content access to Battery API.

XPCOM and Modules

  • Delete toolkit/obsolete. There are some utility objects there used by older add-ons, like
    nsPreferences in nsUserSettings.js and the string bundle functions in strres.js.
  • Mark nsISupportsArray, nsICollection, nsIEnumerator as deprecated. These interfaces, particularly nsISupportsArray, are used in many components add-ons use. They are being replaced with nsIArray:
    • Remove nsISupportsArray usage from nsIDragService.
    • Convert inIDOMUtils.getCSSStyleRules to nsIArray.
    • Use nsIArray for URL window argument.
    • Remove nsISupportsArray usage from nsITransferable and nsIFormatConverter.
  • ImageDocument::ImageResizingEnabled is unused.

Themes

  • Remove support for obsolete -moz-images-in-menus and -moz-images-in-buttons media queries.
Let me know in the comments if there’s anything missing or incorrect on these lists. If your add-on breaks on Firefox 52, I’d like to know.
The automatic compatibility validation and upgrade for add-ons on AMO will happen in a few weeks, so keep an eye on your email if you have an add-on listed on our site with its compatibility set to Firefox 51.