RESOLVED FIXED 238648
intersectsWithAncestor doesn't take fragmented boxes into account
https://bugs.webkit.org/show_bug.cgi?id=238648
Summary intersectsWithAncestor doesn't take fragmented boxes into account
Matt Woodrow
Reported 2022-03-31 19:49:40 PDT
intersectsWithAncestor uses overlapBounds(), which doesn't take into account the boxes of other fragments, and can incorrectly determine that we don't intersect if only the first fragment intersects. <rdar://90589355>
Attachments
Patch (5.40 KB, patch)
2022-03-31 19:53 PDT, Matt Woodrow
no flags
Matt Woodrow
Comment 1 2022-03-31 19:53:14 PDT
Simon Fraser (smfr)
Comment 2 2022-03-31 20:07:06 PDT
Comment on attachment 456311 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=456311&action=review > Source/WebCore/rendering/RenderLayerBacking.cpp:2813 > - auto overlap = child.overlapBounds(); > - overlap.moveBy(offset); > + auto overlap = child.boundingBox(&ancestor, child.offsetFromAncestor(&ancestor), RenderLayer::UseFragmentBoxesExcludingCompositing); Is child.overlapBounds() just wrong in this case? That implies there are other cases where overlap is broken?
Matt Woodrow
Comment 3 2022-04-03 13:26:17 PDT
Comment on attachment 456311 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=456311&action=review >> Source/WebCore/rendering/RenderLayerBacking.cpp:2813 >> + auto overlap = child.boundingBox(&ancestor, child.offsetFromAncestor(&ancestor), RenderLayer::UseFragmentBoxesExcludingCompositing); > > Is child.overlapBounds() just wrong in this case? That implies there are other cases where overlap is broken? It looks like the only other caller overlapBounds is within RenderLayerCompositor, and RenderLayerCompositor::canBeComposited returns false for RenderFragmentedFlow, so I think it shouldn't ever be called for this case.
EWS
Comment 4 2022-04-04 15:05:37 PDT
Committed r292350 (249215@main): <https://commits.webkit.org/249215@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 456311 [details].
Note You need to log in before you can comment on or make changes to this bug.