Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) | 4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) |
| 5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com) | 5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com) |
| 6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv ed. | 6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv ed. |
| 7 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. | 7 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. |
| 8 * | 8 * |
| 9 * This library is free software; you can redistribute it and/or | 9 * This library is free software; you can redistribute it and/or |
| 10 * modify it under the terms of the GNU Library General Public | 10 * modify it under the terms of the GNU Library General Public |
| (...skipping 1588 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1599 // We need to see if margins on either the start side or the end side can co ntain the floats in question. If they can, | 1599 // We need to see if margins on either the start side or the end side can co ntain the floats in question. If they can, |
| 1600 // then just using the line width is inaccurate. In the case where a float c ompletely fits, we don't need to use the line | 1600 // then just using the line width is inaccurate. In the case where a float c ompletely fits, we don't need to use the line |
| 1601 // offset at all, but can instead push all the way to the content edge of th e containing block. In the case where the float | 1601 // offset at all, but can instead push all the way to the content edge of th e containing block. In the case where the float |
| 1602 // doesn't fit, we can use the line offset, but we need to grow it by the ma rgin to reflect the fact that the margin was | 1602 // doesn't fit, we can use the line offset, but we need to grow it by the ma rgin to reflect the fact that the margin was |
| 1603 // "consumed" by the float. Negative margins aren't consumed by the float, a nd so we ignore them. | 1603 // "consumed" by the float. Negative margins aren't consumed by the float, a nd so we ignore them. |
| 1604 width += portionOfMarginNotConsumedByFloat(childMarginStart, startOffsetForC ontent, startOffsetForLine); | 1604 width += portionOfMarginNotConsumedByFloat(childMarginStart, startOffsetForC ontent, startOffsetForLine); |
| 1605 width += portionOfMarginNotConsumedByFloat(childMarginEnd, endOffsetForConte nt, endOffsetForLine); | 1605 width += portionOfMarginNotConsumedByFloat(childMarginEnd, endOffsetForConte nt, endOffsetForLine); |
| 1606 return width; | 1606 return width; |
| 1607 } | 1607 } |
| 1608 | 1608 |
| 1609 LayoutUnit LayoutBox::containingBlockLogicalWidthForGetComputedStyle() const | |
| 1610 { | |
| 1611 if (hasOverrideContainingBlockLogicalWidth()) | |
| 1612 return overrideContainingBlockContentLogicalWidth(); | |
| 1613 | |
| 1614 if (!isPositioned()) | |
| 1615 return containingBlockLogicalWidthForContent(); | |
| 1616 | |
| 1617 LayoutBoxModelObject* cb = toLayoutBoxModelObject(container()); | |
|
esprehn
2016/04/14 18:43:09
why is container correct vs containingBlock?
Deokjin Kim
2016/04/20 13:42:09
I think this issue is caused by the difference bet
| |
| 1618 LayoutUnit width = containingBlockLogicalWidthForPositioned(cb); | |
| 1619 if (styleRef().position() != AbsolutePosition) | |
| 1620 width -= cb->paddingLogicalWidth(); | |
| 1621 return width; | |
| 1622 } | |
| 1623 | |
| 1609 LayoutUnit LayoutBox::containingBlockLogicalHeightForGetComputedStyle() const | 1624 LayoutUnit LayoutBox::containingBlockLogicalHeightForGetComputedStyle() const |
| 1610 { | 1625 { |
| 1611 if (hasOverrideContainingBlockLogicalHeight()) | 1626 if (hasOverrideContainingBlockLogicalHeight()) |
| 1612 return overrideContainingBlockContentLogicalHeight(); | 1627 return overrideContainingBlockContentLogicalHeight(); |
| 1613 | 1628 |
| 1614 if (!isPositioned()) | 1629 if (!isPositioned()) |
| 1615 return containingBlockLogicalHeightForContent(ExcludeMarginBorderPadding ); | 1630 return containingBlockLogicalHeightForContent(ExcludeMarginBorderPadding ); |
| 1616 | 1631 |
| 1617 LayoutBoxModelObject* cb = toLayoutBoxModelObject(container()); | 1632 LayoutBoxModelObject* cb = toLayoutBoxModelObject(container()); |
| 1618 LayoutUnit height = containingBlockLogicalHeightForPositioned(cb); | 1633 LayoutUnit height = containingBlockLogicalHeightForPositioned(cb); |
| (...skipping 3118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4737 | 4752 |
| 4738 void LayoutBox::clearPercentHeightDescendants() | 4753 void LayoutBox::clearPercentHeightDescendants() |
| 4739 { | 4754 { |
| 4740 for (LayoutObject* curr = slowFirstChild(); curr; curr = curr->nextInPreOrde r(this)) { | 4755 for (LayoutObject* curr = slowFirstChild(); curr; curr = curr->nextInPreOrde r(this)) { |
| 4741 if (curr->isBox()) | 4756 if (curr->isBox()) |
| 4742 toLayoutBox(curr)->removeFromPercentHeightContainer(); | 4757 toLayoutBox(curr)->removeFromPercentHeightContainer(); |
| 4743 } | 4758 } |
| 4744 } | 4759 } |
| 4745 | 4760 |
| 4746 } // namespace blink | 4761 } // namespace blink |
| OLD | NEW |