Title: [168792] branches/safari-538.34-branch/Source/WebCore

Diff

Modified: branches/safari-538.34-branch/Source/WebCore/ChangeLog (168791 => 168792)


--- branches/safari-538.34-branch/Source/WebCore/ChangeLog	2014-05-14 06:33:48 UTC (rev 168791)
+++ branches/safari-538.34-branch/Source/WebCore/ChangeLog	2014-05-14 06:35:35 UTC (rev 168792)
@@ -1,5 +1,28 @@
 2014-04-17  Lucas Forschler  <[email protected]>
 
+        Merge r168514
+
+    2014-05-08  Simon Fraser  <[email protected]>
+
+            Occasional crash under AsyncScrollingCoordinator::frameViewRootLayerDidChange() on history navigation
+            https://bugs.webkit.org/show_bug.cgi?id=132723
+
+            Reviewed by Sam Weinig.
+
+            Crash reports suggest that when we call AsyncScrollingCoordinator::frameViewRootLayerDidChange()
+            from HistoryController::restoreScrollPositionAndViewState(), the FrameView may not have a 
+            scrolling node ID, which suggests that either the FrameView doesn't have a RenderView,
+            or compositing hasn't happened yet.
+
+            So if we enter AsyncScrollingCoordinator::frameViewRootLayerDidChange()
+            and the FrameView has no scrollLayerID, just return. We'll fix things up
+            when compositing kicks in later.
+
+            * page/scrolling/AsyncScrollingCoordinator.cpp:
+            (WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
+
+2014-04-17  Lucas Forschler  <[email protected]>
+
         Merge r168508
 
     2014-05-08  Jer Noble  <[email protected]>

Modified: branches/safari-538.34-branch/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp (168791 => 168792)


--- branches/safari-538.34-branch/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp	2014-05-14 06:33:48 UTC (rev 168791)
+++ branches/safari-538.34-branch/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp	2014-05-14 06:35:35 UTC (rev 168792)
@@ -119,7 +119,12 @@
 
     if (!coordinatesScrollingForFrameView(frameView))
         return;
-
+    
+    // FIXME: In some navigation scenarios, the FrameView has no RenderView or that RenderView has not been composited.
+    // This needs cleaning up: https://bugs.webkit.org/show_bug.cgi?id=132724
+    if (!frameView->scrollLayerID())
+        return;
+    
     // If the root layer does not have a ScrollingStateNode, then we should create one.
     ensureRootStateNodeForFrameView(frameView);
     ASSERT(m_scrollingStateTree->rootStateNode());
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to