| Summary: | REGRESSION (r260276): Transform `scale()` removes round corners declared with `border-radius` on a hover state in Safari | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | alehm | ||||||||||||
| Component: | Compositing | Assignee: | Cameron McCormack (:heycam) <heycam> | ||||||||||||
| Status: | RESOLVED FIXED | ||||||||||||||
| Severity: | Normal | CC: | alehm, brendan, changseok, darin, esprehn+autocc, ews-watchlist, fred.wang, glenn, heycam, kondapallykalyan, pdr, simon.fraser, webkit-bug-importer, zalan | ||||||||||||
| Priority: | P2 | Keywords: | InRadar | ||||||||||||
| Version: | Safari 14 | ||||||||||||||
| Hardware: | Mac | ||||||||||||||
| OS: | macOS 10.15 | ||||||||||||||
| See Also: | https://bugs.webkit.org/show_bug.cgi?id=140535 | ||||||||||||||
| Attachments: |
|
||||||||||||||
|
Description
alehm
2020-09-25 09:28:26 PDT
Created attachment 410052 [details]
Testcase
This is about clip rects and compositing. This is because PaintLayerFlag::PaintingOverflowContents is set so we incorrectly ignore ore the clip. ... and the transform makes a layer a clipRectsContext.rootLayer *** Bug 223507 has been marked as a duplicate of this bug. *** Created attachment 426891 [details]
Testcase without :hover
Just the bad sub-test.
Created attachment 428248 [details]
Patch
Created attachment 428348 [details]
Patch
Comment on attachment 428348 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=428348&action=review It’s possible that one of the more layout-savvy people wants to look this over too, but this looks obviously right to me. > Source/WebCore/rendering/RenderLayer.cpp:4495 > + // FIXME: Do we need to set the posClipRect to be affected by border-radius too? Seems like our job is to come up with a test case for this so we don’t have to leave a question behind in the code. > LayoutTests/fast/layers/overflow-scroll-transform-border-radius.html:5 > + <div id="e" style="width: 50px; height: 50px; background-color: blue;"></div> Not sure we need the id property here. (In reply to Darin Adler from comment #10) > > Source/WebCore/rendering/RenderLayer.cpp:4495 > > + // FIXME: Do we need to set the posClipRect to be affected by border-radius too? > > Seems like our job is to come up with a test case for this so we don’t have > to leave a question behind in the code. I tried and failed to make a test case that needed this the other day. Now trying the "assert if we look at this state and run the whole test suite" technique. Will remove the comment if nothing comes up. Created attachment 428569 [details]
Patch
Committed r277462 (237705@main): <https://commits.webkit.org/237705@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 428569 [details]. |