| Index: third_party/WebKit/Source/core/page/scrolling/TopDocumentRootScrollerController.cpp
|
| diff --git a/third_party/WebKit/Source/core/page/scrolling/TopDocumentRootScrollerController.cpp b/third_party/WebKit/Source/core/page/scrolling/TopDocumentRootScrollerController.cpp
|
| index 270b7c55e2408516c9bd21a83341f8c5482ecfc3..6121600b8f3157dff3850815c54fd395d057bb71 100644
|
| --- a/third_party/WebKit/Source/core/page/scrolling/TopDocumentRootScrollerController.cpp
|
| +++ b/third_party/WebKit/Source/core/page/scrolling/TopDocumentRootScrollerController.cpp
|
| @@ -66,9 +66,10 @@ ScrollableArea* TopDocumentRootScrollerController::rootScrollerArea() const {
|
| return RootScrollerUtil::scrollableAreaForRootScroller(globalRootScroller());
|
| }
|
|
|
| -IntSize TopDocumentRootScrollerController::rootScrollerVisibleArea() const {
|
| +IntRect TopDocumentRootScrollerController::visibleContentRect(
|
| + IncludeScrollbarsInRect includeScrollbars) const {
|
| if (!topDocument() || !topDocument()->view())
|
| - return IntSize();
|
| + return IntRect();
|
|
|
| float minimumPageScale =
|
| m_frameHost->pageScaleConstraintsSet().finalConstraints().minimumScale;
|
| @@ -76,8 +77,28 @@ IntSize TopDocumentRootScrollerController::rootScrollerVisibleArea() const {
|
| ceilf(m_frameHost->visualViewport().browserControlsAdjustment() /
|
| minimumPageScale);
|
|
|
| - return topDocument()->view()->visibleContentSize(ExcludeScrollbars) +
|
| - IntSize(0, browserControlsAdjustment);
|
| + IntRect rect = topDocument()->view()->visibleContentRect(includeScrollbars);
|
| + rect.expand(0, browserControlsAdjustment);
|
| +
|
| + return rect;
|
| +}
|
| +
|
| +bool TopDocumentRootScrollerController::isRootScrollerAncestor(
|
| + const Node& node) const {
|
| + Node* curNode = globalRootScroller();
|
| +
|
| + while (curNode) {
|
| + if (node.isSameNode(curNode))
|
| + return true;
|
| +
|
| + // TODO(bokan): This won't work for OOPIF. crbug.com/642378.
|
| + if (curNode->isDocumentNode())
|
| + curNode = toDocument(curNode)->localOwner();
|
| + else
|
| + curNode = curNode->parentNode();
|
| + }
|
| +
|
| + return false;
|
| }
|
|
|
| Element* TopDocumentRootScrollerController::findGlobalRootScrollerElement() {
|
|
|