Closed Bug 2055858 Opened 2 months ago Closed 1 month ago

Respect wallpaper "visible" and "visibility_group" fields in the New Tab Customize picker

Categories

(Firefox :: New Tab Page, enhancement)

enhancement

Tracking

()

VERIFIED FIXED
157 Branch
Tracking Status
firefox156 --- verified
firefox157 --- verified

People

(Reporter: maxx, Assigned: maxx)

References

(Depends on 1 open bug)

Details

(Whiteboard: [hnt])

Attachments

(2 files)

Support the new visible boolean field on newtab-wallpapers-v2 records (see 2055857).

When a wallpaper is marked visible: false, it should be removed from the Customize wallpaper picker so it can no longer be selected, but people who already have it selected can continue to see it applied.

Implementation notes:

The client defaults visible to true, so behavior is unchanged for records without the field.

Flags: needinfo?(mcrawford)

This isn't a duplicate. This is the client-side implementation part.

Flags: needinfo?(mcrawford)
Assignee: nobody → mcrawford

Expanding scope: this bug now covers both visibility fields on newtab-wallpapers-v2, since they gate the same picker and land in the same file.

  1. visible (Bug 2055857, schema landed)

A record with visible: false is not offered in the Customize picker. A record with no visible key, or visible: true, is offered as today.

Correction to comment #0: that comment said to keep the currently-active wallpaper in the picker via a title === activeWallpaper exception. That is no longer the plan. A retired wallpaper is hidden from the picker for everyone, including the person who has it selected. Their background keeps rendering it - the record stays in wallpaperList, so Base.jsx's lookup by title still resolves. Accepted consequence: that person sees no checked radio in the category (and no category tile at all if every wallpaper in it is retired) while their background still shows the retired image.

  1. visibility_group (Bug 2068600, schema in PR #827)

A record with an empty or absent visibility_group is offered normally. A record with a value is offered only when that value appears in the user's active-group list. That list is a comma-separated string, so several groups can be live at once, resolved from two sources in precedence order:

  • trainhopConfig.wallpapers.visibilityGroups - the Nimbus override, shippable via the newtab XPI without a release-train dependency.
  • browser.newtabpage.activity-stream.newtabWallpapers.visibilityGroups - the pref, which holds the default and is what you set for local testing.

Note that both gates apply together: a record needs visible !== false AND a satisfied group to be offered.

  1. no-op for today's collection

All 74 shipped records carry neither field, so behavior is unchanged for every existing wallpaper. This is verifiable before PR #827 merges and is the primary pre-landing check.

Depends on: 2068600
Summary: Respect wallpaper "visible" field in the New Tab Customize picker → Respect wallpaper "visible" and "visibility_group" fields in the New Tab Customize picker
Attachment #9635530 - Attachment description: WIP: Bug 2055858 - Honor the wallpaper visible and visibility_group fields in the New Tab picker r?#home-newtab-wattle-reviewers-rotation → Bug 2055858 - Honor the wallpaper visible and visibility_group fields in the New Tab picker r?#home-newtab-wattle-reviewers-rotation
Pushed by mcrawford@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/dfa133b317c7 https://hg.mozilla.org/integration/autoland/rev/eb37099a004b Honor the wallpaper visible and visibility_group fields in the New Tab picker r=thecount,nbarrett
Status: NEW → RESOLVED
Closed: 1 month ago
Resolution: --- → FIXED
Target Milestone: --- → 157 Branch
Attachment #9636058 - Flags: approval-mozilla-beta?

firefox-beta Uplift Approval Request

  • User impact if declined/Reason for urgency: Default users may see exclusive wallpapers for Wrexham repack marketing initiative.
  • Code covered by automated testing?: yes
  • Fix verified in Nightly?: yes
  • Needs manual QE testing?: yes
  • Steps to reproduce for manual QE testing: See testing steps in https://phabricator.services.mozilla.com/D323031
  • Risk associated with taking this patch: low
  • Explanation of risk level: The code was written explicitly to maintain default visibility, so there should be no visual or behavior changes with this code change.
  • String changes made/needed?: No
  • Is Android affected?: no
Flags: qe-verify+
Attachment #9636058 - Flags: approval-mozilla-beta? → approval-mozilla-beta+

Beta backout incoming, Bug 2067903 is on beta only

QA Whiteboard: [uplift][qa-ver-needed-c157/b156]
QA Contact: csasca

Ahh! It's causing CI failures on beta, because https://bugzilla.mozilla.org/show_bug.cgi?id=2025793 is backed out there. I need to run the bundle step on that patch. I'll get this solved.

Flags: needinfo?(mcrawford)
Attachment #9636058 - Flags: approval-mozilla-beta+ → approval-mozilla-beta?
Attachment #9636058 - Flags: approval-mozilla-beta? → approval-mozilla-beta+

Verified that this is working correctly on Firefox 157.0a1 (2026-09-06) and Firefox 156.0b4 (treeherder build) by following the STR mentioned in Comment 8. Tests were performed on macOS 27, Windows 11 and Ubuntu 26.04.

Status: RESOLVED → VERIFIED
QA Whiteboard: [uplift][qa-ver-needed-c157/b156] → [uplift][qa-ver-done-c157/b156]
Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: