| Index: sky/engine/core/rendering/RenderBlock.cpp
|
| diff --git a/sky/engine/core/rendering/RenderBlock.cpp b/sky/engine/core/rendering/RenderBlock.cpp
|
| index aa1e1e3f4d5adb46cd19bcaaf1b577bfa3b7f3d8..c1b72e516cb4e7ac466e45d240a8443d024980d1 100644
|
| --- a/sky/engine/core/rendering/RenderBlock.cpp
|
| +++ b/sky/engine/core/rendering/RenderBlock.cpp
|
| @@ -88,7 +88,6 @@ RenderBlock::RenderBlock(ContainerNode* node)
|
| , m_beingDestroyed(false)
|
| , m_hasMarkupTruncation(false)
|
| , m_hasBorderOrPaddingLogicalWidthChanged(false)
|
| - , m_hasOnlySelfCollapsingChildren(false)
|
| {
|
| // RenderBlockFlow calls setChildrenInline(true).
|
| // By default, subclasses do not have inline children.
|
| @@ -838,64 +837,6 @@ void RenderBlock::removeChild(RenderObject* oldChild)
|
| }
|
| }
|
|
|
| -bool RenderBlock::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 (createsBlockFormattingContext())
|
| - return false;
|
| -
|
| - ASSERT(!needsLayout());
|
| -
|
| - if (logicalHeight() > 0
|
| - || borderAndPaddingLogicalHeight()
|
| - || style()->logicalMinHeight().isPositive()
|
| - || style()->marginBeforeCollapse() == MSEPARATE || style()->marginAfterCollapse() == MSEPARATE)
|
| - return false;
|
| -
|
| - Length logicalHeightLength = style()->logicalHeight();
|
| - bool hasAutoHeight = logicalHeightLength.isAuto();
|
| - if (logicalHeightLength.isPercent()) {
|
| - hasAutoHeight = true;
|
| - for (RenderBlock* cb = containingBlock(); !cb->isRenderView(); cb = cb->containingBlock()) {
|
| - if (cb->style()->logicalHeight().isFixed())
|
| - 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.
|
| - if (hasAutoHeight || ((logicalHeightLength.isFixed() || logicalHeightLength.isPercent()) && 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 (RenderBox* child = firstChildBox(); child; child = child->nextSiblingBox()) {
|
| - if (child->isFloatingOrOutOfFlowPositioned())
|
| - continue;
|
| - if (!child->isSelfCollapsingBlock())
|
| - return false;
|
| - }
|
| - return true;
|
| - }
|
| - return false;
|
| -}
|
| -
|
| void RenderBlock::startDelayUpdateScrollInfo()
|
| {
|
| if (gDelayUpdateScrollInfo == 0) {
|
| @@ -2735,8 +2676,8 @@ void RenderBlock::absoluteRects(Vector<IntRect>& rects, const LayoutPoint& accum
|
| if (isAnonymousBlockContinuation()) {
|
| // FIXME: This is wrong for block-flows that are horizontal.
|
| // https://bugs.webkit.org/show_bug.cgi?id=46781
|
| - rects.append(pixelSnappedIntRect(accumulatedOffset.x(), accumulatedOffset.y() - collapsedMarginBefore(),
|
| - width(), height() + collapsedMarginBefore() + collapsedMarginAfter()));
|
| + rects.append(pixelSnappedIntRect(accumulatedOffset.x(), accumulatedOffset.y() - marginBefore(),
|
| + width(), height() + marginBefore() + marginAfter()));
|
| continuation()->absoluteRects(rects, accumulatedOffset - toLayoutSize(location() +
|
| inlineElementContinuation()->containingBlock()->location()));
|
| } else
|
| @@ -2751,8 +2692,8 @@ void RenderBlock::absoluteQuads(Vector<FloatQuad>& quads) const
|
| if (isAnonymousBlockContinuation()) {
|
| // FIXME: This is wrong for block-flows that are horizontal.
|
| // https://bugs.webkit.org/show_bug.cgi?id=46781
|
| - FloatRect localRect(0, -collapsedMarginBefore().toFloat(),
|
| - width().toFloat(), (height() + collapsedMarginBefore() + collapsedMarginAfter()).toFloat());
|
| + FloatRect localRect(0, -marginBefore().toFloat(),
|
| + width().toFloat(), (height() + marginBefore() + marginAfter()).toFloat());
|
| quads.append(localToAbsoluteQuad(localRect, 0 /* mode */));
|
| continuation()->absoluteQuads(quads);
|
| } else {
|
| @@ -2764,7 +2705,7 @@ LayoutRect RenderBlock::rectWithOutlineForPaintInvalidation(const RenderLayerMod
|
| {
|
| LayoutRect r(RenderBox::rectWithOutlineForPaintInvalidation(paintInvalidationContainer, outlineWidth, paintInvalidationState));
|
| if (isAnonymousBlockContinuation())
|
| - r.inflateY(collapsedMarginBefore()); // FIXME: This is wrong for block-flows that are horizontal.
|
| + r.inflateY(marginBefore()); // FIXME: This is wrong for block-flows that are horizontal.
|
| return r;
|
| }
|
|
|
| @@ -2820,8 +2761,8 @@ void RenderBlock::addFocusRingRects(Vector<IntRect>& rects, const LayoutPoint& a
|
| // FIXME: This is wrong for block-flows that are horizontal.
|
| // https://bugs.webkit.org/show_bug.cgi?id=46781
|
| bool prevInlineHasLineBox = toRenderInline(inlineElementContinuation()->node()->renderer())->firstLineBox();
|
| - LayoutUnit topMargin = prevInlineHasLineBox ? collapsedMarginBefore() : LayoutUnit();
|
| - LayoutUnit bottomMargin = nextInlineHasLineBox ? collapsedMarginAfter() : LayoutUnit();
|
| + LayoutUnit topMargin = prevInlineHasLineBox ? marginBefore() : LayoutUnit();
|
| + LayoutUnit bottomMargin = nextInlineHasLineBox ? marginAfter() : LayoutUnit();
|
| LayoutRect rect(additionalOffset.x(), additionalOffset.y() - topMargin, width(), height() + topMargin + bottomMargin);
|
| if (!rect.isEmpty())
|
| rects.append(pixelSnappedIntRect(rect));
|
| @@ -2866,16 +2807,16 @@ RenderBox* RenderBlock::createAnonymousBoxWithSameTypeAs(const RenderObject* par
|
| return createAnonymousWithParentRendererAndDisplay(parent, style()->display());
|
| }
|
|
|
| -LayoutUnit RenderBlock::collapsedMarginBeforeForChild(const RenderBox* child) const
|
| +LayoutUnit RenderBlock::marginBeforeForChild(const RenderBox* child) const
|
| {
|
| // FIXME(sky): Remove
|
| - return child->collapsedMarginBefore();
|
| + return child->marginBefore();
|
| }
|
|
|
| -LayoutUnit RenderBlock::collapsedMarginAfterForChild(const RenderBox* child) const
|
| +LayoutUnit RenderBlock::marginAfterForChild(const RenderBox* child) const
|
| {
|
| // FIXME(sky): Remove
|
| - return child->collapsedMarginAfter();
|
| + return child->marginAfter();
|
| }
|
|
|
| bool RenderBlock::hasMarginBeforeQuirk(const RenderBox* child) const
|
|
|