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 4e6ea451ddf87c2f79d158ea61560174f8cdd6c7..10637ce50139a5fe48c513e9fd6291e61ef33c71 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutBox.cpp |
+++ b/third_party/WebKit/Source/core/layout/LayoutBox.cpp |
@@ -2399,6 +2399,12 @@ LayoutUnit LayoutBox::computeIntrinsicLogicalContentHeightUsing(const Length& lo |
LayoutUnit LayoutBox::computeContentAndScrollbarLogicalHeightUsing(SizeType heightType, const Length& height, LayoutUnit intrinsicContentHeight) const |
{ |
+ if (isOutOfFlowPositioned() && height.isAuto() && !style()->logicalTop().isAuto() && !style()->logicalBottom().isAuto()) { |
+ LogicalExtentComputedValues computedValues; |
+ computeLogicalHeight(logicalHeight(), 0, computedValues); |
mstensho (USE GERRIT)
2015/10/02 09:08:50
I don't think this is the right place to do this.
cbiesinger
2015/10/02 16:40:19
Yes, this is handled in computePositionedLogicalHe
Manuel Rego
2016/04/08 07:53:14
It seems this is not needed anymore, so I'm removi
|
+ return computedValues.m_extent - borderAndPaddingLogicalHeight() - scrollbarLogicalHeight(); |
+ } |
+ |
if (height.isAuto()) |
return heightType == MinSize ? 0 : -1; |
// FIXME(cbiesinger): The css-sizing spec is considering changing what min-content/max-content should resolve to. |
@@ -4263,9 +4269,7 @@ static bool logicalWidthIsResolvable(const LayoutBox& layoutBox) |
return true; |
if (box->isLayoutView()) |
return true; |
- // 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()) |
+ if (box->isOutOfFlowPositioned() && box->style()->logicalWidth().isAuto() && !box->style()->logicalLeft().isAuto() && !box->style()->logicalRight().isAuto()) |
mstensho (USE GERRIT)
2015/10/02 09:08:50
The box->style()->logicalWidth().isAuto() confuses
cbiesinger
2015/10/02 16:40:19
I too am skeptical that this is correct... do you
Manuel Rego
2016/04/08 07:53:14
Yeah, we don't need to check if width is auto too,
|
return true; |
if (box->hasOverrideContainingBlockLogicalWidth()) |
return box->overrideContainingBlockContentLogicalWidth() != -1; |
@@ -4289,16 +4293,14 @@ bool LayoutBox::percentageLogicalHeightIsResolvable() const |
bool LayoutBox::hasDefiniteLogicalHeight() const |
{ |
const Length& logicalHeight = style()->logicalHeight(); |
- if (logicalHeight.isIntrinsicOrAuto()) |
- return false; |
if (logicalHeight.isFixed()) |
return true; |
- // 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()) |
+ if (isOutOfFlowPositioned() && logicalHeight.isAuto() && !style()->logicalTop().isAuto() && !style()->logicalBottom().isAuto()) |
mstensho (USE GERRIT)
2015/10/02 09:08:50
Same question as in logicalWidthIsResolvable().
cbiesinger
2015/10/02 16:40:19
As I wrote in the other patch:
I don't believe tha
Manuel Rego
2016/04/08 07:53:14
Again I've removed here the condition to check if
|
return true; |
if (hasOverrideContainingBlockLogicalHeight()) |
return overrideContainingBlockContentLogicalHeight() != -1; |
+ if (logicalHeight.isIntrinsicOrAuto()) |
+ return false; |
return percentageLogicalHeightIsResolvable(); |
} |