Closed Bug 1401037 Opened 7 years ago Closed 7 years ago

Favicon colors change when hovering over tabs

Categories

(Core :: Graphics: Layers, defect)

All
macOS
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla57
Tracking Status
firefox-esr52 --- unaffected
firefox55 --- unaffected
firefox56 --- unaffected
firefox57 --- fixed

People

(Reporter: mstange, Assigned: mstange)

References

Details

(Keywords: regression)

Attachments

(2 files)

Attached image white transparent circle image (deleted) —
Steps to reproduce:

0. Be on Mac and use the default theme with vibrancy in the tab bar.
1. Open a new window and move / resize it so that its tab bar is on top of something bright.
2. Load the attached image in a tab of that window.
3. Pin the tab with the image.
4. Open two more tabs.
5. Move your mouse over the second tab (the unselected tab in the middle, next to the pinned tab.)

Observe how the white circle changes its brightness as you hover the tab.
I think this happens because we're using a component alpha layer for the tab bar. But the tab bar is over transparency, and component alpha compositing into transparent pixels gives incorrect results. We should be disabling component alpha for layers in the browser chrome; we have code that's supposed to take care of that (e.g. nsDisplayListBuilder::NeedToForceTransparentSurfaceForItem) but apparently it's not taking effect.
Depends on: 1389476
This seems to be a regression from bug 1359584.
Blocks: 1359584
Keywords: regression
Comment on attachment 8909959 [details]
Bug 1401037 - Propagate nsDisplayList::mForceTransparentSurface to the parent list when recursing into flattened items.

https://reviewboard.mozilla.org/r/181438/#review186692
Attachment #8909959 - Flags: review?(mikokm) → review+
Can we combine this propagation with the one later in the code?
http://searchfox.org/mozilla-central/rev/1c13d5cf85f904afb8976c02a80daa252b893fca/layout/painting/FrameLayerBuilder.cpp#4511
Pushed by mstange@themasta.com:
https://hg.mozilla.org/integration/autoland/rev/847a0c0530a5
Propagate nsDisplayList::mForceTransparentSurface to the parent list when recursing into flattened items. r=miko
Too late! :)

Hmm, I don't think we can, at least not easily. This flag gets set on the list once we encounter an item that requires a transparent surface, so the propagation needs to happen *after* we've iterated over all the items in the sublist.
https://hg.mozilla.org/mozilla-central/rev/847a0c0530a5
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla57
I can confirm that this fixed the favicon flickering for me when hovering over the tabs as showed here:
https://bugzilla.mozilla.org/show_bug.cgi?id=1387296#c21
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: