Support pref flip experiments in Nimbus
Categories
(Firefox :: Nimbus Desktop Client, enhancement, P1)
Tracking
()
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.
Assignee | ||
Comment 1•2 years ago
|
||
Assignee | ||
Comment 2•2 years ago
|
||
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
Assignee | ||
Comment 3•2 years ago
|
||
Depends on D156641
Assignee | ||
Comment 4•2 years ago
|
||
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
Assignee | ||
Comment 5•2 years ago
|
||
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
Comment 7•2 years ago
|
||
bugherder |
Description
•