Closed Bug 2056300 Opened 2 months ago Closed 2 months ago

Expose available browser themes to New Tab and apply/install a selected theme

Categories

(Firefox :: New Tab Page, enhancement)

enhancement

Tracking

()

RESOLVED FIXED
155 Branch
Tracking Status
firefox155 --- fixed

People

(Reporter: maxx, Assigned: maxx)

References

(Blocks 1 open bug)

Details

Attachments

(1 file, 1 obsolete file)

New Tab has no browser/lightweight-theme integration today. This bug adds the foundational parent-side bridge so New Tab content can (1) receive the list of available Nova themes plus the currently active theme, and (2) request applying/installing a selected theme.

Scope:

  • New parent-side feed under browser/extensions/newtab/lib/ talking to the theme system (AddonManager / LightweightThemeManager).
  • Action types and reducer state in common/Actions.mjs and common/Reducers.sys.mjs to deliver the theme list and active theme to content and to dispatch apply/install requests.
  • No Customize Panel UI - that lands in the follow-up bugs.
  • Full-panel title and back button
Duplicate of this bug: 2056301
Blocks: 2056303
Blocks: 2056304
Duplicate of this bug: 2056299

Embed the reusable toolkit theme-picker element (compact layout) in the New Tab customize panel so users can switch their Firefox theme directly from Firefox Home.

  • Render <theme-picker layout="compact" installsource="about:newtab"> in ContentSection, gated on the browser-wide browser.nova.enabled pref. PrefsFeed reads and observes that pref and broadcasts it to content as browserNovaEnabled; CustomizeMenu threads it through to ContentSection.
  • Register the ThemePicker JSWindowActor for about:newtab and about:home so the element's remote controller can reach AddonManager/ThemesList via the parent in the content sandbox (about:home covers the startup-cache first tab).
  • Load the theme-picker / moz-visual-picker / moz-segmented-control element modules in the live-rendered page (render-activity-stream-html.js) and the about:home startup-cache template (page.html.template) so the custom element is defined on both normal and cached pages.
  • Add tests for the gate (ContentSection) and the pref observer/broadcast (PrefsFeed).
Assignee: nobody → mcrawford
Attachment #9613683 - Attachment description: WIP: Bug 2056300 - Integrate the compact theme-picker into the New Tab customize panel r?#home-newtab-reviewers → Bug 2056300 - Integrate the compact theme-picker into the New Tab customize panel r?#home-newtab-reviewers
Status: NEW → ASSIGNED
Attachment #9614064 - Attachment is obsolete: true
Pushed by smolnar@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/60265b532094 https://hg.mozilla.org/integration/autoland/rev/f45836b3bd85 Revert "Bug 2056300 - Integrate the compact theme-picker into the New Tab customize panel r=Dre" for causing bc process crashes
No longer duplicate of this bug: 2056301

Backed out for causing node failures.

Flags: needinfo?(mcrawford)
Status: ASSIGNED → RESOLVED
Closed: 2 months ago
Resolution: --- → FIXED
Target Milestone: --- → 155 Branch
QA Whiteboard: [qa-triage-done-c156/b155]
Duplicate of this bug: 2056303
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: