background clipping with border-radius is broken in WebRender
Categories
(Core :: Graphics: WebRender, defect)
Tracking
()
People
(Reporter: Oriol, Assigned: gw)
References
(Blocks 2 open bugs, Regression)
Details
(Keywords: correctness, parity-chrome, regression)
Attachments
(4 files)
Load testcase.
The cyan background is clipped with background-clip set to padding-box or content-box.
Therefore, it shouldn't overlap the magenta border.
But they can overlap when using border-radius.
This didn't happen before WebRender.
| Reporter | ||
Comment 1•3 years ago
|
||
| Reporter | ||
Comment 2•3 years ago
|
||
| Reporter | ||
Updated•3 years ago
|
Comment 3•3 years ago
|
||
KDE Wayland, Debian Testing, Intel
When the turquoise part became as misplaced as today:
MOZ_DISABLE_CONTENT_SANDBOX=1 mozregression --good 2017-10-10 --bad 2018-01-01 --pref gfx.webrender.all:true layers.acceleration.force-enabled:true gfx.webrender.enabled:true gfx.webrendest.enabled:true gfx.webrender.layers-free:true gfx.webrender.blob-images:true image.mem.shared:true layout.display-list.retain:false -a https://bug1830603.bmoattachments.org/attachment.cgi?id=9330872
2:49.71 INFO: Last good revision: 7c4579e705c4a3a3610183fe6f44affff3ad57ef (2017-12-19)
2:49.71 INFO: First bad revision: 62dd5404cf55e29412d5fff8fe9105076b1ca437 (2017-12-20)
2:49.71 INFO: Pushlog:
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=7c4579e705c4a3a3610183fe6f44affff3ad57ef&tochange=62dd5404cf55e29412d5fff8fe9105076b1ca437
autoland builds are gone.
Likely:
16240aca46cbdcc67b48e5f47bfc92ef852a3e70 Kartikaya Gupta — Bug 1424631 - Update webrender to commit 1142dfc557c319119a5117450718c5b67a93cb9f. r=jrmuizel
When the pink border temporarily became darker at 4 overlapping places:
MOZ_DISABLE_CONTENT_SANDBOX=1 mozregression --good 2017-01-01 --bad 2018-01-01 --pref gfx.webrender.all:true layers.acceleration.force-enabled:true gfx.webrender.enabled:true gfx.webrendest.enabled:true gfx.webrender.layers-free:true gfx.webrender.blob-images:true image.mem.shared:true layout.display-list.retain:false -a https://bug1830603.bmoattachments.org/attachment.cgi?id=9330872
6:14.18 INFO: Last good revision: 8e98dab5054dd093a37ba20c62cf0523e484cfbd (2017-05-19)
6:14.18 INFO: First bad revision: 8d60d0f825110cfb646ac31dc16dc011708bcf34 (2017-05-20)
6:14.18 INFO: Pushlog:
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=8e98dab5054dd093a37ba20c62cf0523e484cfbd&tochange=8d60d0f825110cfb646ac31dc16dc011708bcf34
Comment 4•3 years ago
|
||
:kats, since you are the author of the regressor, bug 1424631, could you take a look?
For more information, please visit BugBot documentation.
Updated•3 years ago
|
Updated•3 years ago
|
| Assignee | ||
Updated•3 years ago
|
Comment 5•3 years ago
|
||
Set release status flags based on info from the regressing bug 1424631
Updated•3 years ago
|
Updated•3 years ago
|
| Assignee | ||
Updated•2 years ago
|
| Assignee | ||
Comment 6•10 days ago
|
||
background-clip: padding-box|content-box clips to the inner border edge, which
css-backgrounds-3 4.4 defines as concentric with the outer edge with radii of
outer-minus-border-width. Those can exceed the padding box and still describe a
valid shape: the arc centre falls outside the rect and the arc is cut by the far
edges. clamped_radius() scaled them down, making the clip larger than the
border's inner curve, so the background spilled under the border and showed
through wherever it was translucent.
Only constrain an edge when both of its corners are curved, which is the only
way two arcs can overlap each other.
This can't be a blanket rule. A box-shadow's spread-adjusted radii are a plain
rounded rect and do take the css-backgrounds-3 5.5 reduction; Chrome agrees on
both counts, and the two cases can't be told apart from the radii alone. So
zero-blur box-shadows, which desugar into rounded-rect clips, are normalised at
the producer instead.
Updated•10 days ago
|
Comment 8•9 days ago
|
||
| bugherder | ||
Updated•8 days ago
|
Description
•