Title: [168514] trunk/Source/WebCore
Revision
168514
Author
simon.fra...@apple.com
Date
2014-05-08 19:26:22 -0700 (Thu, 08 May 2014)

Log Message

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):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (168513 => 168514)


--- trunk/Source/WebCore/ChangeLog	2014-05-09 01:08:30 UTC (rev 168513)
+++ trunk/Source/WebCore/ChangeLog	2014-05-09 02:26:22 UTC (rev 168514)
@@ -1,5 +1,24 @@
 2014-05-08  Simon Fraser  <simon.fra...@apple.com>
 
+        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-05-08  Simon Fraser  <simon.fra...@apple.com>
+
         [iOS WK2] Bottom-relative position:fixed elements are misplaced on page load
         https://bugs.webkit.org/show_bug.cgi?id=132719
         <rdar://problem/16860837>

Modified: trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp (168513 => 168514)


--- trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp	2014-05-09 01:08:30 UTC (rev 168513)
+++ trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp	2014-05-09 02:26:22 UTC (rev 168514)
@@ -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
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to