Title: [245376] branches/safari-608.1.24-branch/Source/WebCore
- Revision
- 245376
- Author
- [email protected]
- Date
- 2019-05-15 22:43:00 -0700 (Wed, 15 May 2019)
Log Message
Cherry-pick r245147. rdar://problem/50621407
fast/hidpi/video-controls-in-hidpi.html sometimes asserts in WK1
https://bugs.webkit.org/show_bug.cgi?id=197695
Reviewed by Zalan Bujtas.
With the backing-sharing changes that landed in r245058, some WebKit1 tests with media controls asserted in
RenderLayerBacking::computeParentGraphicsLayerRect() because a layer would have a m_ancestorClippingLayer,
but backgroundClipRect() would return an infinite rect.
This happened when a layer tree change caused the layer's compositing ancestor to no longer isolate
composited blending (which affects the behavior of RenderLayerCompositor:clippedByAncestor()), but we failed
to mark its composited children as needing the configuration update which would eliminate their m_ancestorClippingLayers.
The fix is to call setChildrenNeedCompositingGeometryUpdate() when isolatesCompositedBlending changes. We don't haev
setChildrenNeedCompositingConfigurationUpdate(), but setChildrenNeedCompositingGeometryUpdate() has the desired side-effect.
I was unable to make a standalone test case for this, but the code is exercised by media control tests.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@245147 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Modified Paths
Diff
Modified: branches/safari-608.1.24-branch/Source/WebCore/ChangeLog (245375 => 245376)
--- branches/safari-608.1.24-branch/Source/WebCore/ChangeLog 2019-05-16 05:41:08 UTC (rev 245375)
+++ branches/safari-608.1.24-branch/Source/WebCore/ChangeLog 2019-05-16 05:43:00 UTC (rev 245376)
@@ -1,3 +1,54 @@
+2019-05-15 Kocsen Chung <[email protected]>
+
+ Cherry-pick r245147. rdar://problem/50621407
+
+ fast/hidpi/video-controls-in-hidpi.html sometimes asserts in WK1
+ https://bugs.webkit.org/show_bug.cgi?id=197695
+
+ Reviewed by Zalan Bujtas.
+
+ With the backing-sharing changes that landed in r245058, some WebKit1 tests with media controls asserted in
+ RenderLayerBacking::computeParentGraphicsLayerRect() because a layer would have a m_ancestorClippingLayer,
+ but backgroundClipRect() would return an infinite rect.
+
+ This happened when a layer tree change caused the layer's compositing ancestor to no longer isolate
+ composited blending (which affects the behavior of RenderLayerCompositor:clippedByAncestor()), but we failed
+ to mark its composited children as needing the configuration update which would eliminate their m_ancestorClippingLayers.
+
+ The fix is to call setChildrenNeedCompositingGeometryUpdate() when isolatesCompositedBlending changes. We don't haev
+ setChildrenNeedCompositingConfigurationUpdate(), but setChildrenNeedCompositingGeometryUpdate() has the desired side-effect.
+
+ I was unable to make a standalone test case for this, but the code is exercised by media control tests.
+
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::computeCompositingRequirements):
+
+
+ git-svn-id: https://svn.webkit.org/repository/webkit/trunk@245147 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+ 2019-05-09 Simon Fraser <[email protected]>
+
+ fast/hidpi/video-controls-in-hidpi.html sometimes asserts in WK1
+ https://bugs.webkit.org/show_bug.cgi?id=197695
+
+ Reviewed by Zalan Bujtas.
+
+ With the backing-sharing changes that landed in r245058, some WebKit1 tests with media controls asserted in
+ RenderLayerBacking::computeParentGraphicsLayerRect() because a layer would have a m_ancestorClippingLayer,
+ but backgroundClipRect() would return an infinite rect.
+
+ This happened when a layer tree change caused the layer's compositing ancestor to no longer isolate
+ composited blending (which affects the behavior of RenderLayerCompositor:clippedByAncestor()), but we failed
+ to mark its composited children as needing the configuration update which would eliminate their m_ancestorClippingLayers.
+
+ The fix is to call setChildrenNeedCompositingGeometryUpdate() when isolatesCompositedBlending changes. We don't haev
+ setChildrenNeedCompositingConfigurationUpdate(), but setChildrenNeedCompositingGeometryUpdate() has the desired side-effect.
+
+ I was unable to make a standalone test case for this, but the code is exercised by media control tests.
+
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::computeCompositingRequirements):
+
2019-05-15 Alan Coon <[email protected]>
Revert r245025. rdar://problem/50753129
Modified: branches/safari-608.1.24-branch/Source/WebCore/rendering/RenderLayerCompositor.cpp (245375 => 245376)
--- branches/safari-608.1.24-branch/Source/WebCore/rendering/RenderLayerCompositor.cpp 2019-05-16 05:41:08 UTC (rev 245375)
+++ branches/safari-608.1.24-branch/Source/WebCore/rendering/RenderLayerCompositor.cpp 2019-05-16 05:43:00 UTC (rev 245376)
@@ -955,7 +955,13 @@
addToOverlapMap(overlapMap, layer, layerExtent);
#if ENABLE(CSS_COMPOSITING)
+ bool isolatedCompositedBlending = layer.isolatesCompositedBlending();
layer.setHasNotIsolatedCompositedBlendingDescendants(childState.hasNotIsolatedCompositedBlendingDescendants);
+ if (layer.isolatesCompositedBlending() != isolatedCompositedBlending) {
+ // isolatedCompositedBlending affects the result of clippedByAncestor().
+ layer.setChildrenNeedCompositingGeometryUpdate();
+ }
+
ASSERT(!layer.hasNotIsolatedCompositedBlendingDescendants() || layer.hasNotIsolatedBlendingDescendants());
#endif
// Now check for reasons to become composited that depend on the state of descendant layers.
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes