Closed Bug 1972647 Opened 11 months ago Closed 7 months ago

Enable Firefox Labs when Telemetry or Studies are Disabled

Categories

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

enhancement

Tracking

()

RESOLVED FIXED
146 Branch
Tracking Status
relnote-firefox --- 146+
firefox146 --- fixed

People

(Reporter: beth, Assigned: beth)

References

(Blocks 1 open bug, Regressed 2 open bugs)

Details

Attachments

(6 files)

In bug 1937147 we ported Firefox Labs to be powered by Nimbus, our A/B testing and feature delivery platform, which (as its configured) requires both telemetry and studies to be enabled in order to function. Nimbus was originally designed to be an A/B test platform and so it made sense at the time that if telemetry was disabled that Nimbus should be disabled because there if you need to collect data in order to do quantatative experimentation. However, as Nimbus has grown into more of a feature delivery platform, it no longer makes sense to gate everything behind having telemetry or even studies enabled. We should add a new preference toggle that enables/disables Firefox Labs and update the Nimbus logic as follows:

  1. Telemetry disabled -> Experiments and rollouts are disabled except for Firefox Labs opt-ins(i.e., when recipe.isFirefoxLabsOptIn = true)
  2. Studies disabled -> Experiments and rollouts are disabled EXCEPT for Firefox Labs opt-ins (i.e., when recipe.isFirefoxLabsOptIn = true)
  3. Firefox Labs disabled -> Firefox Labs is disabled and experiments and rollouts work as normal

To implement this, we need to:

  • Add a new pref to enable/disable Firefox Labs;
  • Expose said pref on the Firefox Labs page;
  • Update the Firefox labs page to not be hidden if there are no studies. Instead, it should say there are no available opt-ins / Firefox Labs is disabled;
  • Update ExperimentManager._handleStudiesOptOut to exclude Firefox Labs opt-ins (unless they are also disabled);
  • Update RemoteSettingsExperimentLoader.onEnabledPrefChanged to disable the itself if both Firefox Labs and either studies or telemetry is disabled;
  • Add new MatchStatus entries for studies being disabled and Firefox Labs being disabled;
  • Update EnrollmentsContext.checkRecipe to add additional checks for:
    • Firefox Labs being disabled if the recipe is a Firefox Labs Opt-In
    • Studies/telemetry being disabled if the recipe is a traditional experiment/rollout

We do not want users to confuse these opt-ins with regular studies,
especially when studies are disabled, as that may lead them to believe
that we are running studies without their consent.

Assignee: nobody → brennie
Status: NEW → ASSIGNED

We have been accruing internal state inside ExperimentAPI.sys.mjs that
we do not want to expose as mutable to outside of the module. That state
is now bundled into the ExperimentAPI object itself as private
elements.

Both Firefox Labs and one of either studies or telemetry must now be
disabled to fully disable Nimbus.

Blocks: 1951312
Attachment #9522191 - Attachment description: WIP: Bug 1972647 - Don't hide Firefox Labs when studies or telemetry are disabled r?#settings-reviewers! → Bug 1972647 - Don't hide Firefox Labs when studies or telemetry are disabled r?#settings-reviewers!,mkaply!
Pushed by brennie@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/b1f97661fdcf https://hg.mozilla.org/integration/autoland/rev/fb50c9cf745e Hide Firefox Labs opt-ins from about:studies r=nimbus-reviewers,relud https://github.com/mozilla-firefox/firefox/commit/39384659753b https://hg.mozilla.org/integration/autoland/rev/be407b666f7b Make ExperimentAPI a singleton instance of a class r=nimbus-reviewers,relud https://github.com/mozilla-firefox/firefox/commit/7addb3e10953 https://hg.mozilla.org/integration/autoland/rev/fbf6a8f79f54 Allow Firefox Labs to be enabled even if studies or telemetry are disabled r=mkaply,nimbus-reviewers,relud https://github.com/mozilla-firefox/firefox/commit/b8c619fb2ad8 https://hg.mozilla.org/integration/autoland/rev/9d251c1e5552 Unenroll from Firefox labs opt-ins during Nimbus initialization if Labs is disabled by policy r=nimbus-reviewers,relud https://github.com/mozilla-firefox/firefox/commit/e47c8a978817 https://hg.mozilla.org/integration/autoland/rev/db42513c804c Don't hide Firefox Labs when studies or telemetry are disabled r=mkaply,akulyk
Pushed by agoloman@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/b944a731f26e https://hg.mozilla.org/integration/autoland/rev/f4619d5b7b93 Revert "Bug 1972647 - Don't hide Firefox Labs when studies or telemetry are disabled r=mkaply,akulyk" for causing bc failures.

