Closed Bug 1496540 Opened 2 years ago Closed 2 years ago
.html on Web Render
47 bytes, text/x-phabricator-request
|Details | Review|
I think this failure warrants some investigation before we ride the trains.
Priority: -- → P3
The problem here is that the top-right corner overlaps with the top-left corner and the left edge. (And equivalent for the bottom-right corner.) In webrender we just blit the segments over eachother. Because the colour is translucent blue this causes overlapping portions to look more blue. And also the left-side's rectangular corners fill pixels that lie outside of the right-side's curve, hence the funny shape. Note that in gecko we do not have this problem because, as the border is a single colour, we simply fill a path. However, if we make the different edges have different colours (e.g. "border-color: rgba(255, 0, 0, 0.5) rgba(0, 255, 0, 0.5) rgba(0, 0, 255, 0.5);") we do indeed see the same issue. Glenn, Matt, any suggestions on how to fix this?
I can't find anything particular in the specs about how this should be handled, but it looks like blink/WebKit matches non-WR behaviour here. Given that, and that we have specific tests for this, I do think we should fix this within WR. gw is probably the right person to decide how to fix this. Maybe reduce the length of some of the edges such that they touch instead of overlap?
I haven't taken a really detailed look into it - but reducing the sizes of the edges to enforce no overlap sounds like it'd probably be the best solution, if feasible.
In this example we can reduce the width of the top-right and bottom-right corners, so that they no longer overlap with the left corners or edge. That would fix the overdraw. But we still need something to shape the top-left and bottom-left corners to the curve of the top-right and bottom-right. I don't think it's possible any other way: eg Making the top-left and bottom-left have width=0 would fix the shape. But you'd still get overdraw where the top-right corner overlaps with the left edge. If you then shrunk the left-edge you'd have a gap.
Pushed by firstname.lastname@example.org: https://hg.mozilla.org/integration/autoland/rev/f57d14800cbb Handle overlapping border corners in webrender r=gw
Backout by email@example.com: https://hg.mozilla.org/integration/autoland/rev/b1df68082c2f Backed out changeset f57d14800cbb for wrench failures in border-with-rounded-clip.yaml and transforms/border-zoom.yaml
Pushed by firstname.lastname@example.org: https://hg.mozilla.org/integration/autoland/rev/b04c7dcb1a43 Handle overlapping border corners in webrender r=gw
You need to log in before you can comment on or make changes to this bug.