Open
Bug 1400779
Opened 7 years ago
Updated 2 years ago
currentColor as border-color may leave visual artifacts around the border
Categories
(Core :: Web Painting, defect, P3)
Tracking
()
NEW
People
(Reporter: Ceremony, Unassigned)
References
Details
(Keywords: regression)
Attachments
(2 files)
User Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0 Build ID: 20170914024831 Steps to reproduce: Take any DOM element and apply the following styling (see currentColor.html): background: black; border: 5px solid currentColor; color: white; width: 100px; height: 100px; border-radius: 100%; Actual results: Around the white border, some of the black background will shine through. Expected results: The element should be visually identical to an element with the border-color explicitly set to white, without any of the background-color around the border.
Reporter | ||
Comment 1•7 years ago
|
||
Comment 2•7 years ago
|
||
happens only with border with radius (maybe we're using different bezier control points for background and border in some case...?) moving to Core :: Layout for now (might be underlying graphics part tho)
Status: UNCONFIRMED → NEW
Component: Untriaged → Layout
Ever confirmed: true
Product: Firefox → Core
Comment 3•7 years ago
|
||
apparently it's from bug 1266621, https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=ac1c4519a19a49e45857d4355bea46b4e1a5fe04&tochange=022b1fcfe8337d5bccf0e341626ab0a4cb32533e but I'm not sure whether that actually regressed or it discovered pre-existing issue, since it just modifies only the color, not the area. xidorn, do you have any ideas?
Component: Layout → CSS Parsing and Computation
Flags: needinfo?(xidorn+moz)
Keywords: regression
See Also: → 1266621
Comment 4•7 years ago
|
||
So this is a pre-existing issue. Before we implement the new currentcolor support, there is another keyword for the currentcolor behavior these days, which is -moz-use-text-color. (Supporting of this was dropped at the same time in bug 1266621.) If you change the style of #bad to #bad { border-color: currentColor; border-color: -moz-use-text-color; color: white; } this issue can be seen from earlier version, back to at least Firefox 5. So this is an old painting issue revealed by a style system change. Looking at the code, I think the difference here is because of the check in IsOpaqueBorderEdge function [1] which returns false when foreground color involves, and consequently we use different code path to clip the content. Similar issue can be seen on the #good if you change the style slightly to something like #good { border-color: white; border-left-color: rgba(255,255,255,.95); } which kinda confirms my theory (related IsOpaqueBorderEdge) above. [1] https://searchfox.org/mozilla-central/rev/1c13d5cf85f904afb8976c02a80daa252b893fca/layout/painting/nsCSSRendering.cpp#2053-2057
Component: CSS Parsing and Computation → Layout: Web Painting
Flags: needinfo?(xidorn+moz)
Updated•6 years ago
|
Priority: -- → P3
Updated•2 years ago
|
Severity: normal → S3
You need to log in
before you can comment on or make changes to this bug.
Description
•