Add-ons using the techniques described in this document are considered a legacy technology in Firefox. Don't use these techniques to develop new add-ons. Use WebExtensions instead. If you maintain an add-on which uses the techniques described here, consider migrating it to use WebExtensions.
From Firefox 53 onwards, no new legacy add-ons will be accepted on addons.mozilla.org (AMO).
From Firefox 57 onwards, WebExtensions will be the only supported extension type, and Firefox will not load other types.
Even before Firefox 57, changes coming up in the Firefox platform will break many legacy extensions. These changes include multiprocess Firefox (e10s), sandboxing, and multiple content processes. Legacy extensions that are affected by these changes should migrate to WebExtensions if they can. See the "Compatibility Milestones" document for more.
A wiki page containing resources, migration paths, office hours, and more, is available to help developers transition to the new technologies.
Experimental
Functions to deprecate code.
Globals
Functions
deprecateFunction(fun, msg)
Dump to the console the error message given in the second argument, prefixed with "DEPRECATED:"
, and print the stacktrace; then execute the function passed as first argument and returns its value.
It does not raise an exception, but just displays the error message and continues to execute the function.
This function is mostly used to flag usage of deprecated functions, that are still available but which we intend to remove in a future release.
Parameters
fun : function
The function to execute after the error message
msg : string
The error message to display
Returns
* : The returned value from fun
deprecateUsage(msg)
Dump to the console the error message given, prefixed with "DEPRECATED:"
, and print the stacktrace.
It does not raise an exception, but just displays the error message and returns.
This function is mostly used to flag usage of deprecated functions that are no longer available.
Parameters
msg : string
The error message to display