WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
197695
fast/hidpi/video-controls-in-hidpi.html sometimes asserts in WK1
https://bugs.webkit.org/show_bug.cgi?id=197695
Summary
fast/hidpi/video-controls-in-hidpi.html sometimes asserts in WK1
Simon Fraser (smfr)
Reported
2019-05-08 10:17:52 PDT
With the patch from
bug 197561
, fast/hidpi/video-controls-in-hidpi.html sometimes asserts on EWS (I have not been able to reproduce).
Attachments
Patch
(2.94 KB, patch)
2019-05-09 07:14 PDT
,
Simon Fraser (smfr)
no flags
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Simon Fraser (smfr)
Comment 1
2019-05-08 10:18:25 PDT
The assertion is: ASSERT(!parentClipRect.isInfinite());
Simon Fraser (smfr)
Comment 2
2019-05-08 21:24:07 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.
Simon Fraser (smfr)
Comment 3
2019-05-08 21:24:14 PDT
***
Bug 197731
has been marked as a duplicate of this bug. ***
Simon Fraser (smfr)
Comment 4
2019-05-08 21:24:37 PDT
That code came from
https://trac.webkit.org/changeset/168314/webkit
Simon Fraser (smfr)
Comment 5
2019-05-08 21:49:53 PDT
accessibility/media-element.html also hits this
Simon Fraser (smfr)
Comment 6
2019-05-08 22:37:34 PDT
One thing to note here is that normally we don't have an m_ancestorLayer if our clipping ancestor is a stacking context, but with a composited mix-blend-mode child, RenderLayerCompositor::clippedByAncestor() follows a different code path, and can give us an m_ancestorClippingLayer. I don't know why.
Simon Fraser (smfr)
Comment 7
2019-05-08 22:48:00 PDT
This bug is about maintenance of the isolatesCompositedBlending() bit on RenderLayer vs. the maintenance of m_ancestorClippingLayer. If compositedAncestor->isolatesCompositedBlending() was true at the last compositing update, we made a m_ancestorClippingLayer. At some point another composited sibling with blending became non-composited, so compositedAncestor->isolatesCompositedBlending() is no longer true but we didn't remove the m_ancestorClippingLayer.
Simon Fraser (smfr)
Comment 8
2019-05-08 22:50:10 PDT
isolatesCompositedBlending depends on both m_hasNotIsolatedCompositedBlendingDescendants and isCSSStackingContext
Simon Fraser (smfr)
Comment 9
2019-05-08 23:07:29 PDT
The fix is something like: index 15479365f2edf9776a01e4f4e70c792921824975..8532ac6c3acb2df5eb75a5d6b43981d2cc5c4eaa 100644 --- a/Source/WebCore/rendering/RenderLayerCompositor.cpp +++ b/Source/WebCore/rendering/RenderLayerCompositor.cpp @@ -1022,8 +1022,13 @@ void RenderLayerCompositor::computeCompositingRequirements(RenderLayer* ancestor addToOverlapMap(overlapMap, layer, layerExtent); #if ENABLE(CSS_COMPOSITING) + bool isolatedCompositedBlending = layer.isolatesCompositedBlending(); layer.setHasNotIsolatedCompositedBlendingDescendants(childState.hasNotIsolatedCompositedBlendingDescendants); ASSERT(!layer.hasNotIsolatedCompositedBlendingDescendants() || layer.hasNotIsolatedBlendingDescendants()); + if (layer.isolatesCompositedBlending() != isolatedCompositedBlending) { + // isolatedCompositedBlending affects the answer to clippedByAncestor(). + layer.setChildrenNeedCompositingGeometryUpdate(); + } #endif // Now check for reasons to become composited that depend on the state of descendant layers. RenderLayer::IndirectCompositingReason indirectCompositingReason;
Simon Fraser (smfr)
Comment 10
2019-05-09 07:14:29 PDT
Created
attachment 369491
[details]
Patch
Radar WebKit Bug Importer
Comment 11
2019-05-09 07:38:10 PDT
<
rdar://problem/50621407
>
WebKit Commit Bot
Comment 12
2019-05-09 11:26:30 PDT
Comment on
attachment 369491
[details]
Patch Clearing flags on attachment: 369491 Committed
r245147
: <
https://trac.webkit.org/changeset/245147
>
WebKit Commit Bot
Comment 13
2019-05-09 11:26:32 PDT
All reviewed patches have been landed. Closing bug.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug