| Index: third_party/WebKit/Source/core/layout/LayoutBox.cpp
|
| diff --git a/third_party/WebKit/Source/core/layout/LayoutBox.cpp b/third_party/WebKit/Source/core/layout/LayoutBox.cpp
|
| index 87af6757f5577015b0eef52df260da6b0d19df84..9655aac8a07ee74ede97abbb5aa82cc18d1b38e5 100644
|
| --- a/third_party/WebKit/Source/core/layout/LayoutBox.cpp
|
| +++ b/third_party/WebKit/Source/core/layout/LayoutBox.cpp
|
| @@ -4145,7 +4145,9 @@
|
| return true;
|
| if (box->isLayoutView())
|
| return true;
|
| - if (box->isOutOfFlowPositioned() && !box->style()->logicalLeft().isAuto() && !box->style()->logicalRight().isAuto())
|
| + // The size of the containing block of an absolutely positioned element is always definite with respect to that
|
| + // element (http://dev.w3.org/csswg/css-sizing-3/#definite).
|
| + if (box->isOutOfFlowPositioned())
|
| return true;
|
| if (box->hasOverrideContainingBlockLogicalWidth())
|
| return box->overrideContainingBlockContentLogicalWidth() != -1;
|
| @@ -4169,14 +4171,16 @@
|
| bool LayoutBox::hasDefiniteLogicalHeight() const
|
| {
|
| const Length& logicalHeight = style()->logicalHeight();
|
| + if (logicalHeight.isIntrinsicOrAuto())
|
| + return false;
|
| if (logicalHeight.isFixed())
|
| return true;
|
| - if (isOutOfFlowPositioned() && !style()->logicalTop().isAuto() && !style()->logicalBottom().isAuto())
|
| + // The size of the containing block of an absolutely positioned element is always definite with respect to that
|
| + // element (http://dev.w3.org/csswg/css-sizing-3/#definite).
|
| + if (isOutOfFlowPositioned())
|
| return true;
|
| if (hasOverrideContainingBlockLogicalHeight())
|
| return overrideContainingBlockContentLogicalHeight() != -1;
|
| - if (logicalHeight.isIntrinsicOrAuto())
|
| - return false;
|
|
|
| return percentageLogicalHeightIsResolvable();
|
| }
|
|
|