Skip to content

fix: add preference gate for macOS dock progress to preserve Tahoe icon style#12877

Closed
baton-noir wants to merge 1 commit intozen-browser:devfrom
baton-noir:fix/12676-dock-progress
Closed

fix: add preference gate for macOS dock progress to preserve Tahoe icon style#12877
baton-noir wants to merge 1 commit intozen-browser:devfrom
baton-noir:fix/12676-dock-progress

Conversation

@baton-noir
Copy link

Summary

Adds a browser.taskbar.dockProgress.enabled preference (default: true) that gates the macOS dock download progress indicator in DownloadsTaskbar.sys.mjs. When set to false, the dock icon is not replaced with a custom NSView during downloads, preserving the macOS Tahoe Clear/Dark/Tinted icon styling.

Root cause: Firefox's nsMacDockSupport sets NSDockTile.contentView to a static bitmap + progress bar overlay, replacing the OS-managed icon that macOS applies icon styling to. After the download completes, macOS does not re-apply the styling. There is no existing preference to control this behaviour.

Upstream: Firefox Bug 1997246

Closes #12676

Implementation

Single patch file: src/browser/components/downloads/DownloadsTaskbar-sys-mjs.patch

The patch inserts a Services.prefs.getBoolPref() check before the this.#taskbarProgresses.add(gInterfaces.macTaskbarProgress) call in the macOS branch of registerIndicator(). Default is true (no behaviour change). Users who want to preserve their Tahoe icon style set browser.taskbar.dockProgress.enabled to false in about:config.

Testing

I have verified this fix works by binary-patching the equivalent code in omni.ja on Zen 1.19.3b / macOS Tahoe. With the preference disabled:

  • Downloads complete normally
  • Dock icon remains in Clear style throughout
  • No dock progress bar is shown (the only visual trade-off)

I have not set up the full Zen build environment to run surfer import, so I'd appreciate a maintainer verifying the patch applies cleanly.

Notes

  • Default true means no behaviour change for existing users
  • macOS-only - Windows and Linux/GTK code paths are not affected
  • The preference name follows the existing browser.taskbar.* convention

(Re-submitted - previous PR #12875 was inadvertently closed during a commit rewrite.)

@baton-noir baton-noir requested a review from mr-cheffy as a code owner March 22, 2026 13:31
@dosubot dosubot bot added the size:S This PR changes 10-29 lines, ignoring generated files. label Mar 22, 2026
Adds browser.taskbar.dockProgress.enabled (default: true) to allow
disabling the macOS dock download progress indicator. When disabled,
the dock icon is not replaced with a custom NSView during downloads,
preserving the macOS Tahoe Clear/Dark/Tinted icon styling.

Root cause: Firefox's nsMacDockSupport sets NSDockTile.contentView
to a static bitmap + progress bar overlay, replacing the OS-managed
icon that macOS applies Clear styling to. After download completes,
macOS does not re-apply the styling.

Upstream: https://bugzilla.mozilla.org/show_bug.cgi?id=1997246
Closes zen-browser#12676
@baton-noir baton-noir force-pushed the fix/12676-dock-progress branch from 2711f6d to df68cb5 Compare March 22, 2026 14:38
@mr-cheffy
Copy link
Member

Sorry, but this is clearly AI generated

@mr-cheffy mr-cheffy closed this Mar 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S This PR changes 10-29 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Liquid Glass icon turns back to regular icon when the app is opened

2 participants