Bug 219829

Summary: REGRESSION (r259137): Clip-path rendering regression when element contains transformed child
Product: WebKit Reporter: Simon Fraser (smfr) <simon.fraser>
Component: Layout and RenderingAssignee: Simon Fraser (smfr) <simon.fraser>
Status: RESOLVED FIXED    
Severity: Normal CC: bfulgham, changseok, esprehn+autocc, ews-watchlist, fred.wang, glenn, kondapallykalyan, pdr, sabouhallawa, simon.fraser, webkit-bug-importer, zalan
Priority: P2 Keywords: InRadar
Version: Safari Technology Preview   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Testcase
none
Patch sabouhallawa: review+

Simon Fraser (smfr)
Reported 2020-12-12 13:43:56 PST
Created attachment 416107 [details] Testcase r259137 broke clip-path rendering in some cases.
Attachments
Testcase (1.78 KB, text/html)
2020-12-12 13:43 PST, Simon Fraser (smfr)
no flags
Patch (8.08 KB, patch)
2020-12-12 14:43 PST, Simon Fraser (smfr)
sabouhallawa: review+
Simon Fraser (smfr)
Comment 1 2020-12-12 13:44:13 PST
Simon Fraser (smfr)
Comment 2 2020-12-12 14:43:59 PST
Alexey Proskuryakov
Comment 3 2020-12-12 17:00:31 PST
How is this different from bug 215458?
Simon Fraser (smfr)
Comment 4 2020-12-12 17:53:41 PST
*** Bug 215458 has been marked as a duplicate of this bug. ***
Said Abou-Hallawa
Comment 5 2020-12-14 12:03:48 PST
Comment on attachment 416110 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=416110&action=review > Source/WebCore/rendering/RenderLayer.cpp:-4514 > - if (!rootRelativeBounds) > - rootRelativeBounds = calculateLayerBounds(paintingInfo.rootLayer, offsetFromRoot, { }); > - RenderLayer::setupFilters() has similar calculations. And it looks we used to call calculateLayerBounds() only once if both clip-path and filter are applied. Now we are going to call calculateLayerBounds() twice but with different arguments. Do we need to do the same changes in RenderLayer::setupFilters()? Do we need to remove the variable "Optional<LayoutRect> rootRelativeBounds;" from RenderLayer::paintLayerContents() since it won't be shared anymore between the clip-path and the filter. > LayoutTests/css3/masking/clip-path-overflow-hidden-bounds-expected.html:22 > + <path d="M0,0 L100,0 L100,100 L0,100 L0,0 z"/> Weird indentation. > LayoutTests/css3/masking/clip-path-overflow-hidden-bounds.html:29 > + <path d="M0,0 L100,0 L100,100 L0,100 L0,0 z"/> Ditto.
Simon Fraser (smfr)
Comment 6 2020-12-15 10:17:16 PST
Note You need to log in before you can comment on or make changes to this bug.