nsISupportsArray, nsICollection, nsIEnumerator, nsIBidirectionalEnumerator
have all been marked as deprecated in their IDL declarations as of Firefox
52 (currently dev edition).
This is not a new thing -- they've been semi-deprecated for 12 years  --
we just never fully removed them.
Over the years there's been a ton of work to remove usages of the
interfaces. I recently did a fair amount of work in bug 792209  to
finish off getting rid of all remaining usage in mozilla-central and to
make our alternative, nsIArray, behave like nsISupportsArray in order to
make it easier to transition add-ons.
*What does this mean?*
Not that much, just please don't use those interfaces. You should see a
slew of warnings if you do (in C++ at least).
*How can I help?*
*comm-central* - mailnews/calendar still has some usage , if you have
some spare cycles to help out I'm sure they would appreciate it. If we
can't get rid of the usage by release 55 I still plan on removing the IDL
files from mozilla-central, it's possible we can move the definitions to
*add-ons* - Are you an add-on dev? Do you know an add-on dev? Transition
your code from using those interfaces or encourage the developer of your
favorite add-on to do so.
*What do I use instead?*
*nsIArray* and *nsIMutableArray* along with nsISimpleEnumerator are the
recommended replacements. For the most part they are drop-in compatible
In C++ code if you need a new mutable array just use:
> nsCOMPtr<nsIMutableArray> arr = nsArray::Create();
> let arr = Cc["@mozilla.org/array;1