Index: third_party/WebKit/Source/core/layout/LayoutInline.cpp |
diff --git a/third_party/WebKit/Source/core/layout/LayoutInline.cpp b/third_party/WebKit/Source/core/layout/LayoutInline.cpp |
index 4329025d48a1a347a8f0505a1ded7ff44f893d2e..959c93e9fd065ca12ded2120ce583d4c2d94cd74 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutInline.cpp |
+++ b/third_party/WebKit/Source/core/layout/LayoutInline.cpp |
@@ -1098,14 +1098,15 @@ bool LayoutInline::mapToVisibleRectInAncestorSpace(const LayoutBoxModelObject* a |
topLeft += layer()->offsetForInFlowPosition(); |
} |
- // FIXME: We ignore the lightweight clipping rect that controls use, since if |o| is in mid-layout, |
- // its controlClipRect will be wrong. For overflow clip we use the values cached by the layer. |
rect.setLocation(topLeft); |
- if (container->hasOverflowClip()) { |
+ |
+ if (container->isBox()) { |
LayoutBox* containerBox = toLayoutBox(container); |
- containerBox->mapScrollingContentsRectToBoxSpace(rect); |
- if (container != ancestor && !containerBox->applyOverflowClip(rect, visibleRectFlags)) |
+ if (!containerBox->mapContentsRectToVisibleRectInBorderBoxSpace(rect, visibleRectFlags)) |
return false; |
+ |
+ if (containerBox == ancestor || containerBox->isWritingModeRoot()) |
+ containerBox->flipForWritingMode(rect); |
} |
if (ancestorSkipped) { |