Closed Bug 1782150 Opened 2 years ago Closed 2 years ago

Support pref flip experiments in Nimbus

Categories

(Firefox :: Nimbus Desktop Client, enhancement, P1)

enhancement

Tracking

()

RESOLVED FIXED
105 Branch
Tracking Status
firefox107 --- fixed

People

(Reporter: barret, Assigned: barret)

References

Details

Attachments

(5 files)

Nimbus will support setting prefs from variables when enrolling in experiments. These prefs must be set in the feature manifest.

We do this at build time when generating the feature manifest. We were already
doing some schema validation, so we piggy back on top to do some semantic
validation of the manifest.

Depends on D156640

See Also: → 1790428

When a user is enrolled in an experiment or rollout that sets a pref, we want
to unenroll them if a change to that pref is detected. If the pref was changed
on the same branch that the enrollment set, the pref will keep the new modified
value. If the pref was changed on a different branch (e.g., the experiment sets
a default branch pref and the user branch changed), then the enrollment will
restore its pref value on the appropriate branch.

It is worth noting that we cannot detect changes to the default branch when the
pref has a value set on the user branch. In these cases, the user will not be
unenrolled.

Depends on D156642

Once Nimbus loads its saved experiment state from disk, we now validate that
the manifest hasn't sufficiently changed to invalidate any pref-setting
experiments or rollouts the user is enrolled in.

If an an enrollment exists that sets a pref, then the following conditions will
cause the enrollment to end:

  • the feature setting the pref no longer exists in the manifest;
  • the variable setting the pref no longer exists in the feature;
  • the variable no longer sets a pref (i.e., the setPref field is missing);
    and
  • the variable sets a different pref (i.e., the setPref field has changed).

If an enrollment exists for a feature that could set prefs, but no variables
that prefs are set have changed, then the enrollment will not end. This
includes the case where the feature no longer exists, for parity with existing
enrollment behaviour.

Manifest changes only happen during updates, so unenrollments will only happen
the first time a browser restarts after an update.

Depends on D157237

Pushed by brennie@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/d59976de3d19
Support setPref key in variable definitions r=emcminn
https://hg.mozilla.org/integration/autoland/rev/f59897aeb41f
Ensure multiple variables cannot set the same pref r=emcminn
https://hg.mozilla.org/integration/autoland/rev/fc3d10907bc4
Set and unset prefs when enrolling and unenrolling in experiments r=emcminn
https://hg.mozilla.org/integration/autoland/rev/3462bf3c7d8b
Unenroll users from experiments and rollouts when preference changes are detected r=emcminn
https://hg.mozilla.org/integration/autoland/rev/80eb51bd0340
Unenroll users from pref-setting experiments when the manifest is sufficiently changed r=emcminn
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: