Index: third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp |
diff --git a/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp b/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp |
index 1f11e9809007648f8021300f03ebf495772820d2..3c0e8e524324b24f76f99f8fdd84e63985fd79fc 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp |
+++ b/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp |
@@ -1936,6 +1936,40 @@ void LayoutBlockFlow::computeSelfHitTestRects(Vector<LayoutRect>& rects, const L |
} |
} |
+void LayoutBlockFlow::absoluteRects(Vector<IntRect>& rects, const LayoutPoint& accumulatedOffset) const |
+{ |
+ if (!isAnonymousBlockContinuation()) { |
+ LayoutBlock::absoluteRects(rects, accumulatedOffset); |
+ return; |
+ } |
+ // For blocks inside inlines, we go ahead and include margins so that we run right up to the |
+ // inline boxes above and below us (thus getting merged with them to form a single irregular |
+ // shape). |
+ // FIXME: This is wrong for vertical writing-modes. |
+ // https://bugs.webkit.org/show_bug.cgi?id=46781 |
+ LayoutRect rect(accumulatedOffset, size()); |
+ rect.expand(collapsedMarginBoxLogicalOutsets()); |
+ rects.append(pixelSnappedIntRect(rect)); |
+ continuation()->absoluteRects(rects, accumulatedOffset - toLayoutSize(location() + inlineElementContinuation()->containingBlock()->location())); |
+} |
+ |
+void LayoutBlockFlow::absoluteQuads(Vector<FloatQuad>& quads) const |
+{ |
+ if (!isAnonymousBlockContinuation()) { |
+ LayoutBlock::absoluteQuads(quads); |
+ return; |
+ } |
+ // For blocks inside inlines, we go ahead and include margins so that we run right up to the |
+ // inline boxes above and below us (thus getting merged with them to form a single irregular |
+ // shape). |
+ // FIXME: This is wrong for vertical writing-modes. |
+ // https://bugs.webkit.org/show_bug.cgi?id=46781 |
+ LayoutRect localRect(LayoutPoint(), size()); |
+ localRect.expand(collapsedMarginBoxLogicalOutsets()); |
+ quads.append(localToAbsoluteQuad(FloatRect(localRect))); |
+ continuation()->absoluteQuads(quads); |
+} |
+ |
RootInlineBox* LayoutBlockFlow::createAndAppendRootInlineBox() |
{ |
RootInlineBox* rootBox = createRootInlineBox(); |