Skip to main content

Feature Definition

In the experimentation ecosystem, experiment surfaces are described as features. A feature is an area of code instrumented with telemetry and accessible for remote configuration. It can be as small as a single function or as complex as a whole page. Some examples:

  • aboutwelcome — the about:welcome page in Desktop
  • homescreen — the homescreen page in Fenix
  • tabTrayFeature — the tab tray in Firefox iOS

Features are defined in a manifest file specific to your platform. The manifest declares what variables the feature exposes, how they connect to preferences, and what telemetry the feature records.

Define your feature

Choose the guide for your platform:

QA testing your feature

After landing a new feature, it is recommended to go through QA before running experiments or rollouts. This provides an extra layer of stability and can surface limitations early.

  • See this document for steps on how to file a QA request. Use the Feature-Configuration label in Jira. (Example)
  • If you have documentation about the feature's configuration, link it to the QA ticket — this helps with test plan and test case creation.

Common questions QA will ask:

  • What specific functionality is enabled and how can we see it in action?
  • Are there any exposed user preferences in about:preferences?
  • If the feature has an exposure event, when does it trigger?
  • Does the feature have specific telemetry events and which pipeline (Legacy or Glean)?