Chromium Code Reviews| Index: third_party/WebKit/Source/platform/graphics/GraphicsLayer.cpp |
| diff --git a/third_party/WebKit/Source/platform/graphics/GraphicsLayer.cpp b/third_party/WebKit/Source/platform/graphics/GraphicsLayer.cpp |
| index 2ba8104216248a8ce57dea7de4b3e321142a4e0f..89377fea074f6c16699764812283af77c2985adc 100644 |
| --- a/third_party/WebKit/Source/platform/graphics/GraphicsLayer.cpp |
| +++ b/third_party/WebKit/Source/platform/graphics/GraphicsLayer.cpp |
| @@ -1174,6 +1174,25 @@ void GraphicsLayer::removeLinkHighlight(LinkHighlight* linkHighlight) |
| updateChildList(); |
| } |
| +void GraphicsLayer::setMainThreadScrollingReasons(uint32_t reasons) |
| +{ |
| + if (!reasons && m_scrollableArea) { |
| + // There may be a scroll animation running on the main thread. Forward |
| + // the call to the ScrollAnimator that will clear the main thread |
| + // scrolling reasons after the animation is complete. |
| + m_scrollableArea->clearMainThreadScrollingReasons(true); |
| + return; |
| + } |
| + if (WebLayer* scrollLayer = platformLayer()) { |
| + // The ScrollAnimator will override this main thread scrolling reason if |
| + // it is added while the ScrollAnimator is scheduled to clear the main |
| + // thread scrolling reason (from call above). Thus, inform it to not |
| + // clear the main thread scrolling reasons. |
| + m_scrollableArea->clearMainThreadScrollingReasons(false); |
| + scrollLayer->addMainThreadScrollingReasons(reasons); |
|
ajuma
2016/02/04 15:05:48
Would it simplify things if the main thread scroll
|
| + } |
| +} |
| + |
| void GraphicsLayer::setScrollableArea(ScrollableArea* scrollableArea, bool isViewport) |
| { |
| if (m_scrollableArea == scrollableArea) |