Title: [174846] trunk/Source/WebCore
Revision
174846
Author
[email protected]
Date
2014-10-17 15:30:43 -0700 (Fri, 17 Oct 2014)

Log Message

[iOS] Speculative fix for a crash under RenderLayerCompositor::updateScrollCoordinatedLayer()
https://bugs.webkit.org/show_bug.cgi?id=137837
rdar://problem/18545452

Reviewed by Tim Horton.

Crash logs suggest that an iframe's RenderView's RenderLayer's backing can be null
in a call to updateScrollCoordinatedLayer(), so add an assertion (to help find a reproducible case)
and a null check.

* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::attachScrollingNode):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (174845 => 174846)


--- trunk/Source/WebCore/ChangeLog	2014-10-17 22:28:53 UTC (rev 174845)
+++ trunk/Source/WebCore/ChangeLog	2014-10-17 22:30:43 UTC (rev 174846)
@@ -1,3 +1,18 @@
+2014-10-17  Simon Fraser  <[email protected]>
+
+        [iOS] Speculative fix for a crash under RenderLayerCompositor::updateScrollCoordinatedLayer()
+        https://bugs.webkit.org/show_bug.cgi?id=137837
+        rdar://problem/18545452
+
+        Reviewed by Tim Horton.
+
+        Crash logs suggest that an iframe's RenderView's RenderLayer's backing can be null
+        in a call to updateScrollCoordinatedLayer(), so add an assertion (to help find a reproducible case)
+        and a null check.
+
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::attachScrollingNode):
+
 2014-10-17  Andreas Kling  <[email protected]>
 
         Re-arrange parentheses for compilation purposes.

Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (174845 => 174846)


--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp	2014-10-17 22:28:53 UTC (rev 174845)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp	2014-10-17 22:30:43 UTC (rev 174846)
@@ -3711,6 +3711,10 @@
 {
     ScrollingCoordinator* scrollingCoordinator = this->scrollingCoordinator();
     RenderLayerBacking* backing = layer.backing();
+    // Crash logs suggest that backing can be null here, but we don't know how: rdar://problem/18545452.
+    ASSERT(backing);
+    if (!backing)
+        return 0;
 
     ScrollingNodeID nodeID = backing->scrollingNodeIDForRole(nodeType);
     if (!nodeID)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to