Index: Source/core/page/scrolling/ScrollingCoordinator.cpp |
diff --git a/Source/core/page/scrolling/ScrollingCoordinator.cpp b/Source/core/page/scrolling/ScrollingCoordinator.cpp |
index 3d0f7af4f44e5c713cdce52835231134f8dc2777..4cc9e2fd06e1f30a61a9831bdb9a7eafbf757556 100644 |
--- a/Source/core/page/scrolling/ScrollingCoordinator.cpp |
+++ b/Source/core/page/scrolling/ScrollingCoordinator.cpp |
@@ -380,6 +380,7 @@ bool ScrollingCoordinator::scrollableAreaScrollLayerDidChange(ScrollableArea* sc |
setupScrollbarLayer(verticalScrollbarLayer, scrollbarLayer, webLayer, containerLayer); |
} |
+ scrollableArea->layerForScrollingDidChange(); |
return !!webLayer; |
} |
@@ -637,7 +638,11 @@ void ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread(MainTh |
{ |
if (WebLayer* scrollLayer = scrollingWebLayerForScrollableArea(m_page->mainFrame()->view())) { |
m_lastMainThreadScrollingReasons = reasons; |
- scrollLayer->setShouldScrollOnMainThread(reasons); |
+ bool shouldScrollOnMainThread = reasons; |
+ if (shouldScrollOnMainThread != scrollLayer->shouldScrollOnMainThread()) { |
+ scrollLayer->setShouldScrollOnMainThread(reasons); |
+ m_page->mainFrame()->view()->requiresMainThreadScrollingDidChange(); |
+ } |
} |
} |