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