| Index: Source/core/page/scrolling/ScrollingCoordinator.cpp
|
| diff --git a/Source/core/page/scrolling/ScrollingCoordinator.cpp b/Source/core/page/scrolling/ScrollingCoordinator.cpp
|
| index a1b1ee214807db01d3a9195c435bbbd7937d4147..372669a22ddc35c6152b0f043a545cbe1585eefe 100644
|
| --- a/Source/core/page/scrolling/ScrollingCoordinator.cpp
|
| +++ b/Source/core/page/scrolling/ScrollingCoordinator.cpp
|
| @@ -152,11 +152,10 @@ void ScrollingCoordinator::updateAfterCompositingChange()
|
| m_touchEventTargetRectsAreDirty = false;
|
| }
|
|
|
| - FrameView* frameView = m_page->mainFrame()->view();
|
| - bool frameIsScrollable = frameView && frameView->isScrollable();
|
| - if (m_wasFrameScrollable != frameIsScrollable)
|
| + if (frameViewIsScrollableIsDirty())
|
| updateShouldUpdateScrollLayerPositionOnMainThread();
|
| - m_wasFrameScrollable = frameIsScrollable;
|
| +
|
| + updateMainFrameIsScrollable();
|
|
|
| const FrameTree& tree = m_page->mainFrame()->tree();
|
| for (const Frame* child = tree.firstChild(); child; child = child->tree().nextSibling()) {
|
| @@ -929,4 +928,17 @@ bool ScrollingCoordinator::frameViewIsScrollableIsDirty() const
|
| return frameIsScrollable != m_wasFrameScrollable;
|
| }
|
|
|
| +void ScrollingCoordinator::updateMainFrameIsScrollable()
|
| +{
|
| + FrameView* frameView = m_page->mainFrame()->view();
|
| + bool frameIsScrollable = frameView && frameView->isScrollable();
|
| + m_wasFrameScrollable = frameIsScrollable;
|
| +
|
| + if (!frameView)
|
| + return;
|
| +
|
| + if (WebLayer* scrollingWebLayer = scrollingWebLayerForScrollableArea(frameView))
|
| + scrollingWebLayer->setScrollable(frameIsScrollable);
|
| +}
|
| +
|
| } // namespace WebCore
|
|
|