Index: Source/core/page/scrolling/ScrollingCoordinator.cpp |
diff --git a/Source/core/page/scrolling/ScrollingCoordinator.cpp b/Source/core/page/scrolling/ScrollingCoordinator.cpp |
index cd9e31fba2205fbb07a2894820a6b48d39c6a235..ae117773be2706396385ae016a77a1d7c9f846ad 100644 |
--- a/Source/core/page/scrolling/ScrollingCoordinator.cpp |
+++ b/Source/core/page/scrolling/ScrollingCoordinator.cpp |
@@ -240,7 +240,7 @@ void ScrollingCoordinator::scrollableAreaScrollbarLayerDidChange(ScrollableArea* |
if (!platformSupportsCoordinatedScrollbar) |
return; |
- bool isMainFrame = (scrollableArea == static_cast<ScrollableArea*>(m_page->mainFrame()->view())); |
+ bool isMainFrame = isForMainFrame(scrollableArea); |
if (!isMainFrame && platformSupportsMainFrameOnly) |
return; |
@@ -271,8 +271,10 @@ void ScrollingCoordinator::scrollableAreaScrollbarLayerDidChange(ScrollableArea* |
void ScrollingCoordinator::scrollableAreaScrollLayerDidChange(ScrollableArea* scrollableArea) |
{ |
GraphicsLayer* scrollLayer = scrollLayerForScrollableArea(scrollableArea); |
- if (scrollLayer) |
- scrollLayer->setScrollableArea(scrollableArea); |
+ if (scrollLayer) { |
+ bool isMainFrame = isForMainFrame(scrollableArea); |
+ scrollLayer->setScrollableArea(scrollableArea, isMainFrame); |
+ } |
WebLayer* webLayer = scrollingWebLayerForScrollableArea(scrollableArea); |
if (webLayer) { |
@@ -533,6 +535,11 @@ GraphicsLayer* ScrollingCoordinator::verticalScrollbarLayerForScrollableArea(Scr |
return scrollableArea->layerForVerticalScrollbar(); |
} |
+bool ScrollingCoordinator::isForMainFrame(ScrollableArea* scrollableArea) const |
+{ |
+ return scrollableArea == m_page->mainFrame()->view(); |
+} |
+ |
GraphicsLayer* ScrollingCoordinator::scrollLayerForFrameView(FrameView* frameView) |
{ |
Frame* frame = frameView->frame(); |