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() { |