[CSS Grid Layout] LayoutBox::hasDefiniteLogicalHeight() should consider abspos boxes as definite
https://bugs.webkit.org/show_bug.cgi?id=144144
Reviewed by Darin Adler.
Source/WebCore:
Change order in hasDefiniteLogicalHeight() ifs to consider definite
absolutely positioned elements.
Test: fast/css-grid-layout/percent-track-breadths-regarding-container-size.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::hasDefiniteLogicalHeight):
LayoutTests:
Add new test case to check absolutely positioned elements.
* fast/css-grid-layout/percent-track-breadths-regarding-container-size-expected.txt:
* fast/css-grid-layout/percent-track-breadths-regarding-container-size.html:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@183385 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 4da9251..bd249d8 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,15 @@
+2015-04-26 Manuel Rego Casasnovas <rego@igalia.com>
+
+ [CSS Grid Layout] LayoutBox::hasDefiniteLogicalHeight() should consider abspos boxes as definite
+ https://bugs.webkit.org/show_bug.cgi?id=144144
+
+ Reviewed by Darin Adler.
+
+ Add new test case to check absolutely positioned elements.
+
+ * fast/css-grid-layout/percent-track-breadths-regarding-container-size-expected.txt:
+ * fast/css-grid-layout/percent-track-breadths-regarding-container-size.html:
+
2015-04-26 Ryosuke Niwa <rniwa@webkit.org>
Class body ending with a semicolon throws a SyntaxError
diff --git a/LayoutTests/fast/css-grid-layout/percent-track-breadths-regarding-container-size-expected.txt b/LayoutTests/fast/css-grid-layout/percent-track-breadths-regarding-container-size-expected.txt
index 58982fd..29459eb 100644
--- a/LayoutTests/fast/css-grid-layout/percent-track-breadths-regarding-container-size-expected.txt
+++ b/LayoutTests/fast/css-grid-layout/percent-track-breadths-regarding-container-size-expected.txt
@@ -40,3 +40,11 @@
XXXXX
XXX
PASS
+XX
+XXXXX
+XXX
+PASS
+XX
+XXXXX
+XXX
+PASS
diff --git a/LayoutTests/fast/css-grid-layout/percent-track-breadths-regarding-container-size.html b/LayoutTests/fast/css-grid-layout/percent-track-breadths-regarding-container-size.html
index 9ebf457..4df7a65 100644
--- a/LayoutTests/fast/css-grid-layout/percent-track-breadths-regarding-container-size.html
+++ b/LayoutTests/fast/css-grid-layout/percent-track-breadths-regarding-container-size.html
@@ -23,6 +23,10 @@
height: 50%;
}
+.absolutelyPositioned {
+ position: absolute;
+}
+
.indefiniteSize {
width: -webkit-fit-content;
height: auto;
@@ -114,6 +118,22 @@
</div>
<div class="indefiniteSize">
+ <div class="grid absolutelyPositioned">
+ <div class="firstRowFirstColumn sizedToGridArea" data-expected-width="0" data-expected-height="0">XX</div>
+ <div class="firstRowSecondColumn sizedToGridArea" data-expected-width="0" data-expected-height="0">XXXXX</div>
+ <div class="firstRowThirdColumn sizedToGridArea" data-expected-width="0" data-expected-height="0">XXX</div>
+ </div>
+ </div>
+
+ <div class="unconstrainedContainer">
+ <div class="grid absolutelyPositioned">
+ <div class="firstRowFirstColumn sizedToGridArea" data-expected-width="0" data-expected-height="0">XX</div>
+ <div class="firstRowSecondColumn sizedToGridArea" data-expected-width="0" data-expected-height="0">XXXXX</div>
+ <div class="firstRowThirdColumn sizedToGridArea" data-expected-width="0" data-expected-height="0">XXX</div>
+ </div>
+ </div>
+
+ <div class="indefiniteSize">
<div class="grid indefiniteSize">
<div class="firstRowFirstColumn sizedToGridArea" data-expected-width="20" data-expected-height="10">XX</div>
<div class="firstRowSecondColumn sizedToGridArea" data-expected-width="50" data-expected-height="10">XXXXX</div>
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 3dbc780..3913edd 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,18 @@
+2015-04-26 Manuel Rego Casasnovas <rego@igalia.com>
+
+ [CSS Grid Layout] LayoutBox::hasDefiniteLogicalHeight() should consider abspos boxes as definite
+ https://bugs.webkit.org/show_bug.cgi?id=144144
+
+ Reviewed by Darin Adler.
+
+ Change order in hasDefiniteLogicalHeight() ifs to consider definite
+ absolutely positioned elements.
+
+ Test: fast/css-grid-layout/percent-track-breadths-regarding-container-size.html
+
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::hasDefiniteLogicalHeight):
+
2015-04-26 Said Abou-Hallawa <sabouhallawa@apple.com>
SVGFilterBuilder should drive the builtin sourceAlpha from the passed sourceGraphic
diff --git a/Source/WebCore/rendering/RenderBox.cpp b/Source/WebCore/rendering/RenderBox.cpp
index fa0a7b6..d474c1b 100644
--- a/Source/WebCore/rendering/RenderBox.cpp
+++ b/Source/WebCore/rendering/RenderBox.cpp
@@ -4542,8 +4542,6 @@
bool RenderBox::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
@@ -4554,6 +4552,8 @@
if (hasOverrideContainingBlockLogicalHeight())
return overrideContainingBlockContentLogicalHeight() != -1;
#endif
+ if (logicalHeight.isIntrinsicOrAuto())
+ return false;
return percentageLogicalHeightIsResolvable(this);
}