| 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 86c89055bb7ce6623f6cc00e09fdd72669e442c7..9bf68fb78a1d4003c7c94356ce9444e671d4f3fa 100644
|
| --- a/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp
|
| +++ b/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp
|
| @@ -1918,6 +1918,23 @@ void LayoutBlockFlow::computeOverflow(LayoutUnit oldClientAfterEdge, bool recomp
|
| addOverflowFromFloats();
|
| }
|
|
|
| +void LayoutBlockFlow::computeSelfHitTestRects(Vector<LayoutRect>& rects, const LayoutPoint& layerOffset) const
|
| +{
|
| + LayoutBlock::computeSelfHitTestRects(rects, layerOffset);
|
| +
|
| + if (!hasHorizontalLayoutOverflow() && !hasVerticalLayoutOverflow())
|
| + return;
|
| +
|
| + for (RootInlineBox* curr = firstRootBox(); curr; curr = curr->nextRootBox()) {
|
| + LayoutUnit top = std::max<LayoutUnit>(curr->lineTop(), curr->top());
|
| + LayoutUnit bottom = std::min<LayoutUnit>(curr->lineBottom(), curr->top() + curr->height());
|
| + LayoutRect rect(layerOffset.x() + curr->x(), layerOffset.y() + top, curr->width(), bottom - top);
|
| + // It's common for this rect to be entirely contained in our box, so exclude that simple case.
|
| + if (!rect.isEmpty() && (rects.isEmpty() || !rects[0].contains(rect)))
|
| + rects.append(rect);
|
| + }
|
| +}
|
| +
|
| RootInlineBox* LayoutBlockFlow::createAndAppendRootInlineBox()
|
| {
|
| RootInlineBox* rootBox = createRootInlineBox();
|
|
|