Title: [243908] trunk/Source/WebCore
- Revision
- 243908
- Author
- [email protected]
- Date
- 2019-04-04 14:47:29 -0700 (Thu, 04 Apr 2019)
Log Message
Fix rare crash under collectRelatedCoordinatedScrollingNodes()
https://bugs.webkit.org/show_bug.cgi?id=196610
rdar://problem/49595426
Reviewed by Zalan Bujtas.
hasCompositedScrollableOverflow() doesn't check whether a layer is composited (it has
to report the right status before layers have been created), so collectRelatedCoordinatedScrollingNodes()
needs to check whether there's backing.
* rendering/RenderLayerCompositor.cpp:
(WebCore::collectRelatedCoordinatedScrollingNodes):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (243907 => 243908)
--- trunk/Source/WebCore/ChangeLog 2019-04-04 21:39:16 UTC (rev 243907)
+++ trunk/Source/WebCore/ChangeLog 2019-04-04 21:47:29 UTC (rev 243908)
@@ -1,5 +1,20 @@
2019-04-04 Simon Fraser <[email protected]>
+ Fix rare crash under collectRelatedCoordinatedScrollingNodes()
+ https://bugs.webkit.org/show_bug.cgi?id=196610
+ rdar://problem/49595426
+
+ Reviewed by Zalan Bujtas.
+
+ hasCompositedScrollableOverflow() doesn't check whether a layer is composited (it has
+ to report the right status before layers have been created), so collectRelatedCoordinatedScrollingNodes()
+ needs to check whether there's backing.
+
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::collectRelatedCoordinatedScrollingNodes):
+
+2019-04-04 Simon Fraser <[email protected]>
+
Move "inProgrammaticScroll" down to ScrollableArea
https://bugs.webkit.org/show_bug.cgi?id=196614
Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (243907 => 243908)
--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp 2019-04-04 21:39:16 UTC (rev 243907)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp 2019-04-04 21:47:29 UTC (rev 243908)
@@ -2987,11 +2987,11 @@
auto* compositedAncestor = layer.ancestorCompositingLayer();
for (const auto* currLayer = layer.parent(); currLayer != compositedAncestor; currLayer = currLayer->parent()) {
if (currLayer->hasCompositedScrollableOverflow()) {
- auto scrollingNodeID = currLayer->backing()->scrollingNodeIDForRole(ScrollCoordinationRole::Scrolling);
+ auto scrollingNodeID = currLayer->isComposited() ? currLayer->backing()->scrollingNodeIDForRole(ScrollCoordinationRole::Scrolling) : 0;
if (scrollingNodeID)
overflowNodeData.append(scrollingNodeID);
else
- LOG(Scrolling, "Layer %p doesn't have scrolling node ID yet", &layer);
+ LOG(Scrolling, "Layer %p isn't composited or doesn't have scrolling node ID yet", &layer);
}
}
break;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes