- Support an on-train limited rollout of the TOS preonboarding modal for platforms where first run experiments are not supported (Mac, Linux, MSIX)
- This patch lands the initial feature work and an uplift in 137 release will enable it for 1% of users. Later in 137, a second uplift will increase the population to 25%.
- Two nimbus features with fallback prefs are available for testing, the fallback prefs are `browser.preonboarding.onTrainRolloutEnabled` and `browser.preonboarding.onTrainRolloutPopulation`.
Differential Revision: https://phabricator.services.mozilla.com/D238304
To support the upcoming TOS preonboarding experiment, we want to ensure the following actions occur sequentially:
- setting prefs, including `datareporting.healthreport.uploadEnabled` (`SET_PREF`)
- submitting the onboarding opt-out ping, if applicable (`SUBMIT_ONBOARDING_OPT_OUT_PING`)
- notifying that the data reporting notification has been interacted with (`DATAREPORTING_NOTIFY_DATA_POLICY_INTERACTED`).
When these actions occur out of order, it is possible for telemetry to be enabled and then disabled. This is likely what accounts for the onboarding-opt-out followed by deletion-request pings witnessed by QA in Bug 1948717.
We believe that the issue is that the `MULTI_ACTION` SMA does not guarantee any ordering of its child actions: see [[ https://searchfox.org/mozilla-central/rev/0d1f8ff61fe506646fe3898ef727817b4436ab32/toolkit/components/messaging-system/lib/SpecialMessageActions.sys.mjs#687-696 | here ]]. That's by design, since early actions including pinning and set-to-default, which are slow and can be run concurrently. But here, we expect sequential ordering (and also [[ https://searchfox.org/mozilla-central/rev/0d1f8ff61fe506646fe3898ef727817b4436ab32/browser/components/aboutwelcome/content-src/components/MultiStageAboutWelcome.jsx#578-585 | in the code ]]).
The obvious way to address this is to have the MULTI_ACTION order its child actions. However, this needs to be a flag, since we have existing consumers and we want to minimize disruption.
This patch adds support for an `orderedExecution` flag on message `action` configurations for those with type `MULTI_ACTION`. This applies to nested `MULTI_ACTIONS` using `collectSelect` as well, assuming each `MULTI_ACTION` has the `orderedExecution` flag.
Differential Revision: https://phabricator.services.mozilla.com/D238816
We want to capture the default state of multiselect checklist items when a user clicks the primary CTA on an aboutwelcome screen, even if the checklist hasn't been rendered yet (such as when the user needs to click a button to toggle it in to view).
Differential Revision: https://phabricator.services.mozilla.com/D237773
**Primary Updates**
- Add ability to show multiple content tiles on a single AboutWelcome screen by supporting an array of tile objects and/or sub-arrays of tile objects to be groups together as a value for "tiles" in screen content
- Keep compatibility with messages that use a single tile object as the value of "tiles" in screen content
- Add updates to `setMultiSelectActions` to ensure we can handle actions across multiple MultiSelect tiles.
- Add optional tile headers which can be displayed in place of the tile until clicked, closing any other tile with a header that's currently open
- Send click event telemetry when a user clicks a tile header to open the tile
- Update aboutwelcome source docs related to content tiles to include this new capability
**Additional Updates to Support UX Designs**
[[ https://www.figma.com/design/F63Ac1akw2q1fN5D59rgS5/Privacy?node-id=4110-16458&t=kSzPUp4XFLq0dKg8-4 |
See Figma designs ]]
- Add ability to configure `display`, `padding`, and `width` for aboutwelcome screens (this allows us to support the proposed Spotlight modal designs, which include anchoring the modal towards the top of the screen and expanding it downward when a tile is opened, rather than centering vertically)
- Add ability to configure action buttons to show above screen content
{F11717546}
Differential Revision: https://phabricator.services.mozilla.com/D231856
Enhancements for the embedded browser component in AboutWelcome:
- Improve the speed at which the browser starts by predicting the `remoteType` the load is going to finish in
- Set `maychangeremoteness` attribute to true to allow changing remoteness if user navigates to a different URL that requires this (such as an `about:` page, though with the current set up `about:` pages won't load for security reasons).
- Set `nodefaultsrc` attribute to true to avoid loading a default URL if `src` is blank
Differential Revision: https://phabricator.services.mozilla.com/D232425