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 0ca9f0c68c9b5df3ea98a2f5e951b0b7f8a226a5..6992af87ed788db430c335b0b0f57aac83a045ff 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutInline.cpp |
+++ b/third_party/WebKit/Source/core/layout/LayoutInline.cpp |
@@ -1140,11 +1140,17 @@ LayoutRect LayoutInline::absoluteVisualRect() const { |
for (LayoutBlock* currBlock = containingBlock(); |
currBlock && currBlock->isAnonymousBlock(); |
currBlock = toLayoutBlock(currBlock->nextSibling())) { |
+ bool walkChildrenOnly = !currBlock->childrenInline(); |
for (LayoutObject* curr = currBlock->firstChild(); curr; |
curr = curr->nextSibling()) { |
LayoutRect rect(curr->localVisualRect()); |
context(FloatRect(rect)); |
- if (curr == endContinuation) { |
+ if (walkChildrenOnly) |
+ continue; |
+ for (LayoutObject* walker = curr; walker; |
+ walker = walker->nextInPreOrder(curr)) { |
+ if (walker != endContinuation) |
+ continue; |
LayoutRect rect(enclosingIntRect(floatResult)); |
mapToVisualRectInAncestorSpace(view(), rect); |
return rect; |