Bug 197731

Summary: Sometimes we hit ASSERT(!parentClipRect.isInfinite()) in RenderLayerBacking::computeParentGraphicsLayerRect
Product: WebKit Reporter: Simon Fraser (smfr) <simon.fraser>
Component: CompositingAssignee: Nobody <webkit-unassigned>
Status: RESOLVED DUPLICATE    
Severity: Normal CC: simon.fraser, zalan
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=126160

Description Simon Fraser (smfr) 2019-05-08 21:11:49 PDT
At webkit r245059, we sometimes assert at ASSERT(!parentClipRect.isInfinite()) in RenderLayerBacking::computeParentGraphicsLayerRect.

I can reproduce this in DumpRenderTree with accessibility/media-element.html
Comment 1 Simon Fraser (smfr) 2019-05-08 21:13:46 PDT
This code runs when we have a m_ancestorClippingLayer, and we make one based on the result of RenderLayerCompositor::clippedByAncestor(), which uses:

layer.backgroundClipRect(RenderLayer::ClipRectsContext(computeClipRoot, TemporaryClipRects)).isInfinite()

However, RenderLayerBacking::computeParentGraphicsLayerRect() is doing:

        ShouldRespectOverflowClip shouldRespectOverflowClip = compositedAncestor->isolatesCompositedBlending() ? RespectOverflowClip : IgnoreOverflowClip;
        RenderLayer::ClipRectsContext clipRectsContext(compositedAncestor, TemporaryClipRects, IgnoreOverlayScrollbarSize, shouldRespectOverflowClip);
        LayoutRect parentClipRect = m_owningLayer.backgroundClipRect(clipRectsContext).rect(); // FIXME: Incorrect for CSS regions.

so 'shouldRespectOverflowClip' differs.
Comment 2 Simon Fraser (smfr) 2019-05-08 21:21:06 PDT
That code came from https://trac.webkit.org/changeset/168314/webkit
Comment 3 Simon Fraser (smfr) 2019-05-08 21:24:14 PDT

*** This bug has been marked as a duplicate of bug 197695 ***