Index: third_party/WebKit/Source/core/dom/IntersectionObservation.cpp |
diff --git a/third_party/WebKit/Source/core/dom/IntersectionObservation.cpp b/third_party/WebKit/Source/core/dom/IntersectionObservation.cpp |
index 1a7b4c6f6f23b94ed91a2b847032eb19f0501304..3fcc21ce81f7d60f55f49a00569affaa938a1e9a 100644 |
--- a/third_party/WebKit/Source/core/dom/IntersectionObservation.cpp |
+++ b/third_party/WebKit/Source/core/dom/IntersectionObservation.cpp |
@@ -45,6 +45,7 @@ void IntersectionObservation::clipToRoot(LayoutRect& rect) |
if (rootLayoutObject->hasOverflowClip()) { |
LayoutBox* rootLayoutBox = toLayoutBox(rootLayoutObject); |
LayoutRect clipRect(LayoutPoint(), LayoutSize(rootLayoutBox->layer()->size())); |
+ m_observer->applyRootMargin(clipRect); |
rootLayoutBox->flipForWritingMode(rect); |
rect.intersect(clipRect); |
rootLayoutBox->flipForWritingMode(rect); |
@@ -57,12 +58,14 @@ void IntersectionObservation::clipToFrameView(IntersectionGeometry& geometry) |
LayoutObject* rootLayoutObject = m_observer->rootLayoutObject(); |
if (rootElement == rootElement->document().documentElement()) { |
geometry.rootRect = LayoutRect(rootElement->document().view()->visibleContentRect()); |
+ m_observer->applyRootMargin(geometry.rootRect); |
geometry.intersectionRect.intersect(geometry.rootRect); |
} else { |
if (rootLayoutObject->isBox()) |
geometry.rootRect = LayoutRect(toLayoutBox(rootLayoutObject)->absoluteContentBox()); |
else |
geometry.rootRect = LayoutRect(rootLayoutObject->absoluteBoundingBoxRect()); |
+ m_observer->applyRootMargin(geometry.rootRect); |
} |
LayoutPoint scrollPosition(rootElement->document().view()->scrollPosition()); |