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 Requesting QA 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)?