WebExtensions/DeprecationPolicy

From MozillaWiki
Jump to: navigation, search

Status: draft

From time to time we expect to deprecate WebExtensions APIs.

Deprecating APIs

APIs are likely to be deprecated when one or more the following occur:

  • the API is not used enough
  • the cost of maintenance outweighs the usage of the API
  • the feature the API interacts with is changing or being removed

In that case we might need to deprecate and remove the API from WebExtensions.

Process

  • Discuss on the community forum and other places as appropriate.
  • Announce on the forum "Announcements" category with the subject "Intent to deprecate"
  • Alter the addons-linter repository to warn developers using "web-ext lint" or AMO that the API is now deprecated.
  • Alter Firefox to output a warning to the browser console.
  • Update the docs on MDN.
  • Wait for change to ride the change to ride Firefox trains to release.
  • At a minimum, wait for 3 Firefox releases, from when the deprecation lands in nightly.
  • Alter the add-ons linter repository to fail if the API is present.
  • Alter Firefox to remove the API.
  • Update the docs on MDN.

With this flow, there's at least 3 releases between the deprecation and the actual removal of the API.

Security

If there is a pressing security or privacy issue that a WebExtension API causes, then we would review and expedite that. Deprecation based on security would be on an as needed basis, but if it was deemed critical then most of the above would happen quickly and the block pushed to release as quickly as possible within the release management schedule.

To report one of these please file a bug in bugzilla and set the security flag on the bug.