Chromium Code Reviews| 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 a7c3fbaa3f3f668b9194863b73863c28d45eef99..8872d9016e7e66048e593dad232b9c7db6ef8038 100644 |
| --- a/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp |
| +++ b/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp |
| @@ -58,7 +58,6 @@ bool LayoutBlockFlow::s_canPropagateFloatIntoSibling = false; |
| struct SameSizeAsLayoutBlockFlow : public LayoutBlock { |
| LineBoxList lineBoxes; |
| - LayoutUnit m_paintInvalidationLogicalTopAndBottom[2]; |
| void* pointers[2]; |
| }; |
| @@ -397,17 +396,6 @@ void LayoutBlockFlow::layoutBlock(bool relayoutChildren) |
| updateAfterLayout(); |
| - if (m_paintInvalidationLogicalTop != m_paintInvalidationLogicalBottom) { |
| - bool hasVisibleContent = style()->visibility() == VISIBLE; |
| - if (!hasVisibleContent) { |
| - PaintLayer* layer = enclosingLayer(); |
| - layer->updateDescendantDependentFlags(); |
| - hasVisibleContent = layer->hasVisibleContent(); |
| - } |
| - if (hasVisibleContent) |
| - setShouldInvalidateOverflowForPaint(); |
| - } |
| - |
| if (isHTMLDialogElement(node()) && isOutOfFlowPositioned()) |
| positionDialog(); |
| @@ -467,8 +455,6 @@ inline bool LayoutBlockFlow::layoutBlockFlow(bool relayoutChildren, LayoutUnit & |
| LayoutUnit previousHeight = logicalHeight(); |
| setLogicalHeight(beforeEdge); |
| - m_paintInvalidationLogicalTop = LayoutUnit(); |
| - m_paintInvalidationLogicalBottom = LayoutUnit(); |
| if (!firstChild() && !isAnonymousBlock()) |
| setChildrenInline(true); |
| @@ -480,7 +466,7 @@ inline bool LayoutBlockFlow::layoutBlockFlow(bool relayoutChildren, LayoutUnit & |
| // all inline children are removed from this block. |
| setContainsInlineWithOutlineAndContinuation(false); |
| if (childrenInline()) |
| - layoutInlineChildren(relayoutChildren, m_paintInvalidationLogicalTop, m_paintInvalidationLogicalBottom, afterEdge); |
| + layoutInlineChildren(relayoutChildren, afterEdge); |
| else |
| layoutBlockChildren(relayoutChildren, layoutScope, beforeEdge, afterEdge); |
| @@ -2789,48 +2775,6 @@ void LayoutBlockFlow::invalidatePaintForOverhangingFloats(bool paintAllDescendan |
| } |
| } |
| -void LayoutBlockFlow::invalidatePaintForOverflow() |
|
chrishtr
2016/06/27 15:12:42
Does the version control history give a hint as to
Xianzhu
2016/06/27 17:05:19
This was to avoid full inalidation of LayoutBlockF
|
| -{ |
| - // FIXME: We could tighten up the left and right invalidation points if we let layoutInlineChildren fill them in based off the particular lines |
| - // it had to lay out. We wouldn't need the hasOverflowClip() hack in that case either. |
| - LayoutUnit paintInvalidationLogicalLeft = logicalLeftVisualOverflow(); |
| - LayoutUnit paintInvalidationLogicalRight = logicalRightVisualOverflow(); |
| - if (hasOverflowClip()) { |
| - // If we have clipped overflow, we should use layout overflow as well, since visual overflow from lines didn't propagate to our block's overflow. |
| - // Note the old code did this as well but even for overflow:visible. The addition of hasOverflowClip() at least tightens up the hack a bit. |
| - // layoutInlineChildren should be patched to compute the entire paint invalidation rect. |
| - paintInvalidationLogicalLeft = std::min(paintInvalidationLogicalLeft, logicalLeftLayoutOverflow()); |
| - paintInvalidationLogicalRight = std::max(paintInvalidationLogicalRight, logicalRightLayoutOverflow()); |
| - } |
| - |
| - LayoutRect paintInvalidationRect; |
| - if (isHorizontalWritingMode()) |
| - paintInvalidationRect = LayoutRect(paintInvalidationLogicalLeft, m_paintInvalidationLogicalTop, paintInvalidationLogicalRight - paintInvalidationLogicalLeft, m_paintInvalidationLogicalBottom - m_paintInvalidationLogicalTop); |
| - else |
| - paintInvalidationRect = LayoutRect(m_paintInvalidationLogicalTop, paintInvalidationLogicalLeft, m_paintInvalidationLogicalBottom - m_paintInvalidationLogicalTop, paintInvalidationLogicalRight - paintInvalidationLogicalLeft); |
| - |
| - if (hasOverflowClip()) { |
| - // Adjust the paint invalidation rect for scroll offset |
| - paintInvalidationRect.move(-scrolledContentOffset()); |
| - |
| - // Don't allow this rect to spill out of our overflow box. |
| - paintInvalidationRect.intersect(LayoutRect(LayoutPoint(), size())); |
| - } |
| - |
| - // Make sure the rect is still non-empty after intersecting for overflow above |
| - if (!paintInvalidationRect.isEmpty()) { |
| - // Hits in media/event-attributes.html |
| - DisableCompositingQueryAsserts disabler; |
| - |
| - invalidatePaintRectangle(paintInvalidationRect); // We need to do a partial paint invalidation of our content. |
| - if (hasReflection()) |
| - invalidatePaintRectangle(reflectedRect(paintInvalidationRect)); |
| - } |
| - |
| - m_paintInvalidationLogicalTop = LayoutUnit(); |
| - m_paintInvalidationLogicalBottom = LayoutUnit(); |
| -} |
| - |
| void LayoutBlockFlow::invalidateDisplayItemClients(PaintInvalidationReason invalidationReason) const |
| { |
| LayoutBlock::invalidateDisplayItemClients(invalidationReason); |