Closed Bug 1585898 Opened 3 years ago Closed 3 years ago

Tab bar background becomes light instead of dark on macOS


(Core :: Graphics: WebRender, defect, P2)




Tracking Status
firefox-esr60 --- unaffected
firefox-esr68 --- unaffected
firefox67 --- unaffected
firefox68 --- unaffected
firefox69 --- unaffected
firefox70 --- unaffected
firefox71 --- verified


(Reporter: djc, Assigned: gw)




(Keywords: nightly-community, regression)


(2 files)

In today's Nightly (20191002214349) on macOS, I'm seeing that WebRender will give the tab bar background a light color (rather than the default, which is dark, I think?), making tab titles pretty much unreadable. Did not see this before, so I'm guessing it is a recent regression (I didn't use this laptop yesterday, but did use it on Tuesday).

Radeon Pro 555X 4 GB
Intel UHD Graphics 630 1536 MB

(15" 2018 MacBook Pro, with an external non-HiDPI screen attached.)

Attached video

As the video shows, it seems to flip as I click through my tabs.

I have macOS Appearance set to Light and the Firefox theme set to Default.

12:16.77 INFO: Last good revision: 04e8766a29242d4deae31b5b04e6ac61ebf61ffd
12:16.77 INFO: First bad revision: 9b42bdc4889fe7782df9b2a0aa990ed5e62cb04c
12:16.77 INFO: Pushlog:

Assignee: nobody → gwatson

I can reproduce this locally. I wonder if it might be related to the Clear rect primitive that gets used on mac, being interfered with by picture cache slices. If we only see the bug on mac, that seems likely to be related.

I haven't confirmed, but the explanation above seems likely.

The Clear primitive won't do the intended job, since there is likely a fixed position background slice that gets drawn separately from it.

I think I know how to fix this - I'll add support for promoting primitive clusters with Clear primitives to be considered a picture cache slice - actually these will just collapse into drawing a rectangle primitive with the right blend mode.

I'll work on a patch for this tomorrow morning. In the meantime, you can work around it by either temporarily disabling WR (gfx.webrender.all pref) or picture caching (gfx.webrender.picture-caching pref). Both of those preference changes require a restart to work.

OS: Unspecified → macOS
Regressed by: 1584439
Hardware: Unspecified → Desktop
Priority: -- → P2

Promote clear primitives to be picture cache slices that can
be drawn during the composite step. Without this, the clear
primitive is not correct since it only operates on the slice
it is assigned to, not the entire background before it.

I'm not a regular mac user, but from what I can tell this patch makes the tab bar look correct (the same as non-WR) in both Light and Dark MacOS themes. It's not a great fix, but it should do for now, until I make a proper fix next week (when I'll be working on the picture caching backdrop code anyway).

Pushed by
Fix broken tab bar with picture caching on mac. r=mstange
Blocks: 1586137
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla71
Duplicate of this bug: 1586209
Duplicate of this bug: 1586045
Duplicate of this bug: 1586164
Flags: qe-verify+


I can confirm that this issue is fixed in Fx 73.0.3 build.

Flags: qe-verify+
Has Regression Range: --- → yes
You need to log in before you can comment on or make changes to this bug.