Support pref flip experiments in Nimbus
Categories
(Firefox :: Nimbus Desktop Client, enhancement, P1)
Tracking
()
Tracking | Status | |
---|---|---|
firefox107 | --- | fixed |
People
(Reporter: beth, Assigned: beth)
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
Comment 7•2 years ago
|
||
bugherder |
Description
•