Backed out for causing bc failures.

Flags: needinfo?(brennie)
Flags: needinfo?(brennie)
Pushed by brennie@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/8f71edffd048 https://hg.mozilla.org/integration/autoland/rev/2072c2682f45 Hide Firefox Labs opt-ins from about:studies r=nimbus-reviewers,relud https://github.com/mozilla-firefox/firefox/commit/626cbe672edf https://hg.mozilla.org/integration/autoland/rev/438f125a207a Make ExperimentAPI a singleton instance of a class r=nimbus-reviewers,relud https://github.com/mozilla-firefox/firefox/commit/eb3f9ea0ff5e https://hg.mozilla.org/integration/autoland/rev/778ac7df0b03 Allow Firefox Labs to be enabled even if studies or telemetry are disabled r=mkaply,nimbus-reviewers,relud https://github.com/mozilla-firefox/firefox/commit/8f2ec3f7c783 https://hg.mozilla.org/integration/autoland/rev/feb4f1cc77f5 Unenroll from Firefox labs opt-ins during Nimbus initialization if Labs is disabled by policy r=nimbus-reviewers,relud https://github.com/mozilla-firefox/firefox/commit/444d4fbc9d66 https://hg.mozilla.org/integration/autoland/rev/949c38eb8430 Don't hide Firefox Labs when studies or telemetry are disabled r=mkaply,akulyk
Regressions: 1997504
Pushed by amarc@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/34f255aa3378 https://hg.mozilla.org/integration/autoland/rev/9126b83a2a85 Revert "Bug 1972647 - Don't hide Firefox Labs when studies or telemetry are disabled r=mkaply,akulyk" for causing marionette failures @ test_no_errors_clean_profile.py

Backed out for causing marionette failures @ test_no_errors_clean_profile.py

Flags: needinfo?(brennie)
Flags: needinfo?(brennie)
Pushed by brennie@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/763a6cc91007 https://hg.mozilla.org/integration/autoland/rev/a9b317048a30 Hide Firefox Labs opt-ins from about:studies r=nimbus-reviewers,relud https://github.com/mozilla-firefox/firefox/commit/da83c7501282 https://hg.mozilla.org/integration/autoland/rev/b43818080a5e Make ExperimentAPI a singleton instance of a class r=nimbus-reviewers,relud https://github.com/mozilla-firefox/firefox/commit/73fb4a228ffb https://hg.mozilla.org/integration/autoland/rev/ca7925e6e415 Allow Firefox Labs to be enabled even if studies or telemetry are disabled r=mkaply,nimbus-reviewers,relud https://github.com/mozilla-firefox/firefox/commit/cd1586e5cf72 https://hg.mozilla.org/integration/autoland/rev/65bd329624d3 Unenroll from Firefox labs opt-ins during Nimbus initialization if Labs is disabled by policy r=nimbus-reviewers,relud https://github.com/mozilla-firefox/firefox/commit/43c55af65c60 https://hg.mozilla.org/integration/autoland/rev/733ee3e7e1b1 Don't hide Firefox Labs when studies or telemetry are disabled r=mkaply,akulyk https://github.com/mozilla-firefox/firefox/commit/7f239a90c986 https://hg.mozilla.org/integration/autoland/rev/efb03dd2507e Suppress log spam when the RS collections have not yet synced r=nimbus-reviewers,relud
See Also: 1958856

:beth does this need a relnote for 146? Please nominate if so.

Flags: needinfo?(brennie)

Release Note Request (optional, but appreciated)
[Why is this notable]: Firefox Labs is now available to all users, regardless of whether or not they choose to participate in studies or submit telemetry. That means we have more features in the hands of more people.
[Affects Firefox for Android]: No
[Suggested wording]:
[Links (documentation, blog post, etc)]:

relnote-firefox: --- → ?
Flags: needinfo?(brennie)
See Also: → 1958856
QA Whiteboard: [qa-triage-done-c147/b146]
Regressions: 2036427
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: