Index: third_party/WebKit/Source/core/layout/LayoutBlock.cpp |
diff --git a/third_party/WebKit/Source/core/layout/LayoutBlock.cpp b/third_party/WebKit/Source/core/layout/LayoutBlock.cpp |
index 375d4a4277ba5116d997db3195fd9481a189da6f..a3f657d18a227fc6664fde0f584770e73d53250a 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutBlock.cpp |
+++ b/third_party/WebKit/Source/core/layout/LayoutBlock.cpp |
@@ -117,7 +117,7 @@ LayoutBlock::LayoutBlock(ContainerNode* node) |
, m_hasMarkupTruncation(false) |
, m_widthAvailableToChildrenChanged(false) |
, m_heightAvailableToChildrenChanged(false) |
- , m_hasOnlySelfCollapsingChildren(false) |
+ , m_isSelfCollapsing(false) |
, m_descendantsWithFloatsMarkedForLayout(false) |
, m_hasPositionedObjects(false) |
, m_hasPercentHeightDescendants(false) |
@@ -747,68 +747,6 @@ void LayoutBlock::removeChild(LayoutObject* oldChild) |
} |
} |
-bool LayoutBlock::isSelfCollapsingBlock() const |
-{ |
- // We are not self-collapsing if we |
- // (a) have a non-zero height according to layout (an optimization to avoid wasting time) |
- // (b) are a table, |
- // (c) have border/padding, |
- // (d) have a min-height |
- // (e) have specified that one of our margins can't collapse using a CSS extension |
- // (f) establish a new block formatting context. |
- |
- // The early exit must be done before we check for clean layout. |
- // We should be able to give a quick answer if the box is a relayout boundary. |
- // Being a relayout boundary implies a block formatting context, and also |
- // our internal layout shouldn't affect our container in any way. |
- if (createsNewFormattingContext()) |
- return false; |
- |
- // Placeholder elements are not laid out until the dimensions of their parent text control are known, so they |
- // don't get layout until their parent has had layout - this is unique in the layout tree and means |
- // when we call isSelfCollapsingBlock on them we find that they still need layout. |
- ASSERT(!needsLayout() || (node() && node()->isElementNode() && toElement(node())->shadowPseudoId() == "-webkit-input-placeholder")); |
- |
- if (logicalHeight() > 0 |
- || isTable() || borderAndPaddingLogicalHeight() |
- || style()->logicalMinHeight().isPositive() |
- || style()->marginBeforeCollapse() == MarginCollapseSeparate || style()->marginAfterCollapse() == MarginCollapseSeparate) |
- return false; |
- |
- Length logicalHeightLength = style()->logicalHeight(); |
- bool hasAutoHeight = logicalHeightLength.isAuto(); |
- if (logicalHeightLength.hasPercent() && !document().inQuirksMode()) { |
- hasAutoHeight = true; |
- for (LayoutBlock* cb = containingBlock(); !cb->isLayoutView(); cb = cb->containingBlock()) { |
- if (cb->style()->logicalHeight().isFixed() || cb->isTableCell()) |
- hasAutoHeight = false; |
- } |
- } |
- |
- // If the height is 0 or auto, then whether or not we are a self-collapsing block depends |
- // on whether we have content that is all self-collapsing or not. |
- // TODO(alancutter): Make this work correctly for calc lengths. |
- if (hasAutoHeight || ((logicalHeightLength.isFixed() || logicalHeightLength.hasPercent()) && logicalHeightLength.isZero())) { |
- // If the block has inline children, see if we generated any line boxes. If we have any |
- // line boxes, then we can't be self-collapsing, since we have content. |
- if (childrenInline()) |
- return !firstLineBox(); |
- |
- // Whether or not we collapse is dependent on whether all our normal flow children |
- // are also self-collapsing. |
- if (m_hasOnlySelfCollapsingChildren) |
- return true; |
- for (LayoutBox* child = firstChildBox(); child; child = child->nextSiblingBox()) { |
- if (child->isFloatingOrOutOfFlowPositioned()) |
- continue; |
- if (!child->isSelfCollapsingBlock()) |
- return false; |
- } |
- return true; |
- } |
- return false; |
-} |
- |
void LayoutBlock::startDelayUpdateScrollInfo() |
{ |
if (gDelayUpdateScrollInfo == 0) { |