**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
- Wait for ASRouter to be initialized before recording screen impressions to ensure the impression for the first screen in `about:welcome` isn't lost because ASRouter's `_storage` variable is still null
- Local testing shows that this first screen impression is lost when an attempt is made to record it before ASRouter is initialized. It's unclear if this is an issue on production, or just when running locally. Locally the issue occurs consistently, but this can't be the case on production as telemetry includes impressions from the first screen of `about:welcome`. However, we should monitor telemetry for possible changes after this fix goes out to see if there is an increase in screen impressions for the first screen of about:welcome.
Differential Revision: https://phabricator.services.mozilla.com/D232736
The intent of this patch is to add support for feature callout anchors situated in the shadowDOM. For instance, for the Review Checker migration project, we want to add callout messages on the feature's sidebar icon. The actual parsing of the selector itself should be credited to @aminomancer; I'm authoring this patch to make sure we can get the change landed and tested.
I also verified the change with a few selectors via about:asrouter. For instance, if you wish to test with the actual Review Checker sidebar icon, you should have the prefs `sidebar.revamp` and `browser.shopping.experience2023.integratedSidebar` set to true. After enabling RC in the sidebar settings, add the following anchor to any callout: `"#sidebar-main > sidebar-main::%shadow% .tools-and-extensions::%shadow% moz-button[view='viewReviewCheckerSidebar']"`.
Lastly, I added a test in `browser/components/asrouter/tests/browser/browser_feature_callout_panel.js` to ensure `%shadow%` works as intended.
Differential Revision: https://phabricator.services.mozilla.com/D231337
The change in CustomizableUI is required because the routine wasn't designed to handle
custom elements with shadow roots. The routine's job is to walk up the ancestry of
the click event and determine if any of the parents have certain characteristics
that would indicate that the event should not close the panel, and without this
change it would bail out as soon as it hit the shadow root if the event's original
target was inside the custom element.
In this case, the element enclosing the fxa-menu-message is the "appMenu-fxa-menu-message"
toolbaritem with `closemenu="none"`, which this modification now lets
CustomizableUI detect.
Differential Revision: https://phabricator.services.mozilla.com/D230560
This patch adds an startup idle task that sets the browser as default if an attribution campaign id of "set_default_browser" is present on first run. This works supports an upcoming experiment where users will have the option to "download as default" via [[ https://www.mozilla.org/en-US/firefox/new/ | the stub installer marketing page ]].
Differential Revision: https://phabricator.services.mozilla.com/D225212
This patch adds an startup idle task that sets the browser as default if an attribution campaign id of "set_default_browser" is present on first run. This works supports an upcoming experiment where users will have the option to "download as default" via [[ https://www.mozilla.org/en-US/firefox/new/ | the stub installer marketing page ]].
Differential Revision: https://phabricator.services.mozilla.com/D225212
This patch adds the functionality of the fxms_bmb_button surface to be removed when a user has been unenrolled from an experiment that used said feature.
Differential Revision: https://phabricator.services.mozilla.com/D229380