Skip to content

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

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#12875
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

@baton-noir baton-noir requested a review from mr-cheffy as a code owner March 22, 2026 11:46
@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 closed this Mar 22, 2026
@baton-noir baton-noir force-pushed the fix/12676-dock-progress branch from 0cd0b30 to 3502e2d Compare March 22, 2026 12:24
@dosubot dosubot bot added size:XXL This PR changes 1000+ lines, ignoring generated files. and removed size:S This PR changes 10-29 lines, ignoring generated files. labels Mar 22, 2026
@baton-noir
Copy link
Author

Superseded by #12877 (this PR was inadvertently closed during a commit email fix and couldn't be reopened).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL This PR changes 1000+ 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

1 participant