No subject


Sun Dec 8 17:39:16 PST 2013


5692">r165692</a> by &lt;svillar at igalia.com&gt;

Source/WebCore:

The spec defines a different code path for the computeUsedBreadthOfGridTr=
acks algorithm
http://dev.w3.org/csswg/css-grid/#function-ComputeUsedBreadthOfGridTracks=
.

Basically the track breadth is different when the available size is undef=
ined and thus,
cannot be taken into account during the computations.
The available size is undefined whenever the height is auto or the grid e=
lement has a
shrink-to-fit behavior.

It was also renamed the function to match the specs so the function name =
starts with
'compute' instead of 'computed'.

No new tests, but added new cases to some of them.

* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computeIntrinsicLogicalWidths):
(WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
(WebCore::gridElementIsShrinkToFit):
(WebCore::RenderGrid::computeNormalizedFractionBreadth):
(WebCore::RenderGrid::layoutGridItems):
* rendering/RenderGrid.h:

LayoutTests:

Adapt tests to consider also cases for undefined RemainingSpace.

* fast/css-grid-layout/flex-and-minmax-content-resolution-rows-expected.t=
xt:
* fast/css-grid-layout/flex-and-minmax-content-resolution-rows.html:
* fast/css-grid-layout/flex-content-resolution-rows-expected.txt:
* fast/css-grid-layout/flex-content-resolution-rows.html:
* fast/css-grid-layout/grid-auto-columns-rows-update-expected.txt:
* fast/css-grid-layout/grid-auto-columns-rows-update.html:
* fast/css-grid-layout/grid-dynamic-updates-relayout-expected.txt:
* fast/css-grid-layout/grid-dynamic-updates-relayout.html:
* fast/css-grid-layout/grid-item-addition-track-breadth-update-expected.t=
xt:
* fast/css-grid-layout/grid-item-addition-track-breadth-update.html:
* fast/css-grid-layout/grid-item-multiple-minmax-content-resolution-expec=
ted.txt:
* fast/css-grid-layout/grid-item-multiple-minmax-content-resolution.html:
* fast/css-grid-layout/grid-item-removal-track-breadth-update-expected.tx=
t:
* fast/css-grid-layout/grid-item-removal-track-breadth-update.html:
* fast/css-grid-layout/grid-item-with-percent-height-in-auto-height-grid-=
resolution-expected.txt:
* fast/css-grid-layout/grid-item-with-percent-height-in-auto-height-grid-=
resolution.html:
* fast/css-grid-layout/implicit-position-dynamic-change-expected.txt:
* fast/css-grid-layout/implicit-position-dynamic-change.html:
* fast/css-grid-layout/minmax-max-content-resolution-rows-expected.txt:
* fast/css-grid-layout/minmax-max-content-resolution-rows.html:
* fast/css-grid-layout/minmax-min-content-column-resolution-rows-expected=
.txt:
* fast/css-grid-layout/minmax-min-content-column-resolution-rows.html:
* fast/css-grid-layout/minmax-spanning-resolution-rows-expected.txt:
* fast/css-grid-layout/minmax-spanning-resolution-rows.html:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href=3D"#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a=
></li>
<li><a href=3D"#trunkLayoutTestsfastcssgridlayoutflexandminmaxcontentreso=
lutionrowsexpectedtxt">trunk/LayoutTests/fast/css-grid-layout/flex-and-mi=
nmax-content-resolution-rows-expected.txt</a></li>
<li><a href=3D"#trunkLayoutTestsfastcssgridlayoutflexandminmaxcontentreso=
lutionrowshtml">trunk/LayoutTests/fast/css-grid-layout/flex-and-minmax-co=
ntent-resolution-rows.html</a></li>
<li><a href=3D"#trunkLayoutTestsfastcssgridlayoutflexcontentresolutionrow=
sexpectedtxt">trunk/LayoutTests/fast/css-grid-layout/flex-content-resolut=
ion-rows-expected.txt</a></li>
<li><a href=3D"#trunkLayoutTestsfastcssgridlayoutflexcontentresolutionrow=
shtml">trunk/LayoutTests/fast/css-grid-layout/flex-content-resolution-row=
s.html</a></li>
<li><a href=3D"#trunkLayoutTestsfastcssgridlayoutgridautocolumnsrowsupdat=
eexpectedtxt">trunk/LayoutTests/fast/css-grid-layout/grid-auto-columns-ro=
ws-update-expected.txt</a></li>
<li><a href=3D"#trunkLayoutTestsfastcssgridlayoutgridautocolumnsrowsupdat=
ehtml">trunk/LayoutTests/fast/css-grid-layout/grid-auto-columns-rows-upda=
te.html</a></li>
<li><a href=3D"#trunkLayoutTestsfastcssgridlayoutgriddynamicupdatesrelayo=
utexpectedtxt">trunk/LayoutTests/fast/css-grid-layout/grid-dynamic-update=
s-relayout-expected.txt</a></li>
<li><a href=3D"#trunkLayoutTestsfastcssgridlayoutgriddynamicupdatesrelayo=
uthtml">trunk/LayoutTests/fast/css-grid-layout/grid-dynamic-updates-relay=
out.html</a></li>
<li><a href=3D"#trunkLayoutTestsfastcssgridlayoutgriditemadditiontrackbre=
adthupdateexpectedtxt">trunk/LayoutTests/fast/css-grid-layout/grid-item-a=
ddition-track-breadth-update-expected.txt</a></li>
<li><a href=3D"#trunkLayoutTestsfastcssgridlayoutgriditemadditiontrackbre=
adthupdatehtml">trunk/LayoutTests/fast/css-grid-layout/grid-item-addition=
-track-breadth-update.html</a></li>
<li><a href=3D"#trunkLayoutTestsfastcssgridlayoutgriditemmultipleminmaxco=
ntentresolutionexpectedtxt">trunk/LayoutTests/fast/css-grid-layout/grid-i=
tem-multiple-minmax-content-resolution-expected.txt</a></li>
<li><a href=3D"#trunkLayoutTestsfastcssgridlayoutgriditemmultipleminmaxco=
ntentresolutionhtml">trunk/LayoutTests/fast/css-grid-layout/grid-item-mul=
tiple-minmax-content-resolution.html</a></li>
<li><a href=3D"#trunkLayoutTestsfastcssgridlayoutgriditemremovaltrackbrea=
dthupdateexpectedtxt">trunk/LayoutTests/fast/css-grid-layout/grid-item-re=
moval-track-breadth-update-expected.txt</a></li>
<li><a href=3D"#trunkLayoutTestsfastcssgridlayoutgriditemremovaltrackbrea=
dthupdatehtml">trunk/LayoutTests/fast/css-grid-layout/grid-item-removal-t=
rack-breadth-update.html</a></li>
<li><a href=3D"#trunkLayoutTestsfastcssgridlayoutgriditemwithpercentheigh=
tinautoheightgridresolutionexpectedtxt">trunk/LayoutTests/fast/css-grid-l=
ayout/grid-item-with-percent-height-in-auto-height-grid-resolution-expect=
ed.txt</a></li>
<li><a href=3D"#trunkLayoutTestsfastcssgridlayoutgriditemwithpercentheigh=
tinautoheightgridresolutionhtml">trunk/LayoutTests/fast/css-grid-layout/g=
rid-item-with-percent-height-in-auto-height-grid-resolution.html</a></li>
<li><a href=3D"#trunkLayoutTestsfastcssgridlayoutimplicitpositiondynamicc=
hangeexpectedtxt">trunk/LayoutTests/fast/css-grid-layout/implicit-positio=
n-dynamic-change-expected.txt</a></li>
<li><a href=3D"#trunkLayoutTestsfastcssgridlayoutimplicitpositiondynamicc=
hangehtml">trunk/LayoutTests/fast/css-grid-layout/implicit-position-dynam=
ic-change.html</a></li>
<li><a href=3D"#trunkLayoutTestsfastcssgridlayoutminmaxmaxcontentresoluti=
onrowsexpectedtxt">trunk/LayoutTests/fast/css-grid-layout/minmax-max-cont=
ent-resolution-rows-expected.txt</a></li>
<li><a href=3D"#trunkLayoutTestsfastcssgridlayoutminmaxmaxcontentresoluti=
onrowshtml">trunk/LayoutTests/fast/css-grid-layout/minmax-max-content-res=
olution-rows.html</a></li>
<li><a href=3D"#trunkLayoutTestsfastcssgridlayoutminmaxmincontentcolumnre=
solutionrowsexpectedtxt">trunk/LayoutTests/fast/css-grid-layout/minmax-mi=
n-content-column-resolution-rows-expected.txt</a></li>
<li><a href=3D"#trunkLayoutTestsfastcssgridlayoutminmaxmincontentcolumnre=
solutionrowshtml">trunk/LayoutTests/fast/css-grid-layout/minmax-min-conte=
nt-column-resolution-rows.html</a></li>
<li><a href=3D"#trunkLayoutTestsfastcssgridlayoutminmaxspanningresolution=
rowsexpectedtxt">trunk/LayoutTests/fast/css-grid-layout/minmax-spanning-r=
esolution-rows-expected.txt</a></li>
<li><a href=3D"#trunkLayoutTestsfastcssgridlayoutminmaxspanningresolution=
rowshtml">trunk/LayoutTests/fast/css-grid-layout/minmax-spanning-resoluti=
on-rows.html</a></li>
<li><a href=3D"#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeL=
og</a></li>
<li><a href=3D"#trunkSourceWebCorerenderingRenderGridcpp">trunk/Source/We=
bCore/rendering/RenderGrid.cpp</a></li>
<li><a href=3D"#trunkSourceWebCorerenderingRenderGridh">trunk/Source/WebC=
ore/rendering/RenderGrid.h</a></li>
</ul>

</div>
<div id=3D"patch">
<h3>Diff</h3>
<a id=3D"trunkLayoutTestsChangeLog"></a>
<div class=3D"modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (164608 =
=3D> 164609)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/LayoutTests/ChangeLog	2014-02-24 22:21:35 =
UTC (rev 164608)
+++ trunk/LayoutTests/ChangeLog	2014-02-24 22:29:20 UTC (rev 164609)
</span><span class=3D"lines">@@ -1,3 +1,39 @@
</span><ins>+2014-02-24  Javier Fernandez  &lt;jfernandez at igalia.com&gt;
+
+        [CSS Grid Layout] handle undefined RemainingSpace in computeUsed=
BreadthOfGridTracks algorithm
+        https://bugs.webkit.org/show_bug.cgi?id=3D128372
+
+        Reviewed by David Hyatt.
+
+        From Blink r165692 by &lt;svillar at igalia.com&gt;
+
+        Adapt tests to consider also cases for undefined RemainingSpace.
+
+        * fast/css-grid-layout/flex-and-minmax-content-resolution-rows-e=
xpected.txt:
+        * fast/css-grid-layout/flex-and-minmax-content-resolution-rows.h=
tml:
+        * fast/css-grid-layout/flex-content-resolution-rows-expected.txt=
:
+        * fast/css-grid-layout/flex-content-resolution-rows.html:
+        * fast/css-grid-layout/grid-auto-columns-rows-update-expected.tx=
t:
+        * fast/css-grid-layout/grid-auto-columns-rows-update.html:
+        * fast/css-grid-layout/grid-dynamic-updates-relayout-expected.tx=
t:
+        * fast/css-grid-layout/grid-dynamic-updates-relayout.html:
+        * fast/css-grid-layout/grid-item-addition-track-breadth-update-e=
xpected.txt:
+        * fast/css-grid-layout/grid-item-addition-track-breadth-update.h=
tml:
+        * fast/css-grid-layout/grid-item-multiple-minmax-content-resolut=
ion-expected.txt:
+        * fast/css-grid-layout/grid-item-multiple-minmax-content-resolut=
ion.html:
+        * fast/css-grid-layout/grid-item-removal-track-breadth-update-ex=
pected.txt:
+        * fast/css-grid-layout/grid-item-removal-track-breadth-update.ht=
ml:
+        * fast/css-grid-layout/grid-item-with-percent-height-in-auto-hei=
ght-grid-resolution-expected.txt:
+        * fast/css-grid-layout/grid-item-with-percent-height-in-auto-hei=
ght-grid-resolution.html:
+        * fast/css-grid-layout/implicit-position-dynamic-change-expected=
.txt:
+        * fast/css-grid-layout/implicit-position-dynamic-change.html:
+        * fast/css-grid-layout/minmax-max-content-resolution-rows-expect=
ed.txt:
+        * fast/css-grid-layout/minmax-max-content-resolution-rows.html:
+        * fast/css-grid-layout/minmax-min-content-column-resolution-rows=
-expected.txt:
+        * fast/css-grid-layout/minmax-min-content-column-resolution-rows=
.html:
+        * fast/css-grid-layout/minmax-spanning-resolution-rows-expected.=
txt:
+        * fast/css-grid-layout/minmax-spanning-resolution-rows.html:
+
</ins><span class=3D"cx"> 2014-02-24  Thiago de Barros Lacerda  &lt;thiag=
o.lacerda at openbossa.org&gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx">         [WebRTC] Validating RTCConfiguration a=
ccording to the spec
</span></span></pre></div>
<a id=3D"trunkLayoutTestsfastcssgridlayoutflexandminmaxcontentresolutionr=
owsexpectedtxt"></a>
<div class=3D"modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layo=
ut/flex-and-minmax-content-resolution-rows-expected.txt (164608 =3D> 1646=
09)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/LayoutTests/fast/css-grid-layout/flex-and-=
minmax-content-resolution-rows-expected.txt	2014-02-24 22:21:35 UTC (rev =
164608)
+++ trunk/LayoutTests/fast/css-grid-layout/flex-and-minmax-content-resolu=
tion-rows-expected.txt	2014-02-24 22:29:20 UTC (rev 164609)
</span><span class=3D"lines">@@ -6,6 +6,10 @@
</span><span class=3D"cx"> PASS
</span><span class=3D"cx"> XXXXX
</span><span class=3D"cx"> PASS
</span><ins>+XXXXX
+PASS
+XXXXX
+PASS
</ins><span class=3D"cx"> XXXXX XXXX
</span><span class=3D"cx"> XXXXX XXXX
</span><span class=3D"cx"> PASS
</span><span class=3D"lines">@@ -15,11 +19,25 @@
</span><span class=3D"cx"> XXXXX XXXX
</span><span class=3D"cx"> XXXXX XXXX
</span><span class=3D"cx"> PASS
</span><ins>+XXXXX XXXX
+XXXXX XXXX
+PASS
+XXXXX XXXX
+XXXXX XXXX
+PASS
+XXXXX XXXX
+XXXXX XXXX
+PASS
</ins><span class=3D"cx"> XXXXX XXXXX XXXXX XXXXX
</span><span class=3D"cx"> PASS
</span><ins>+XXXXX XXXXX XXXXX XXXXX
+PASS
</ins><span class=3D"cx"> XXXXX XXXXX XXXXX XXXXX XXXXX
</span><span class=3D"cx"> XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX
</span><span class=3D"cx"> PASS
</span><ins>+XXXXX XXXXX XXXXX XXXXX XXXXX
+XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX
+PASS
</ins><span class=3D"cx"> XXXXX XXXXX XXXXX XXXXX
</span><span class=3D"cx"> XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX
</span><span class=3D"cx"> PASS
</span><span class=3D"lines">@@ -29,3 +47,12 @@
</span><span class=3D"cx"> XXXXX XXXXX XXXXX XXXXX
</span><span class=3D"cx"> XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX
</span><span class=3D"cx"> PASS
</span><ins>+XXXXX XXXXX XXXXX XXXXX
+XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX
+PASS
+XXXXX XXXXX XXXXX XXXXX
+XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX
+PASS
+XXXXX XXXXX XXXXX XXXXX
+XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX
+PASS
</ins></span></pre></div>
<a id=3D"trunkLayoutTestsfastcssgridlayoutflexandminmaxcontentresolutionr=
owshtml"></a>
<div class=3D"modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layo=
ut/flex-and-minmax-content-resolution-rows.html (164608 =3D> 164609)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/LayoutTests/fast/css-grid-layout/flex-and-=
minmax-content-resolution-rows.html	2014-02-24 22:21:35 UTC (rev 164608)
+++ trunk/LayoutTests/fast/css-grid-layout/flex-and-minmax-content-resolu=
tion-rows.html	2014-02-24 22:29:20 UTC (rev 164609)
</span><span class=3D"lines">@@ -54,62 +54,107 @@
</span><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;!-- Allow the extra logical space distribu=
tion to occur. --&gt;
</span><span class=3D"cx"> &lt;div style=3D&quot;width: 10px; height: 40p=
x&quot;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridMaxMaxContent&quot;&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridMaxMaxContent&quot; style=3D=
&quot;height: 100%&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea f=
irstRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expect=
ed-height=3D&quot;10&quot;&gt;XXXXX&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea =
secondRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expe=
cted-height=3D&quot;30&quot;&gt;&lt;/div&gt;
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><del>-&lt;div style=3D&quot;width: 10px; height: 110px;&quot;&gt;
</del><ins>+&lt;div style=3D&quot;width: 10px; height: 40px&quot;&gt;
</ins><span class=3D"cx">     &lt;div class=3D&quot;grid gridMaxMaxConten=
t&quot;&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea =
firstRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expec=
ted-height=3D&quot;10&quot;&gt;XXXXX&lt;/div&gt;
</span><ins>+        &lt;div class=3D&quot;sizedToGridArea secondRowFirst=
Column&quot; data-expected-width=3D&quot;50&quot; data-expected-height=3D=
&quot;10&quot;&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div style=3D&quot;width: 10px; height: 110px;&quot;&gt;
+    &lt;div class=3D&quot;grid gridMaxMaxContent&quot; style=3D&quot;hei=
ght: 100%&quot;&gt;
+        &lt;div class=3D&quot;sizedToGridArea firstRowFirstColumn&quot; =
data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;10&quot=
;&gt;XXXXX&lt;/div&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea s=
econdRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expec=
ted-height=3D&quot;100&quot;&gt;&lt;/div&gt;
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><ins>+&lt;div style=3D&quot;width: 10px; height: 110px;&quot;&gt;
+    &lt;div class=3D&quot;grid gridMaxMaxContent&quot;&gt;
+        &lt;div class=3D&quot;sizedToGridArea firstRowFirstColumn&quot; =
data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;10&quot=
;&gt;XXXXX&lt;/div&gt;
+        &lt;div class=3D&quot;sizedToGridArea secondRowFirstColumn&quot;=
 data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;10&quo=
t;&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
</ins><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div class=3D&quot;constrainedContainer&quo=
t;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridMinMinContent&quot;&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridMinMinContent&quot; style=3D=
&quot;height: 100%&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea f=
irstRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expect=
ed-height=3D&quot;10&quot;&gt;XXXXX XXXX&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea =
secondRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expe=
cted-height=3D&quot;20&quot;&gt;XXXXX XXXX&lt;/div&gt;
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><ins>+&lt;div class=3D&quot;constrainedContainer&quot;&gt;
+    &lt;div class=3D&quot;grid gridMinMinContent&quot;&gt;
+        &lt;div class=3D&quot;sizedToGridArea firstRowFirstColumn&quot; =
data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;30&quot=
;&gt;XXXXX XXXX&lt;/div&gt;
+        &lt;div class=3D&quot;sizedToGridArea secondRowFirstColumn&quot;=
 data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;50&quo=
t;&gt;XXXXX XXXX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
</ins><span class=3D"cx"> &lt;!-- Allow the extra logical space distribut=
ion to occur. --&gt;
</span><span class=3D"cx"> &lt;div style=3D&quot;width: 10px; height: 40p=
x&quot;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridMinMinContent&quot;&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridMinMinContent&quot; style=3D=
&quot;height: 100%&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea f=
irstRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expect=
ed-height=3D&quot;10&quot;&gt;XXXXX XXXX&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea =
secondRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expe=
cted-height=3D&quot;30&quot;&gt;XXXXX XXXX&lt;/div&gt;
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><ins>+&lt;div style=3D&quot;width: 10px; height: 40px&quot;&gt;
+    &lt;div class=3D&quot;grid gridMinMinContent&quot;&gt;
+        &lt;div class=3D&quot;sizedToGridArea firstRowFirstColumn&quot; =
data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;30&quot=
;&gt;XXXXX XXXX&lt;/div&gt;
+        &lt;div class=3D&quot;sizedToGridArea secondRowFirstColumn&quot;=
 data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;50&quo=
t;&gt;XXXXX XXXX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
</ins><span class=3D"cx"> &lt;div style=3D&quot;width: 10px; height: 110p=
x;&quot;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridMinMinContent&quot;&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridMinMinContent&quot; style=3D=
&quot;height: 100%&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea f=
irstRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expect=
ed-height=3D&quot;60&quot;&gt;XXXXX XXXX&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea =
secondRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expe=
cted-height=3D&quot;50&quot;&gt;XXXXX XXXX&lt;/div&gt;
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><ins>+&lt;div style=3D&quot;width: 10px; height: 110px;&quot;&gt;
+    &lt;div class=3D&quot;grid gridMinMinContent&quot;&gt;
+        &lt;div class=3D&quot;sizedToGridArea firstRowFirstColumn&quot; =
data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;30&quot=
;&gt;XXXXX XXXX&lt;/div&gt;
+        &lt;div class=3D&quot;sizedToGridArea secondRowFirstColumn&quot;=
 data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;50&quo=
t;&gt;XXXXX XXXX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
</ins><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div style=3D&quot;width: 10px; height: 60p=
x;&quot;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridWithIntrinsicSizeBiggerTh=
anFlex&quot;&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridWithIntrinsicSizeBiggerTha=
nFlex&quot; style=3D&quot;height: 100%&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea f=
irstRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expect=
ed-height=3D&quot;40&quot;&gt;XXXXX XXXXX XXXXX XXXXX&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea =
secondRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expe=
cted-height=3D&quot;20&quot;&gt;&lt;/div&gt;
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><ins>+&lt;div style=3D&quot;width: 10px; height: 60px;&quot;&gt;
+    &lt;div class=3D&quot;grid gridWithIntrinsicSizeBiggerThanFlex&quot;=
&gt;
+        &lt;div class=3D&quot;sizedToGridArea firstRowFirstColumn&quot; =
data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;40&quot=
;&gt;XXXXX XXXXX XXXXX XXXXX&lt;/div&gt;
+        &lt;div class=3D&quot;sizedToGridArea secondRowFirstColumn&quot;=
 data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;160&qu=
ot;&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
</ins><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div style=3D&quot;width: 10px; height: 60p=
x;&quot;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridShrinkBelowItemsIntrinsic=
Size&quot;&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridShrinkBelowItemsIntrinsicS=
ize&quot; style=3D&quot;height: 100%&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea f=
irstRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expect=
ed-height=3D&quot;20&quot;&gt;XXXXX XXXXX XXXXX XXXXX XXXXX&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea =
secondRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expe=
cted-height=3D&quot;40&quot;&gt;XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX&lt;/d=
iv&gt;
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><ins>+&lt;div style=3D&quot;width: 10px; height: 60px;&quot;&gt;
+    &lt;div class=3D&quot;grid gridShrinkBelowItemsIntrinsicSize&quot;&g=
t;
+        &lt;div class=3D&quot;sizedToGridArea firstRowFirstColumn&quot; =
data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;50&quot=
;&gt;XXXXX XXXXX XXXXX XXXXX XXXXX&lt;/div&gt;
+        &lt;div class=3D&quot;sizedToGridArea secondRowFirstColumn&quot;=
 data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;100&qu=
ot;&gt;XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
</ins><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;!-- No space available for the &lt;flex&gt=
; --&gt;
</span><span class=3D"cx"> &lt;div style=3D&quot;width: 10px; height: 100=
px;&quot;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridWithNonFlexingItems&quot;=
&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridWithNonFlexingItems&quot; =
style=3D&quot;height: 100%&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea f=
irstRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expect=
ed-height=3D&quot;40&quot;&gt;&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea =
secondRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expe=
cted-height=3D&quot;40&quot;&gt;XXXXX XXXXX XXXXX XXXXX&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea =
thirdRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expec=
ted-height=3D&quot;60&quot;&gt;XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX&lt;/di=
v&gt;
</span><span class=3D"lines">@@ -117,9 +162,18 @@
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><ins>+&lt;div style=3D&quot;width: 10px; height: 100px;&quot;&gt;
+    &lt;div class=3D&quot;grid gridWithNonFlexingItems&quot;&gt;
+        &lt;div class=3D&quot;sizedToGridArea firstRowFirstColumn&quot; =
data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;40&quot=
;&gt;&lt;/div&gt;
+        &lt;div class=3D&quot;sizedToGridArea secondRowFirstColumn&quot;=
 data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;40&quo=
t;&gt;XXXXX XXXXX XXXXX XXXXX&lt;/div&gt;
+        &lt;div class=3D&quot;sizedToGridArea thirdRowFirstColumn&quot; =
data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;60&quot=
;&gt;XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX&lt;/div&gt;
+        &lt;div class=3D&quot;sizedToGridArea fourthRowFirstColumn&quot;=
 data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;80&quo=
t;&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
</ins><span class=3D"cx"> &lt;!-- The second track should be sized after =
the min-content as the &lt;flex&gt; value should be too small. --&gt;
</span><span class=3D"cx"> &lt;div style=3D&quot;width: 10px; height: 180=
px;&quot;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridWithNonFlexingItems&quot;=
&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridWithNonFlexingItems&quot; =
style=3D&quot;height: 100%&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea f=
irstRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expect=
ed-height=3D&quot;40&quot;&gt;&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea =
secondRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expe=
cted-height=3D&quot;40&quot;&gt;XXXXX XXXXX XXXXX XXXXX&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea =
thirdRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expec=
ted-height=3D&quot;60&quot;&gt;XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX&lt;/di=
v&gt;
</span><span class=3D"lines">@@ -127,14 +181,32 @@
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><del>-&lt;div style=3D&quot;width: 10px; height: 400px;&quot;&gt;
</del><ins>+&lt;div style=3D&quot;width: 10px; height: 180px;&quot;&gt;
</ins><span class=3D"cx">     &lt;div class=3D&quot;grid gridWithNonFlexi=
ngItems&quot;&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea =
firstRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expec=
ted-height=3D&quot;40&quot;&gt;&lt;/div&gt;
</span><ins>+        &lt;div class=3D&quot;sizedToGridArea secondRowFirst=
Column&quot; data-expected-width=3D&quot;50&quot; data-expected-height=3D=
&quot;40&quot;&gt;XXXXX XXXXX XXXXX XXXXX&lt;/div&gt;
+        &lt;div class=3D&quot;sizedToGridArea thirdRowFirstColumn&quot; =
data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;60&quot=
;&gt;XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX&lt;/div&gt;
+        &lt;div class=3D&quot;sizedToGridArea fourthRowFirstColumn&quot;=
 data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;80&quo=
t;&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div style=3D&quot;width: 10px; height: 400px;&quot;&gt;
+    &lt;div class=3D&quot;grid gridWithNonFlexingItems&quot; style=3D&qu=
ot;height: 100%&quot;&gt;
+        &lt;div class=3D&quot;sizedToGridArea firstRowFirstColumn&quot; =
data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;40&quot=
;&gt;&lt;/div&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea s=
econdRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expec=
ted-height=3D&quot;100&quot;&gt;XXXXX XXXXX XXXXX XXXXX&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea =
thirdRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expec=
ted-height=3D&quot;60&quot;&gt;XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX&lt;/di=
v&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea =
fourthRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expe=
cted-height=3D&quot;200&quot;&gt;&lt;/div&gt;
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><ins>+&lt;div style=3D&quot;width: 10px; height: 400px;&quot;&gt;
+    &lt;div class=3D&quot;grid gridWithNonFlexingItems&quot;&gt;
+        &lt;div class=3D&quot;sizedToGridArea firstRowFirstColumn&quot; =
data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;40&quot=
;&gt;&lt;/div&gt;
+        &lt;div class=3D&quot;sizedToGridArea secondRowFirstColumn&quot;=
 data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;40&quo=
t;&gt;XXXXX XXXXX XXXXX XXXXX&lt;/div&gt;
+        &lt;div class=3D&quot;sizedToGridArea thirdRowFirstColumn&quot; =
data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;60&quot=
;&gt;XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX&lt;/div&gt;
+        &lt;div class=3D&quot;sizedToGridArea fourthRowFirstColumn&quot;=
 data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;80&quo=
t;&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
</ins><span class=3D"cx"> &lt;/body&gt;
</span><span class=3D"cx"> &lt;/html&gt;
</span></span></pre></div>
<a id=3D"trunkLayoutTestsfastcssgridlayoutflexcontentresolutionrowsexpect=
edtxt"></a>
<div class=3D"modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layo=
ut/flex-content-resolution-rows-expected.txt (164608 =3D> 164609)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/LayoutTests/fast/css-grid-layout/flex-cont=
ent-resolution-rows-expected.txt	2014-02-24 22:21:35 UTC (rev 164608)
+++ trunk/LayoutTests/fast/css-grid-layout/flex-content-resolution-rows-e=
xpected.txt	2014-02-24 22:29:20 UTC (rev 164609)
</span><span class=3D"lines">@@ -12,3 +12,13 @@
</span><span class=3D"cx"> PASS
</span><span class=3D"cx"> PASS
</span><span class=3D"cx"> PASS
</span><ins>+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
</ins></span></pre></div>
<a id=3D"trunkLayoutTestsfastcssgridlayoutflexcontentresolutionrowshtml">=
</a>
<div class=3D"modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layo=
ut/flex-content-resolution-rows.html (164608 =3D> 164609)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/LayoutTests/fast/css-grid-layout/flex-cont=
ent-resolution-rows.html	2014-02-24 22:21:35 UTC (rev 164608)
+++ trunk/LayoutTests/fast/css-grid-layout/flex-content-resolution-rows.h=
tml	2014-02-24 22:29:20 UTC (rev 164609)
</span><span class=3D"lines">@@ -29,18 +29,30 @@
</span><span class=3D"cx"> &lt;p&gt;Test that resolving auto tracks on gr=
id items works properly.&lt;/p&gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div style=3D&quot;height: 0px&quot;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridMinFlexContent&quot;&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridMinFlexContent&quot; style=
=3D&quot;height: 100%&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea f=
irstRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expect=
ed-height=3D&quot;0&quot;&gt;&lt;/div&gt;
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><ins>+&lt;div style=3D&quot;height: 0px&quot;&gt;
+    &lt;div class=3D&quot;grid gridMinFlexContent&quot;&gt;
+        &lt;div class=3D&quot;sizedToGridArea firstRowFirstColumn&quot; =
data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;50&quot=
;&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
</ins><span class=3D"cx"> &lt;!-- Allow the extra logical space distribut=
ion to occur. --&gt;
</span><span class=3D"cx"> &lt;div style=3D&quot;width: 10px; height: 40p=
x&quot;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridMinFlexContent&quot;&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridMinFlexContent&quot; style=
=3D&quot;height: 100%&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea f=
irstRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expect=
ed-height=3D&quot;40&quot;&gt;&lt;/div&gt;
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><ins>+&lt;div style=3D&quot;width: 10px; height: 40px&quot;&gt;
+    &lt;div class=3D&quot;grid gridMinFlexContent&quot;&gt;
+        &lt;div class=3D&quot;sizedToGridArea firstRowFirstColumn&quot; =
data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;50&quot=
;&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
</ins><span class=3D"cx"> &lt;div style=3D&quot;width: 10px; height: 100p=
x;&quot;&gt;
</span><span class=3D"cx">     &lt;div class=3D&quot;grid gridMinFlexCont=
ent&quot;&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea =
firstRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expec=
ted-height=3D&quot;50&quot;&gt;&lt;/div&gt;
</span><span class=3D"lines">@@ -56,62 +68,114 @@
</span><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;!-- Allow the extra logical space distribu=
tion to occur. --&gt;
</span><span class=3D"cx"> &lt;div style=3D&quot;width: 10px; height: 40p=
x&quot;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridMaxFlexContent&quot;&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridMaxFlexContent&quot; style=
=3D&quot;height: 100%;&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea f=
irstRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expect=
ed-height=3D&quot;40&quot;&gt;&lt;/div&gt;
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><ins>+&lt;div style=3D&quot;width: 10px; height: 40px&quot;&gt;
+    &lt;div class=3D&quot;grid gridMaxFlexContent&quot;&gt;
+        &lt;div class=3D&quot;sizedToGridArea firstRowFirstColumn&quot; =
data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;30&quot=
;&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
</ins><span class=3D"cx"> &lt;div style=3D&quot;width: 10px; height: 100p=
x;&quot;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridMaxFlexContent&quot;&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridMaxFlexContent&quot; style=
=3D&quot;height: 100%;&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea f=
irstRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expect=
ed-height=3D&quot;100&quot;&gt;&lt;/div&gt;
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><ins>+&lt;div style=3D&quot;width: 10px; height: 100px;&quot;&gt;
+    &lt;div class=3D&quot;grid gridMaxFlexContent&quot;&gt;
+        &lt;div class=3D&quot;sizedToGridArea firstRowFirstColumn&quot; =
data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;30&quot=
;&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
</ins><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div class=3D&quot;constrainedContainer&quo=
t;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridTwoMaxFlexContent&quot;&g=
t;
</del><ins>+    &lt;div class=3D&quot;grid gridTwoMaxFlexContent&quot; st=
yle=3D&quot;height: 100%&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea f=
irstRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expect=
ed-height=3D&quot;10&quot;&gt;&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea =
secondRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expe=
cted-height=3D&quot;10&quot;&gt;&lt;/div&gt;
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><ins>+&lt;div class=3D&quot;constrainedContainer&quot;&gt;
+    &lt;div class=3D&quot;grid gridTwoMaxFlexContent&quot;&gt;
+        &lt;div class=3D&quot;sizedToGridArea firstRowFirstColumn&quot; =
data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;10&quot=
;&gt;&lt;/div&gt;
+        &lt;div class=3D&quot;sizedToGridArea secondRowFirstColumn&quot;=
 data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;20&quo=
t;&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
</ins><span class=3D"cx"> &lt;!-- Allow the extra logical space distribut=
ion to occur. --&gt;
</span><span class=3D"cx"> &lt;div style=3D&quot;width: 10px; height: 60p=
x&quot;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridTwoMaxFlexContent&quot;&g=
t;
</del><ins>+    &lt;div class=3D&quot;grid gridTwoMaxFlexContent&quot; st=
yle=3D&quot;height: 100%&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea f=
irstRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expect=
ed-height=3D&quot;20&quot;&gt;&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea =
secondRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expe=
cted-height=3D&quot;40&quot;&gt;&lt;/div&gt;
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><ins>+&lt;div style=3D&quot;width: 10px; height: 60px&quot;&gt;
+    &lt;div class=3D&quot;grid gridTwoMaxFlexContent&quot;&gt;
+        &lt;div class=3D&quot;sizedToGridArea firstRowFirstColumn&quot; =
data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;10&quot=
;&gt;&lt;/div&gt;
+        &lt;div class=3D&quot;sizedToGridArea secondRowFirstColumn&quot;=
 data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;20&quo=
t;&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
</ins><span class=3D"cx"> &lt;div style=3D&quot;width: 10px; height: 120p=
x;&quot;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridTwoMaxFlexContent&quot;&g=
t;
</del><ins>+    &lt;div class=3D&quot;grid gridTwoMaxFlexContent&quot; st=
yle=3D&quot;height: 100%&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea f=
irstRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expect=
ed-height=3D&quot;40&quot;&gt;&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea =
secondRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expe=
cted-height=3D&quot;80&quot;&gt;&lt;/div&gt;
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><ins>+&lt;div style=3D&quot;width: 10px; height: 120px;&quot;&gt;
+    &lt;div class=3D&quot;grid gridTwoMaxFlexContent&quot;&gt;
+        &lt;div class=3D&quot;sizedToGridArea firstRowFirstColumn&quot; =
data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;10&quot=
;&gt;&lt;/div&gt;
+        &lt;div class=3D&quot;sizedToGridArea secondRowFirstColumn&quot;=
 data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;20&quo=
t;&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
</ins><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div class=3D&quot;constrainedContainer&quo=
t;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridTwoDoubleMaxFlexContent&q=
uot;&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridTwoDoubleMaxFlexContent&qu=
ot; style=3D&quot;height: 100%&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea f=
irstRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expect=
ed-height=3D&quot;10&quot;&gt;&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea =
secondRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expe=
cted-height=3D&quot;10&quot;&gt;&lt;/div&gt;
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><ins>+&lt;div class=3D&quot;constrainedContainer&quot;&gt;
+    &lt;div class=3D&quot;grid gridTwoDoubleMaxFlexContent&quot;&gt;
+        &lt;div class=3D&quot;sizedToGridArea firstRowFirstColumn&quot; =
data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;10&quot=
;&gt;&lt;/div&gt;
+        &lt;div class=3D&quot;sizedToGridArea secondRowFirstColumn&quot;=
 data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;40&quo=
t;&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
</ins><span class=3D"cx"> &lt;!-- Allow the extra logical space distribut=
ion to occur. --&gt;
</span><span class=3D"cx"> &lt;div style=3D&quot;width: 10px; height: 60p=
x&quot;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridTwoDoubleMaxFlexContent&q=
uot;&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridTwoDoubleMaxFlexContent&qu=
ot; style=3D&quot;height: 100%&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea f=
irstRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expect=
ed-height=3D&quot;12&quot;&gt;&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea =
secondRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expe=
cted-height=3D&quot;48&quot;&gt;&lt;/div&gt;
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><ins>+&lt;div style=3D&quot;width: 10px; height: 60px&quot;&gt;
+    &lt;div class=3D&quot;grid gridTwoDoubleMaxFlexContent&quot;&gt;
+        &lt;div class=3D&quot;sizedToGridArea firstRowFirstColumn&quot; =
data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;10&quot=
;&gt;&lt;/div&gt;
+        &lt;div class=3D&quot;sizedToGridArea secondRowFirstColumn&quot;=
 data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;40&quo=
t;&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
</ins><span class=3D"cx"> &lt;div style=3D&quot;width: 10px; height: 120p=
x;&quot;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridTwoDoubleMaxFlexContent&q=
uot;&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridTwoDoubleMaxFlexContent&qu=
ot; style=3D&quot;height: 100%&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea f=
irstRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expect=
ed-height=3D&quot;24&quot;&gt;&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea =
secondRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expe=
cted-height=3D&quot;96&quot;&gt;&lt;/div&gt;
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><ins>+&lt;div style=3D&quot;width: 10px; height: 120px;&quot;&gt;
+    &lt;div class=3D&quot;grid gridTwoDoubleMaxFlexContent&quot;&gt;
+        &lt;div class=3D&quot;sizedToGridArea firstRowFirstColumn&quot; =
data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;10&quot=
;&gt;&lt;/div&gt;
+        &lt;div class=3D&quot;sizedToGridArea secondRowFirstColumn&quot;=
 data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;40&quo=
t;&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
</ins><span class=3D"cx"> &lt;/body&gt;
</span><span class=3D"cx"> &lt;/html&gt;
</span></span></pre></div>
<a id=3D"trunkLayoutTestsfastcssgridlayoutgridautocolumnsrowsupdateexpect=
edtxt"></a>
<div class=3D"modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layo=
ut/grid-auto-columns-rows-update-expected.txt (164608 =3D> 164609)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/LayoutTests/fast/css-grid-layout/grid-auto=
-columns-rows-update-expected.txt	2014-02-24 22:21:35 UTC (rev 164608)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-auto-columns-rows-update-=
expected.txt	2014-02-24 22:29:20 UTC (rev 164609)
</span><span class=3D"lines">@@ -19,3 +19,13 @@
</span><span class=3D"cx"> PASS
</span><span class=3D"cx"> PASS
</span><span class=3D"cx"> PASS
</span><ins>+XXXXX XXXXXX
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
</ins></span></pre></div>
<a id=3D"trunkLayoutTestsfastcssgridlayoutgridautocolumnsrowsupdatehtml">=
</a>
<div class=3D"modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layo=
ut/grid-auto-columns-rows-update.html (164608 =3D> 164609)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/LayoutTests/fast/css-grid-layout/grid-auto=
-columns-rows-update.html	2014-02-24 22:21:35 UTC (rev 164608)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-auto-columns-rows-update.=
html	2014-02-24 22:29:20 UTC (rev 164609)
</span><span class=3D"lines">@@ -47,12 +47,21 @@
</span><span class=3D"cx">=20
</span><span class=3D"cx">     updateAndCheck(&quot;unconstrainedGrid&quo=
t;, { 'rows': 'minmax(20em, 15px)', 'columns': '50px' }, { 'width': '50px=
', 'height': '200px' });
</span><span class=3D"cx">     updateAndCheck(&quot;unconstrainedGrid&quo=
t;, { 'rows': 'minmax(20em, 15px)', 'columns': 'minmax(10%, 100px)' }, { =
'width': '100px', 'height': '200px' });
</span><del>-    updateAndCheck(&quot;unconstrainedGrid&quot;, { 'rows': =
'minmax(-webkit-min-content, 15px)', 'columns': 'minmax(10%, 100px)' }, {=
 'width': '100px', 'height': '20px' });
</del><ins>+    updateAndCheck(&quot;unconstrainedGrid&quot;, { 'rows': '=
minmax(-webkit-min-content, 15px)', 'columns': 'minmax(10%, 100px)' }, { =
'width': '100px', 'height': '15px' });
</ins><span class=3D"cx">     updateAndCheck(&quot;unconstrainedGrid&quot=
;, { 'rows': 'minmax(-webkit-min-content, 15px)', 'columns': 'minmax(10%,=
 -webkit-max-content)' }, { 'width': '120px', 'height': '15px' });
</span><span class=3D"cx">     updateAndCheck(&quot;unconstrainedGrid&quo=
t;, { 'rows': 'minmax(-webkit-min-content, 15px)', 'columns': 'minmax(10%=
, -webkit-max-content)' }, { 'width': '120px', 'height': '15px' });
</span><span class=3D"cx">     updateAndCheck(&quot;unconstrainedGrid&quo=
t;, { 'rows': 'auto', 'columns': 'minmax(10em, -webkit-max-content)' }, {=
 'width': '120px', 'height': '10px' });
</span><span class=3D"cx">     updateAndCheck(&quot;unconstrainedGrid&quo=
t;, { 'rows': 'auto', 'columns': 'minmax(20em, -webkit-max-content)' }, {=
 'width': '200px', 'height': '10px' });
</span><span class=3D"cx">     updateAndCheck(&quot;unconstrainedGrid&quo=
t;, { 'rows': 'auto', 'columns': 'auto' }, { 'width': '120px', 'height': =
'10px' });
</span><ins>+
+    updateAndCheck(&quot;constrainedGridUndefinedHeight&quot;, { 'rows':=
 'minmax(20em, 15px)', 'columns': '50px' }, { 'width': '50px', 'height': =
'200px' });
+    updateAndCheck(&quot;constrainedGridUndefinedHeight&quot;, { 'rows':=
 'minmax(20em, 15px)', 'columns': 'minmax(10%, 100px)' }, { 'width': '1px=
', 'height': '200px' });
+    updateAndCheck(&quot;constrainedGridUndefinedHeight&quot;, { 'rows':=
 'minmax(-webkit-min-content, 15px)', 'columns': 'minmax(10%, 100px)' }, =
{ 'width': '1px', 'height': '15px' });
+    updateAndCheck(&quot;constrainedGridUndefinedHeight&quot;, { 'rows':=
 'minmax(-webkit-min-content, 15px)', 'columns': 'minmax(-webkit-max-cont=
ent, 100px)' }, { 'width': '120px', 'height': '15px' });
+    updateAndCheck(&quot;constrainedGridUndefinedHeight&quot;, { 'rows':=
 'minmax(40em, 15px)', 'columns': 'minmax(-webkit-max-content, 100px)' },=
 { 'width': '120px', 'height': '400px' });
+    updateAndCheck(&quot;constrainedGridUndefinedHeight&quot;, { 'rows':=
 'minmax(40em, 15px)', 'columns': 'minmax(10%, 100px)' }, { 'width': '1px=
', 'height': '400px' });
+    updateAndCheck(&quot;constrainedGridUndefinedHeight&quot;, { 'rows':=
 'minmax(40em, 15px)', 'columns': 'auto' }, { 'width': '60px', 'height': =
'400px' });
+    updateAndCheck(&quot;constrainedGridUndefinedHeight&quot;, { 'rows':=
 'auto', 'columns': 'auto' }, { 'width': '60px', 'height': '20px' });
</ins><span class=3D"cx"> }
</span><span class=3D"cx">=20
</span><span class=3D"cx"> window.addEventListener(&quot;load&quot;, upda=
teGridAutoRowsColumns, false);
</span><span class=3D"lines">@@ -62,7 +71,7 @@
</span><span class=3D"cx"> &lt;div&gt;This test checks that grid-auto-{ro=
w|column} updates properly recomputes the grid items' sizes.&lt;/div&gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div class=3D&quot;constrainedContainer&quo=
t; style=3D&quot;position: relative&quot;&gt;
</span><del>-    &lt;div class=3D&quot;grid&quot; id=3D&quot;constrainedG=
rid&quot;&gt;
</del><ins>+    &lt;div class=3D&quot;grid&quot; id=3D&quot;constrainedGr=
id&quot; style=3D&quot;height: 100%&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea s=
econdRowSecondColumn&quot; data-offset-x=3D&quot;10&quot; data-offset-y=3D=
&quot;20&quot; data-expected-width=3D&quot;50&quot; data-expected-height=3D=
&quot;30&quot;&gt;XXXXX XXXXXX&lt;/div&gt;
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"lines">@@ -73,5 +82,11 @@
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><ins>+&lt;div class=3D&quot;constrainedContainer&quot; style=3D&qu=
ot;position: relative;&quot;&gt;
+    &lt;div class=3D&quot;grid&quot; id=3D&quot;constrainedGridUndefined=
Height&quot;&gt;
+        &lt;div class=3D&quot;sizedToGridArea secondRowSecondColumn&quot=
; data-offset-x=3D&quot;10&quot; data-offset-y=3D&quot;20&quot; data-expe=
cted-width=3D&quot;50&quot; data-expected-height=3D&quot;30&quot;&gt;XXXX=
X XXXXXX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
</ins><span class=3D"cx"> &lt;/body&gt;
</span><span class=3D"cx"> &lt;/html&gt;
</span></span></pre></div>
<a id=3D"trunkLayoutTestsfastcssgridlayoutgriddynamicupdatesrelayoutexpec=
tedtxt"></a>
<div class=3D"modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layo=
ut/grid-dynamic-updates-relayout-expected.txt (164608 =3D> 164609)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/LayoutTests/fast/css-grid-layout/grid-dyna=
mic-updates-relayout-expected.txt	2014-02-24 22:21:35 UTC (rev 164608)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-dynamic-updates-relayout-=
expected.txt	2014-02-24 22:29:20 UTC (rev 164609)
</span><span class=3D"lines">@@ -13,6 +13,13 @@
</span><span class=3D"cx"> PASS
</span><span class=3D"cx"> PASS
</span><span class=3D"cx"> PASS
</span><ins>+XXXXX XXXXXX
</ins><span class=3D"cx"> PASS
</span><span class=3D"cx"> PASS
</span><span class=3D"cx"> PASS
</span><ins>+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
</ins></span></pre></div>
<a id=3D"trunkLayoutTestsfastcssgridlayoutgriddynamicupdatesrelayouthtml"=
></a>
<div class=3D"modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layo=
ut/grid-dynamic-updates-relayout.html (164608 =3D> 164609)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/LayoutTests/fast/css-grid-layout/grid-dyna=
mic-updates-relayout.html	2014-02-24 22:21:35 UTC (rev 164608)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-dynamic-updates-relayout.=
html	2014-02-24 22:29:20 UTC (rev 164609)
</span><span class=3D"lines">@@ -28,6 +28,13 @@
</span><span class=3D"cx">     testLayout(&quot;constrainedGrid&quot;, { =
'rows': 'auto', 'columns': 'minmax(-webkit-max-content, 50px)' }, { 'widt=
h': '120', 'height': '10' });
</span><span class=3D"cx">     testLayout(&quot;constrainedGrid&quot;, { =
'rows': '70px', 'columns': 'minmax(-webkit-max-content, 50px)' }, { 'widt=
h': '120', 'height': '70' });
</span><span class=3D"cx">=20
</span><ins>+    testLayout(&quot;constrainedGridUndefinedHeight&quot;, {=
 'rows': 'minmax(20px, 50px)', 'columns': 'minmax(30px, 50px)' }, { 'widt=
h': '30', 'height': '50' });
+    testLayout(&quot;constrainedGridUndefinedHeight&quot;, { 'rows': 'mi=
nmax(40px, 50px)', 'columns': 'minmax(30px, 50px)' }, { 'width': '30', 'h=
eight': '50' });
+    testLayout(&quot;constrainedGridUndefinedHeight&quot;, { 'rows': 'mi=
nmax(40px, 50px)', 'columns': 'minmax(50px, 50px)' }, { 'width': '50', 'h=
eight': '50' });
+    testLayout(&quot;constrainedGridUndefinedHeight&quot;, { 'rows': 'au=
to', 'columns': 'minmax(50px, 50px)' }, { 'width': '50', 'height': '20' }=
);
+    testLayout(&quot;constrainedGridUndefinedHeight&quot;, { 'rows': 'au=
to', 'columns': 'minmax(-webkit-max-content, 50px)' }, { 'width': '120', =
'height': '10' });
+    testLayout(&quot;constrainedGridUndefinedHeight&quot;, { 'rows': '70=
px', 'columns': 'minmax(-webkit-max-content, 50px)' }, { 'width': '120', =
'height': '70' });
+
</ins><span class=3D"cx">     testLayout(&quot;unconstrainedGrid&quot;, {=
 'rows': 'minmax(20px, 50px)', 'columns': 'minmax(20px, 60px)' }, { 'widt=
h': '60', 'height': '50' });
</span><span class=3D"cx">     testLayout(&quot;unconstrainedGrid&quot;, =
{ 'rows': 'minmax(20px, 50px)', 'columns': 'minmax(20px, 40px)' }, { 'wid=
th': '40', 'height': '50' });
</span><span class=3D"cx">     testLayout(&quot;unconstrainedGrid&quot;, =
{ 'rows': 'minmax(20px, 30px)', 'columns': 'minmax(20px, 40px)' }, { 'wid=
th': '40', 'height': '30' });
</span><span class=3D"lines">@@ -44,11 +51,17 @@
</span><span class=3D"cx"> &lt;body&gt;
</span><span class=3D"cx"> &lt;div&gt;This test checks that grid-{rows|co=
lumns} dynamic updates properly relayout the grid items.&lt;/div&gt;
</span><span class=3D"cx"> &lt;div class=3D&quot;constrainedContainer&quo=
t;&gt;
</span><del>-    &lt;div class=3D&quot;grid&quot; id=3D&quot;constrainedG=
rid&quot;&gt;
</del><ins>+    &lt;div class=3D&quot;grid&quot; id=3D&quot;constrainedGr=
id&quot; style=3D&quot;height: 100%&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea&q=
uot;&gt;XXXXX XXXXXX&lt;/div&gt;
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><ins>+&lt;div class=3D&quot;constrainedContainer&quot;&gt;
+    &lt;div class=3D&quot;grid&quot; id=3D&quot;constrainedGridUndefined=
Height&quot;&gt;
+        &lt;div class=3D&quot;sizedToGridArea&quot;&gt;XXXXX XXXXXX&lt;/=
div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
</ins><span class=3D"cx"> &lt;div class=3D&quot;unconstrainedContainer&qu=
ot;&gt;
</span><span class=3D"cx">     &lt;div class=3D&quot;grid&quot; id=3D&quo=
t;unconstrainedGrid&quot;&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea&=
quot;&gt;XXXXX XXXXXX&lt;/div&gt;
</span></span></pre></div>
<a id=3D"trunkLayoutTestsfastcssgridlayoutgriditemadditiontrackbreadthupd=
ateexpectedtxt"></a>
<div class=3D"modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layo=
ut/grid-item-addition-track-breadth-update-expected.txt (164608 =3D> 1646=
09)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/LayoutTests/fast/css-grid-layout/grid-item=
-addition-track-breadth-update-expected.txt	2014-02-24 22:21:35 UTC (rev =
164608)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-item-addition-track-bread=
th-update-expected.txt	2014-02-24 22:29:20 UTC (rev 164609)
</span><span class=3D"lines">@@ -42,6 +42,48 @@
</span><span class=3D"cx"> PASS
</span><span class=3D"cx"> PASS
</span><span class=3D"cx"> PASS
</span><ins>+XXXX XXXX XXXX
+XXXX XXXX XXXX
+XXXX XXXX XXXX
+XXXX XXXX XXXX
+XXXX XXXX XXXX
+XXXX XXXX XXXX
+XXXX XXXX XXXX
+XXXX XXXX XXXX
+XXXX XXXX XXXX
+XXXX XXXX XXXX
+XXXX XXXX XXXX
+XXXX XXXX XXXX
+XXXX XXXX XXXX
+XXXX XXXX XXXX
+XXXX XXXX XXXX
+XXXX XXXX XXXX
+XXXX XXXX XXXX
+XXXX XXXX XXXX
+XXXX XXXX XXXX
+XXXX XXXX XXXX
+XXXX XXXX XXXX
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
</ins><span class=3D"cx"> XXXXXX XXXXXX
</span><span class=3D"cx"> XXXXXX XXXXXX
</span><span class=3D"cx"> XXXXXX XXXXXX
</span></span></pre></div>
<a id=3D"trunkLayoutTestsfastcssgridlayoutgriditemadditiontrackbreadthupd=
atehtml"></a>
<div class=3D"modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layo=
ut/grid-item-addition-track-breadth-update.html (164608 =3D> 164609)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/LayoutTests/fast/css-grid-layout/grid-item=
-addition-track-breadth-update.html	2014-02-24 22:21:35 UTC (rev 164608)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-item-addition-track-bread=
th-update.html	2014-02-24 22:29:20 UTC (rev 164609)
</span><span class=3D"lines">@@ -62,6 +62,33 @@
</span><span class=3D"cx">     testPosition(&quot;constrainedGrid&quot;, =
&quot;XXXX XXXX XXXX&quot;, { 'column': '4', 'row': '4' }, { 'width': '50=
', 'height': '65' });
</span><span class=3D"cx">     testPosition(&quot;constrainedGrid&quot;, =
&quot;XXXX XXXX XXXX&quot;, { 'column': '4', 'row': '5' }, { 'width': '50=
', 'height': '30' });
</span><span class=3D"cx">=20
</span><ins>+
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, &quot;XXXX =
XXXX XXXX&quot;, { 'column': '10', 'row': '15' }, { 'width': '40', 'heigh=
t': '30' });
+
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, &quot;XXXX =
XXXX XXXX&quot;, { 'column': '1', 'row': '1' }, { 'width': '50', 'height'=
: '70' });
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, &quot;XXXX =
XXXX XXXX&quot;, { 'column': '1', 'row': '2' }, { 'width': '50', 'height'=
: '70' });
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, &quot;XXXX =
XXXX XXXX&quot;, { 'column': '1', 'row': '3' }, { 'width': '50', 'height'=
: '50' });
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, &quot;XXXX =
XXXX XXXX&quot;, { 'column': '1', 'row': '4' }, { 'width': '50', 'height'=
: '65' });
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, &quot;XXXX =
XXXX XXXX&quot;, { 'column': '1', 'row': '5' }, { 'width': '50', 'height'=
: '30' });
+
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, &quot;XXXX =
XXXX XXXX&quot;, { 'column': '2', 'row': '1' }, { 'width': '40', 'height'=
: '70' });
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, &quot;XXXX =
XXXX XXXX&quot;, { 'column': '2', 'row': '2' }, { 'width': '40', 'height'=
: '70' });
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, &quot;XXXX =
XXXX XXXX&quot;, { 'column': '2', 'row': '3' }, { 'width': '40', 'height'=
: '50' });
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, &quot;XXXX =
XXXX XXXX&quot;, { 'column': '2', 'row': '4' }, { 'width': '40', 'height'=
: '65' });
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, &quot;XXXX =
XXXX XXXX&quot;, { 'column': '2', 'row': '5' }, { 'width': '40', 'height'=
: '30' });
+
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, &quot;XXXX =
XXXX XXXX&quot;, { 'column': '3', 'row': '1' }, { 'width': '140', 'height=
': '70' });
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, &quot;XXXX =
XXXX XXXX&quot;, { 'column': '3', 'row': '2' }, { 'width': '140', 'height=
': '70' });
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, &quot;XXXX =
XXXX XXXX&quot;, { 'column': '3', 'row': '3' }, { 'width': '140', 'height=
': '50' });
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, &quot;XXXX =
XXXX XXXX&quot;, { 'column': '3', 'row': '4' }, { 'width': '140', 'height=
': '65' });
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, &quot;XXXX =
XXXX XXXX&quot;, { 'column': '3', 'row': '5' }, { 'width': '140', 'height=
': '30' });
+
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, &quot;XXXX =
XXXX XXXX&quot;, { 'column': '4', 'row': '1' }, { 'width': '50', 'height'=
: '70' });
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, &quot;XXXX =
XXXX XXXX&quot;, { 'column': '4', 'row': '2' }, { 'width': '50', 'height'=
: '70' });
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, &quot;XXXX =
XXXX XXXX&quot;, { 'column': '4', 'row': '3' }, { 'width': '50', 'height'=
: '50' });
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, &quot;XXXX =
XXXX XXXX&quot;, { 'column': '4', 'row': '4' }, { 'width': '50', 'height'=
: '65' });
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, &quot;XXXX =
XXXX XXXX&quot;, { 'column': '4', 'row': '5' }, { 'width': '50', 'height'=
: '30' });
+
</ins><span class=3D"cx">     testPosition(&quot;unconstrainedGrid&quot;,=
 &quot;XXXXXX XXXXXX&quot;, { 'column': '10', 'row': '15' }, { 'width': '=
130', 'height': '10' });
</span><span class=3D"cx">=20
</span><span class=3D"cx">     testPosition(&quot;unconstrainedGrid&quot;=
, &quot;XXXXXX XXXXXX&quot;, { 'column': '1', 'row': '1' }, { 'width': '5=
0', 'height': '70' });
</span><span class=3D"lines">@@ -95,9 +122,13 @@
</span><span class=3D"cx"> &lt;p&gt;This test checks that we properly rec=
ompute our grid tracks' sizes when we add more grid items.&lt;/p&gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div class=3D&quot;constrainedContainer&quo=
t;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridFixedContent&quot; id=3D&=
quot;constrainedGrid&quot;&gt;&lt;/div&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridFixedContent&quot; id=3D&q=
uot;constrainedGrid&quot; style=3D&quot;height: 100%&quot;&gt;&lt;/div&gt=
;
</ins><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><ins>+&lt;div class=3D&quot;constrainedContainer&quot;&gt;
+    &lt;div class=3D&quot;grid gridFixedContent&quot; id=3D&quot;constra=
inedGridUndefinedHeight&quot;&gt;&lt;/div&gt;
+&lt;/div&gt;
+
</ins><span class=3D"cx"> &lt;!-- Allow the extra logical space distribut=
ion to occur. --&gt;
</span><span class=3D"cx"> &lt;div style=3D&quot;width: 1000px; height: 1=
000px&quot;&gt;
</span><span class=3D"cx">     &lt;div class=3D&quot;grid gridFixedConten=
t&quot; id=3D&quot;unconstrainedGrid&quot;&gt;&lt;div class=3D&quot;sized=
ToGridArea&quot;&gt;XXXXXX XXXXXX&lt;/div&gt;&lt;/div&gt;
</span></span></pre></div>
<a id=3D"trunkLayoutTestsfastcssgridlayoutgriditemmultipleminmaxcontentre=
solutionexpectedtxt"></a>
<div class=3D"modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layo=
ut/grid-item-multiple-minmax-content-resolution-expected.txt (164608 =3D>=
 164609)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/LayoutTests/fast/css-grid-layout/grid-item=
-multiple-minmax-content-resolution-expected.txt	2014-02-24 22:21:35 UTC =
(rev 164608)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-item-multiple-minmax-cont=
ent-resolution-expected.txt	2014-02-24 22:29:20 UTC (rev 164609)
</span><span class=3D"lines">@@ -15,3 +15,8 @@
</span><span class=3D"cx"> XXXXX XXXXX
</span><span class=3D"cx"> XXXXX XXXXX XXXXX XXXXX
</span><span class=3D"cx"> PASS
</span><ins>+XXXXX XXXXX
+XXXXX XXXXX XXXXX
+XXXXX XXXXX
+XXXXX XXXXX XXXXX XXXXX
+PASS
</ins></span></pre></div>
<a id=3D"trunkLayoutTestsfastcssgridlayoutgriditemmultipleminmaxcontentre=
solutionhtml"></a>
<div class=3D"modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layo=
ut/grid-item-multiple-minmax-content-resolution.html (164608 =3D> 164609)=
</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/LayoutTests/fast/css-grid-layout/grid-item=
-multiple-minmax-content-resolution.html	2014-02-24 22:21:35 UTC (rev 164=
608)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-item-multiple-minmax-cont=
ent-resolution.html	2014-02-24 22:29:20 UTC (rev 164609)
</span><span class=3D"lines">@@ -26,7 +26,7 @@
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div class=3D&quot;constrainedContainer&quo=
t; style=3D&quot;position: relative;&quot;&gt;
</span><del>-&lt;div class=3D&quot;grid gridMinMaxAutoWithColumnMinMaxAut=
o&quot;&gt;
</del><ins>+&lt;div class=3D&quot;grid gridMinMaxAutoWithColumnMinMaxAuto=
&quot; style=3D&quot;height: 100%&quot;&gt;
</ins><span class=3D"cx">     &lt;div class=3D&quot;sizedToGridArea first=
RowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expected-h=
eight=3D&quot;30&quot;&gt;XXXXX XXXXX&lt;/div&gt;
</span><span class=3D"cx">     &lt;div class=3D&quot;sizedToGridArea firs=
tRowSecondColumn&quot; data-expected-width=3D&quot;50&quot; data-expected=
-height=3D&quot;30&quot;&gt;XXXXX XXXXX XXXXX&lt;/div&gt;
</span><span class=3D"cx">     &lt;div class=3D&quot;sizedToGridArea seco=
ndRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expected=
-height=3D&quot;50&quot;&gt;XXXXX XXXXX&lt;/div&gt;
</span><span class=3D"lines">@@ -34,12 +34,21 @@
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><ins>+&lt;div class=3D&quot;constrainedContainer&quot; style=3D&qu=
ot;position: relative;&quot;&gt;
+&lt;div class=3D&quot;grid gridMinMaxAutoWithColumnMinMaxAuto&quot;&gt;
+    &lt;div class=3D&quot;sizedToGridArea firstRowFirstColumn&quot; data=
-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;30&quot;&gt=
;XXXXX XXXXX&lt;/div&gt;
+    &lt;div class=3D&quot;sizedToGridArea firstRowSecondColumn&quot; dat=
a-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;30&quot;&g=
t;XXXXX XXXXX XXXXX&lt;/div&gt;
+    &lt;div class=3D&quot;sizedToGridArea secondRowFirstColumn&quot; dat=
a-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;100&quot;&=
gt;XXXXX XXXXX&lt;/div&gt;
+    &lt;div class=3D&quot;sizedToGridArea secondRowSecondColumn&quot; da=
ta-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;100&quot;=
&gt;XXXXX XXXXX XXXXX XXXXX&lt;/div&gt;
+&lt;/div&gt;
+&lt;/div&gt;
+
</ins><span class=3D"cx"> &lt;div style=3D&quot;height: 100px; width: 220=
px; position: relative;&quot;&gt;
</span><span class=3D"cx"> &lt;div class=3D&quot;grid gridMinMaxAutoWithC=
olumnMinMaxAuto&quot;&gt;
</span><span class=3D"cx">     &lt;div class=3D&quot;sizedToGridArea firs=
tRowFirstColumn&quot; data-expected-width=3D&quot;110&quot; data-expected=
-height=3D&quot;20&quot;&gt;XXXXX XXXXX&lt;/div&gt;
</span><span class=3D"cx">     &lt;div class=3D&quot;sizedToGridArea firs=
tRowSecondColumn&quot; data-expected-width=3D&quot;110&quot; data-expecte=
d-height=3D&quot;20&quot;&gt;XXXXX XXXXX XXXXX&lt;/div&gt;
</span><del>-    &lt;div class=3D&quot;sizedToGridArea secondRowFirstColu=
mn&quot; data-expected-width=3D&quot;110&quot; data-expected-height=3D&qu=
ot;80&quot;&gt;XXXXX XXXXX&lt;/div&gt;
-    &lt;div class=3D&quot;sizedToGridArea secondRowSecondColumn&quot; da=
ta-expected-width=3D&quot;110&quot; data-expected-height=3D&quot;80&quot;=
&gt;XXXXX XXXXX XXXXX XXXXX&lt;/div&gt;
</del><ins>+    &lt;div class=3D&quot;sizedToGridArea secondRowFirstColum=
n&quot; data-expected-width=3D&quot;110&quot; data-expected-height=3D&quo=
t;100&quot;&gt;XXXXX XXXXX&lt;/div&gt;
+    &lt;div class=3D&quot;sizedToGridArea secondRowSecondColumn&quot; da=
ta-expected-width=3D&quot;110&quot; data-expected-height=3D&quot;100&quot=
;&gt;XXXXX XXXXX XXXXX XXXXX&lt;/div&gt;
</ins><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span></span></pre></div>
<a id=3D"trunkLayoutTestsfastcssgridlayoutgriditemremovaltrackbreadthupda=
teexpectedtxt"></a>
<div class=3D"modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layo=
ut/grid-item-removal-track-breadth-update-expected.txt (164608 =3D> 16460=
9)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/LayoutTests/fast/css-grid-layout/grid-item=
-removal-track-breadth-update-expected.txt	2014-02-24 22:21:35 UTC (rev 1=
64608)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-item-removal-track-breadt=
h-update-expected.txt	2014-02-24 22:29:20 UTC (rev 164609)
</span><span class=3D"lines">@@ -20,6 +20,14 @@
</span><span class=3D"cx"> PASS
</span><span class=3D"cx"> PASS
</span><span class=3D"cx"> PASS
</span><ins>+XXX XXX XXX
+PASS
+PASS
+PASS
+XXX XXX XXX
+PASS
+PASS
+PASS
</ins><span class=3D"cx"> XX XX XX XX XX XX
</span><span class=3D"cx"> PASS
</span><span class=3D"cx"> PASS
</span><span class=3D"lines">@@ -60,3 +68,23 @@
</span><span class=3D"cx"> PASS
</span><span class=3D"cx"> PASS
</span><span class=3D"cx"> PASS
</span><ins>+XX XX XX XX XX XX
+PASS
+PASS
+PASS
+XX XX XX XX XX XX
+PASS
+PASS
+PASS
+XX XX XX XX XX XX
+PASS
+PASS
+PASS
+XX XX XX XX XX XX
+PASS
+PASS
+PASS
+XX XX XX XX XX XX
+PASS
+PASS
+PASS
</ins></span></pre></div>
<a id=3D"trunkLayoutTestsfastcssgridlayoutgriditemremovaltrackbreadthupda=
tehtml"></a>
<div class=3D"modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layo=
ut/grid-item-removal-track-breadth-update.html (164608 =3D> 164609)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/LayoutTests/fast/css-grid-layout/grid-item=
-removal-track-breadth-update.html	2014-02-24 22:21:35 UTC (rev 164608)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-item-removal-track-breadt=
h-update.html	2014-02-24 22:29:20 UTC (rev 164609)
</span><span class=3D"lines">@@ -76,21 +76,28 @@
</span><span class=3D"cx"> {
</span><span class=3D"cx">     testRemoval(&quot;constrainedAutoGrid&quot=
;, { 'width': '50', 'height': '40' }, { 'width': '40', 'height': '40' }, =
{ 'width': '30', 'height': '30' });
</span><span class=3D"cx">     testRemoval(&quot;constrainedMinContentFix=
edGrid&quot;, { 'width': '50', 'height': '40' }, { 'width': '40', 'height=
': '40' }, { 'width': '30', 'height': '30' });
</span><ins>+    testRemoval(&quot;constrainedMinContentFixedGridUndefine=
dHeight&quot;, { 'width': '50', 'height': '40' }, { 'width': '40', 'heigh=
t': '40' }, { 'width': '30', 'height': '40' });
</ins><span class=3D"cx">     testRemoval(&quot;constrainedMaxContentFixe=
dGrid&quot;, { 'width': '190', 'height': '10' }, { 'width': '190', 'heigh=
t': '10' }, { 'width': '110', 'height': '10' });
</span><ins>+    testRemoval(&quot;constrainedMaxContentFixedGridUndefine=
dHeight&quot;, { 'width': '190', 'height': '40' }, { 'width': '190', 'hei=
ght': '40' }, { 'width': '110', 'height': '40' });
</ins><span class=3D"cx">     testRemoval(&quot;constrainedFixedMinConten=
tGrid&quot;, { 'width': '100', 'height': '40' }, { 'width': '100', 'heigh=
t': '40' }, { 'width': '100', 'height': '40' });
</span><span class=3D"cx">     testRemoval(&quot;constrainedFixedMaxConte=
ntGrid&quot;, { 'width': '100', 'height': '40' }, { 'width': '100', 'heig=
ht': '40' }, { 'width': '100', 'height': '40' });
</span><span class=3D"cx">=20
</span><span class=3D"cx">     testRemoval(&quot;unconstrainedAutoGrid&qu=
ot;, { 'width': '390', 'height': '10' }, { 'width': '350', 'height': '10'=
 }, { 'width': '170', 'height': '10' });
</span><span class=3D"cx">     testRemoval(&quot;unconstrainedMinContentF=
ixedGrid&quot;, { 'width': '100', 'height': '60' }, { 'width': '100', 'he=
ight': '60' }, { 'width': '100', 'height': '40' });
</span><ins>+    testRemoval(&quot;unconstrainedMinContentFixedGridUndefi=
nedHeight&quot;, { 'width': '100', 'height': '40' }, { 'width': '100', 'h=
eight': '40' }, { 'width': '100', 'height': '40' });
</ins><span class=3D"cx">     testRemoval(&quot;unconstrainedMaxContentFi=
xedGrid&quot;, { 'width': '390', 'height': '40' }, { 'width': '350', 'hei=
ght': '40' }, { 'width': '170', 'height': '40' });
</span><span class=3D"cx">     testRemoval(&quot;unconstrainedFixedMinCon=
tentGrid&quot;, { 'width': '100', 'height': '60' }, { 'width': '100', 'he=
ight': '60' }, { 'width': '100', 'height': '40' });
</span><span class=3D"cx">     testRemoval(&quot;unconstrainedFixedMaxCon=
tentGrid&quot;, { 'width': '390', 'height': '40' }, { 'width': '350', 'he=
ight': '40' }, { 'width': '170', 'height': '40' });
</span><span class=3D"cx">=20
</span><span class=3D"cx">     testRemoval(&quot;lessConstrainedAutoGrid&=
quot;, { 'width': '60', 'height': '90' }, { 'width': '60', 'height': '60'=
 }, { 'width': '60', 'height': '30' });
</span><span class=3D"cx">     testRemoval(&quot;lessConstrainedMinConten=
tFixedGrid&quot;, { 'width': '60', 'height': '90' }, { 'width': '60', 'he=
ight': '60' }, { 'width': '60', 'height': '30' });
</span><ins>+    testRemoval(&quot;lessConstrainedMinContentFixedGridUnde=
finedHeight&quot;, { 'width': '60', 'height': '40' }, { 'width': '60', 'h=
eight': '40' }, { 'width': '60', 'height': '40' });
</ins><span class=3D"cx">     testRemoval(&quot;lessConstrainedMaxContent=
FixedGrid&quot;, { 'width': '350', 'height': '20' }, { 'width': '350', 'h=
eight': '20' }, { 'width': '170', 'height': '20' });
</span><ins>+    testRemoval(&quot;lessConstrainedMaxContentFixedGridUnde=
finedHeight&quot;, { 'width': '350', 'height': '40' }, { 'width': '350', =
'height': '40' }, { 'width': '170', 'height': '40' });
</ins><span class=3D"cx">     testRemoval(&quot;lessConstrainedFixedMinCo=
ntentGrid&quot;, { 'width': '100', 'height': '40' }, { 'width': '100', 'h=
eight': '40' }, { 'width': '100', 'height': '40' });
</span><ins>+    testRemoval(&quot;lessConstrainedFixedMinContentGridUnde=
finedHeight&quot;, { 'width': '100', 'height': '60' }, { 'width': '100', =
'height': '60' }, { 'width': '100', 'height': '40' });
</ins><span class=3D"cx">     testRemoval(&quot;lessConstrainedFixedMaxCo=
ntentGrid&quot;, { 'width': '100', 'height': '40' }, { 'width': '100', 'h=
eight': '40' }, { 'width': '100', 'height': '40' });
</span><ins>+    testRemoval(&quot;lessConstrainedFixedMaxContentGridUnde=
finedHeight&quot;, { 'width': '100', 'height': '60' }, { 'width': '100', =
'height': '60' }, { 'width': '100', 'height': '40' });
</ins><span class=3D"cx"> }
</span><span class=3D"cx"> window.addEventListener(&quot;load&quot;, test=
Removals, false);
</span><span class=3D"cx"> &lt;/script&gt;
</span><span class=3D"lines">@@ -107,7 +114,7 @@
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div class=3D&quot;constrainedContainer&quo=
t;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridMinContentFixed&quot; id=3D=
&quot;constrainedMinContentFixedGrid&quot;&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridMinContentFixed&quot; id=3D=
&quot;constrainedMinContentFixedGrid&quot; style=3D&quot;height: 100%&quo=
t;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstColu=
mn&quot;&gt;XXXXX XXXXX XXXXX&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstCol=
umn&quot;&gt;XXXX XXXX XXXX XXXX&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstCol=
umn&quot;&gt;XXX XXX XXX&lt;/div&gt;
</span><span class=3D"lines">@@ -115,7 +122,7 @@
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div class=3D&quot;constrainedContainer&quo=
t;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridMaxContentFixed&quot; id=3D=
&quot;constrainedMaxContentFixedGrid&quot;&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridMinContentFixed&quot; id=3D=
&quot;constrainedMinContentFixedGridUndefinedHeight&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstColu=
mn&quot;&gt;XXXXX XXXXX XXXXX&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstCol=
umn&quot;&gt;XXXX XXXX XXXX XXXX&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstCol=
umn&quot;&gt;XXX XXX XXX&lt;/div&gt;
</span><span class=3D"lines">@@ -123,6 +130,22 @@
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div class=3D&quot;constrainedContainer&quo=
t;&gt;
</span><ins>+    &lt;div class=3D&quot;grid gridMaxContentFixed&quot; id=3D=
&quot;constrainedMaxContentFixedGrid&quot; style=3D&quot;height: 100%&quo=
t;&gt;
+        &lt;div class=3D&quot;firstRowFirstColumn&quot;&gt;XXXXX XXXXX X=
XXXX&lt;/div&gt;
+        &lt;div class=3D&quot;firstRowFirstColumn&quot;&gt;XXXX XXXX XXX=
X XXXX&lt;/div&gt;
+        &lt;div class=3D&quot;firstRowFirstColumn&quot;&gt;XXX XXX XXX&l=
t;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=3D&quot;constrainedContainer&quot;&gt;
+    &lt;div class=3D&quot;grid gridMaxContentFixed&quot; id=3D&quot;cons=
trainedMaxContentFixedGridUndefinedHeight&quot;&gt;
+        &lt;div class=3D&quot;firstRowFirstColumn&quot;&gt;XXXXX XXXXX X=
XXXX&lt;/div&gt;
+        &lt;div class=3D&quot;firstRowFirstColumn&quot;&gt;XXXX XXXX XXX=
X XXXX&lt;/div&gt;
+        &lt;div class=3D&quot;firstRowFirstColumn&quot;&gt;XXX XXX XXX&l=
t;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=3D&quot;constrainedContainer&quot;&gt;
</ins><span class=3D"cx">     &lt;div class=3D&quot;grid gridFixedMinCont=
ent&quot; id=3D&quot;constrainedFixedMinContentGrid&quot;&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstCol=
umn&quot;&gt;XXXXX XXXXX XXXXX&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstCol=
umn&quot;&gt;XXXX XXXX XXXX XXXX&lt;/div&gt;
</span><span class=3D"lines">@@ -148,7 +171,7 @@
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div class=3D&quot;unconstrainedContainer&q=
uot;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridMinContentFixed&quot; id=3D=
&quot;unconstrainedMinContentFixedGrid&quot;&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridMinContentFixed&quot; id=3D=
&quot;unconstrainedMinContentFixedGrid&quot; style=3D&quot;height: 100%&q=
uot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstColu=
mn&quot;&gt;XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstCol=
umn&quot;&gt;XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstCol=
umn&quot;&gt;XX XX XX XX XX XX&lt;/div&gt;
</span><span class=3D"lines">@@ -156,6 +179,14 @@
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div class=3D&quot;unconstrainedContainer&q=
uot;&gt;
</span><ins>+    &lt;div class=3D&quot;grid gridMinContentFixed&quot; id=3D=
&quot;unconstrainedMinContentFixedGridUndefinedHeight&quot;&gt;
+        &lt;div class=3D&quot;firstRowFirstColumn&quot;&gt;XXX XXX XXX X=
XX XXX XXX XXX XXX XXX XXX&lt;/div&gt;
+        &lt;div class=3D&quot;firstRowFirstColumn&quot;&gt;XXXXX XXXXX X=
XXXX XXXXX XXXXX XXXXX&lt;/div&gt;
+        &lt;div class=3D&quot;firstRowFirstColumn&quot;&gt;XX XX XX XX X=
X XX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=3D&quot;unconstrainedContainer&quot;&gt;
</ins><span class=3D"cx">     &lt;div class=3D&quot;grid gridMaxContentFi=
xed&quot; id=3D&quot;unconstrainedMaxContentFixedGrid&quot;&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstCol=
umn&quot;&gt;XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstCol=
umn&quot;&gt;XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX&lt;/div&gt;
</span><span class=3D"lines">@@ -189,7 +220,7 @@
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div class=3D&quot;lessConstrainedContainer=
&quot;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridMinContentFixed&quot; id=3D=
&quot;lessConstrainedMinContentFixedGrid&quot;&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridMinContentFixed&quot; id=3D=
&quot;lessConstrainedMinContentFixedGrid&quot; style=3D&quot;height: 100%=
&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstColu=
mn&quot;&gt;XXX XXX XXX XXX XXX XXX XXX XXX XXX&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstCol=
umn&quot;&gt;XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstCol=
umn&quot;&gt;XX XX XX XX XX XX&lt;/div&gt;
</span><span class=3D"lines">@@ -197,7 +228,7 @@
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div class=3D&quot;lessConstrainedContainer=
&quot;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridMaxContentFixed&quot; id=3D=
&quot;lessConstrainedMaxContentFixedGrid&quot;&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridMinContentFixed&quot; id=3D=
&quot;lessConstrainedMinContentFixedGridUndefinedHeight&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstColu=
mn&quot;&gt;XXX XXX XXX XXX XXX XXX XXX XXX XXX&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstCol=
umn&quot;&gt;XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstCol=
umn&quot;&gt;XX XX XX XX XX XX&lt;/div&gt;
</span><span class=3D"lines">@@ -205,7 +236,7 @@
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div class=3D&quot;lessConstrainedContainer=
&quot;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridFixedMinContent&quot; id=3D=
&quot;lessConstrainedFixedMinContentGrid&quot;&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridMaxContentFixed&quot; id=3D=
&quot;lessConstrainedMaxContentFixedGrid&quot; style=3D&quot;height: 100%=
&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstColu=
mn&quot;&gt;XXX XXX XXX XXX XXX XXX XXX XXX XXX&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstCol=
umn&quot;&gt;XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstCol=
umn&quot;&gt;XX XX XX XX XX XX&lt;/div&gt;
</span><span class=3D"lines">@@ -213,12 +244,44 @@
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div class=3D&quot;lessConstrainedContainer=
&quot;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridFixedMaxContent&quot; id=3D=
&quot;lessConstrainedFixedMaxContentGrid&quot;&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridMaxContentFixed&quot; id=3D=
&quot;lessConstrainedMaxContentFixedGridUndefinedHeight&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstColu=
mn&quot;&gt;XXX XXX XXX XXX XXX XXX XXX XXX XXX&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstCol=
umn&quot;&gt;XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstCol=
umn&quot;&gt;XX XX XX XX XX XX&lt;/div&gt;
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><ins>+&lt;div class=3D&quot;lessConstrainedContainer&quot;&gt;
+    &lt;div class=3D&quot;grid gridFixedMinContent&quot; id=3D&quot;less=
ConstrainedFixedMinContentGrid&quot; style=3D&quot;height: 100%&quot;&gt;
+        &lt;div class=3D&quot;firstRowFirstColumn&quot;&gt;XXX XXX XXX X=
XX XXX XXX XXX XXX XXX&lt;/div&gt;
+        &lt;div class=3D&quot;firstRowFirstColumn&quot;&gt;XXXXX XXXXX X=
XXXX XXXXX XXXXX XXXXX&lt;/div&gt;
+        &lt;div class=3D&quot;firstRowFirstColumn&quot;&gt;XX XX XX XX X=
X XX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=3D&quot;lessConstrainedContainer&quot;&gt;
+    &lt;div class=3D&quot;grid gridFixedMinContent&quot; id=3D&quot;less=
ConstrainedFixedMinContentGridUndefinedHeight&quot;&gt;
+        &lt;div class=3D&quot;firstRowFirstColumn&quot;&gt;XXX XXX XXX X=
XX XXX XXX XXX XXX XXX&lt;/div&gt;
+        &lt;div class=3D&quot;firstRowFirstColumn&quot;&gt;XXXXX XXXXX X=
XXXX XXXXX XXXXX XXXXX&lt;/div&gt;
+        &lt;div class=3D&quot;firstRowFirstColumn&quot;&gt;XX XX XX XX X=
X XX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=3D&quot;lessConstrainedContainer&quot;&gt;
+    &lt;div class=3D&quot;grid gridFixedMaxContent&quot; id=3D&quot;less=
ConstrainedFixedMaxContentGrid&quot; style=3D&quot;height: 100%&quot;&gt;
+        &lt;div class=3D&quot;firstRowFirstColumn&quot;&gt;XXX XXX XXX X=
XX XXX XXX XXX XXX XXX&lt;/div&gt;
+        &lt;div class=3D&quot;firstRowFirstColumn&quot;&gt;XXXXX XXXXX X=
XXXX XXXXX XXXXX XXXXX&lt;/div&gt;
+        &lt;div class=3D&quot;firstRowFirstColumn&quot;&gt;XX XX XX XX X=
X XX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=3D&quot;lessConstrainedContainer&quot;&gt;
+    &lt;div class=3D&quot;grid gridFixedMaxContent&quot; id=3D&quot;less=
ConstrainedFixedMaxContentGridUndefinedHeight&quot;&gt;
+        &lt;div class=3D&quot;firstRowFirstColumn&quot;&gt;XXX XXX XXX X=
XX XXX XXX XXX XXX XXX&lt;/div&gt;
+        &lt;div class=3D&quot;firstRowFirstColumn&quot;&gt;XXXXX XXXXX X=
XXXX XXXXX XXXXX XXXXX&lt;/div&gt;
+        &lt;div class=3D&quot;firstRowFirstColumn&quot;&gt;XX XX XX XX X=
X XX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
</ins><span class=3D"cx"> &lt;/body&gt;
</span><span class=3D"cx"> &lt;/html&gt;
</span></span></pre></div>
<a id=3D"trunkLayoutTestsfastcssgridlayoutgriditemwithpercentheightinauto=
heightgridresolutionexpectedtxt"></a>
<div class=3D"modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layo=
ut/grid-item-with-percent-height-in-auto-height-grid-resolution-expected.=
txt (164608 =3D> 164609)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/LayoutTests/fast/css-grid-layout/grid-item=
-with-percent-height-in-auto-height-grid-resolution-expected.txt	2014-02-=
24 22:21:35 UTC (rev 164608)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-item-with-percent-height-=
in-auto-height-grid-resolution-expected.txt	2014-02-24 22:29:20 UTC (rev =
164609)
</span><span class=3D"lines">@@ -11,6 +11,11 @@
</span><span class=3D"cx"> XXXXX XXXXXX
</span><span class=3D"cx"> PASS
</span><span class=3D"cx"> XXXXX XXXXXX
</span><ins>+XXXXX XXXXXX
+XXXXX XXXXXX
+XXXXX XXXXXX
+PASS
+XXXXX XXXXXX
</ins><span class=3D"cx"> XXXXX XXXXX XXXXXX
</span><span class=3D"cx"> XXXXX XXXXXX
</span><span class=3D"cx"> XXXXX XXXXX XXXXX XXXXXX
</span></span></pre></div>
<a id=3D"trunkLayoutTestsfastcssgridlayoutgriditemwithpercentheightinauto=
heightgridresolutionhtml"></a>
<div class=3D"modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layo=
ut/grid-item-with-percent-height-in-auto-height-grid-resolution.html (164=
608 =3D> 164609)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/LayoutTests/fast/css-grid-layout/grid-item=
-with-percent-height-in-auto-height-grid-resolution.html	2014-02-24 22:21=
:35 UTC (rev 164608)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-item-with-percent-height-=
in-auto-height-grid-resolution.html	2014-02-24 22:29:20 UTC (rev 164609)
</span><span class=3D"lines">@@ -34,6 +34,15 @@
</span><span class=3D"cx"> &lt;div class=3D&quot;grid gridMinMaxMinMax&qu=
ot;&gt;
</span><span class=3D"cx">     &lt;div class=3D&quot;sizedToGridArea firs=
tRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expected-=
height=3D&quot;20&quot;&gt;XXXXX XXXXXX&lt;/div&gt;
</span><span class=3D"cx">     &lt;div class=3D&quot;sizedToGridArea firs=
tRowSecondColumn&quot; data-expected-width=3D&quot;100&quot; data-expecte=
d-height=3D&quot;20&quot;&gt;XXXXX XXXXXX&lt;/div&gt;
</span><ins>+    &lt;div class=3D&quot;sizedToGridArea secondRowFirstColu=
mn&quot; data-expected-width=3D&quot;50&quot; data-expected-height=3D&quo=
t;100&quot;&gt;XXXXX XXXXXX&lt;/div&gt;
+    &lt;div class=3D&quot;sizedToGridArea secondRowSecondColumn&quot; da=
ta-expected-width=3D&quot;100&quot; data-expected-height=3D&quot;100&quot=
;&gt;XXXXX XXXXXX&lt;/div&gt;
+&lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div style=3D&quot;position: relative;&quot;&gt;
+&lt;div class=3D&quot;grid gridMinMaxMinMax&quot; style=3D&quot;height: =
100px;&quot;&gt;
+    &lt;div class=3D&quot;sizedToGridArea firstRowFirstColumn&quot; data=
-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;20&quot;&gt=
;XXXXX XXXXXX&lt;/div&gt;
+    &lt;div class=3D&quot;sizedToGridArea firstRowSecondColumn&quot; dat=
a-expected-width=3D&quot;100&quot; data-expected-height=3D&quot;20&quot;&=
gt;XXXXX XXXXXX&lt;/div&gt;
</ins><span class=3D"cx">     &lt;div class=3D&quot;sizedToGridArea secon=
dRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expected-=
height=3D&quot;80&quot;&gt;XXXXX XXXXXX&lt;/div&gt;
</span><span class=3D"cx">     &lt;div class=3D&quot;sizedToGridArea seco=
ndRowSecondColumn&quot; data-expected-width=3D&quot;100&quot; data-expect=
ed-height=3D&quot;80&quot;&gt;XXXXX XXXXXX&lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span></span></pre></div>
<a id=3D"trunkLayoutTestsfastcssgridlayoutimplicitpositiondynamicchangeex=
pectedtxt"></a>
<div class=3D"modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layo=
ut/implicit-position-dynamic-change-expected.txt (164608 =3D> 164609)</h4=
>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/LayoutTests/fast/css-grid-layout/implicit-=
position-dynamic-change-expected.txt	2014-02-24 22:21:35 UTC (rev 164608)
+++ trunk/LayoutTests/fast/css-grid-layout/implicit-position-dynamic-chan=
ge-expected.txt	2014-02-24 22:29:20 UTC (rev 164609)
</span><span class=3D"lines">@@ -22,6 +22,28 @@
</span><span class=3D"cx"> PASS
</span><span class=3D"cx"> PASS
</span><span class=3D"cx"> PASS
</span><ins>+XXXX XXXX XXXX
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
</ins><span class=3D"cx"> XXXXXX XXXXXX
</span><span class=3D"cx"> PASS
</span><span class=3D"cx"> PASS
</span></span></pre></div>
<a id=3D"trunkLayoutTestsfastcssgridlayoutimplicitpositiondynamicchangeht=
ml"></a>
<div class=3D"modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layo=
ut/implicit-position-dynamic-change.html (164608 =3D> 164609)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/LayoutTests/fast/css-grid-layout/implicit-=
position-dynamic-change.html	2014-02-24 22:21:35 UTC (rev 164608)
+++ trunk/LayoutTests/fast/css-grid-layout/implicit-position-dynamic-chan=
ge.html	2014-02-24 22:29:20 UTC (rev 164609)
</span><span class=3D"lines">@@ -52,6 +52,33 @@
</span><span class=3D"cx">=20
</span><span class=3D"cx">     testPosition(&quot;constrainedGrid&quot;, =
{ 'column': '10', 'row': '15' }, { 'width': '40', 'height': '30' });
</span><span class=3D"cx">=20
</span><ins>+    var gridItem =3D document.getElementById(&quot;constrain=
edGridUndefinedHeight&quot;).firstChild;
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, { 'column':=
 '1', 'row': '1' }, { 'width': '50', 'height': '70' });
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, { 'column':=
 '1', 'row': '2' }, { 'width': '50', 'height': '70' });
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, { 'column':=
 '1', 'row': '3' }, { 'width': '50', 'height': '50' });
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, { 'column':=
 '1', 'row': '4' }, { 'width': '50', 'height': '65' });
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, { 'column':=
 '1', 'row': '5' }, { 'width': '50', 'height': '30' });
+
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, { 'column':=
 '2', 'row': '1' }, { 'width': '40', 'height': '70' });
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, { 'column':=
 '2', 'row': '2' }, { 'width': '40', 'height': '70' });
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, { 'column':=
 '2', 'row': '3' }, { 'width': '40', 'height': '50' });
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, { 'column':=
 '2', 'row': '4' }, { 'width': '40', 'height': '65' });
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, { 'column':=
 '2', 'row': '5' }, { 'width': '40', 'height': '30' });
+
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, { 'column':=
 '3', 'row': '1' }, { 'width': '140', 'height': '70' });
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, { 'column':=
 '3', 'row': '2' }, { 'width': '140', 'height': '70' });
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, { 'column':=
 '3', 'row': '3' }, { 'width': '140', 'height': '50' });
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, { 'column':=
 '3', 'row': '4' }, { 'width': '140', 'height': '65' });
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, { 'column':=
 '3', 'row': '5' }, { 'width': '140', 'height': '10' });
+
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, { 'column':=
 '4', 'row': '1' }, { 'width': '50', 'height': '70' });
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, { 'column':=
 '4', 'row': '2' }, { 'width': '50', 'height': '70' });
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, { 'column':=
 '4', 'row': '3' }, { 'width': '50', 'height': '50' });
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, { 'column':=
 '4', 'row': '4' }, { 'width': '50', 'height': '65' });
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, { 'column':=
 '4', 'row': '5' }, { 'width': '50', 'height': '30' });
+
+    testPosition(&quot;constrainedGridUndefinedHeight&quot;, { 'column':=
 '10', 'row': '15' }, { 'width': '40', 'height': '30' });
+
</ins><span class=3D"cx">     gridItem =3D document.getElementById(&quot;=
unconstrainedGrid&quot;).firstChild;
</span><span class=3D"cx">     testPosition(&quot;unconstrainedGrid&quot;=
, { 'column': '1', 'row': '1' }, { 'width': '50', 'height': '70' });
</span><span class=3D"cx">     testPosition(&quot;unconstrainedGrid&quot;=
, { 'column': '2', 'row': '1' }, { 'width': '60', 'height': '70' });
</span><span class=3D"lines">@@ -86,9 +113,13 @@
</span><span class=3D"cx"> &lt;p&gt;This test checks that we properly rec=
ompute our grid tracks' sizes when a grid item changes its -webkit-grid-r=
ow or -webkit-grid-column.&lt;/p&gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div class=3D&quot;constrainedContainer&quo=
t;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridFixedContent&quot; id=3D&=
quot;constrainedGrid&quot;&gt;&lt;div class=3D&quot;sizedToGridArea&quot;=
&gt;XXXX XXXX XXXX&lt;/div&gt;&lt;/div&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridFixedContent&quot; id=3D&q=
uot;constrainedGrid&quot; style=3D&quot;height: 100%&quot;&gt;&lt;div cla=
ss=3D&quot;sizedToGridArea&quot;&gt;XXXX XXXX XXXX&lt;/div&gt;&lt;/div&gt=
;
</ins><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><ins>+&lt;div class=3D&quot;constrainedContainer&quot;&gt;
+    &lt;div class=3D&quot;grid gridFixedContent&quot; id=3D&quot;constra=
inedGridUndefinedHeight&quot;&gt;&lt;div class=3D&quot;sizedToGridArea&qu=
ot;&gt;XXXX XXXX XXXX&lt;/div&gt;&lt;/div&gt;
+&lt;/div&gt;
+
</ins><span class=3D"cx"> &lt;!-- Allow the extra logical space distribut=
ion to occur. --&gt;
</span><span class=3D"cx"> &lt;div style=3D&quot;width: 1000px; height: 1=
000px&quot;&gt;
</span><span class=3D"cx">     &lt;div class=3D&quot;grid gridFixedConten=
t&quot; id=3D&quot;unconstrainedGrid&quot;&gt;&lt;div class=3D&quot;sized=
ToGridArea&quot;&gt;XXXXXX XXXXXX&lt;/div&gt;&lt;/div&gt;
</span></span></pre></div>
<a id=3D"trunkLayoutTestsfastcssgridlayoutminmaxmaxcontentresolutionrowse=
xpectedtxt"></a>
<div class=3D"modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layo=
ut/minmax-max-content-resolution-rows-expected.txt (164608 =3D> 164609)</=
h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/LayoutTests/fast/css-grid-layout/minmax-ma=
x-content-resolution-rows-expected.txt	2014-02-24 22:21:35 UTC (rev 16460=
8)
+++ trunk/LayoutTests/fast/css-grid-layout/minmax-max-content-resolution-=
rows-expected.txt	2014-02-24 22:29:20 UTC (rev 164609)
</span><span class=3D"lines">@@ -2,21 +2,31 @@
</span><span class=3D"cx">=20
</span><span class=3D"cx"> XX XX XX
</span><span class=3D"cx"> PASS
</span><ins>+XX XX XX
+PASS
</ins><span class=3D"cx"> XX XX XX XX XX
</span><span class=3D"cx"> PASS
</span><span class=3D"cx"> XX XX XX XX XX XX XX XX
</span><span class=3D"cx"> PASS
</span><ins>+XX XX XX XX XX XX XX XX
+PASS
</ins><span class=3D"cx"> XX XX XX
</span><span class=3D"cx"> PASS
</span><span class=3D"cx"> XX XX XX XX XX XX XX XX
</span><span class=3D"cx"> PASS
</span><ins>+XX XX XX XX XX XX XX XX
+PASS
</ins><span class=3D"cx"> XX
</span><span class=3D"cx"> PASS
</span><span class=3D"cx"> XX XX XX
</span><span class=3D"cx"> PASS
</span><span class=3D"cx"> XX XX XX XX XX
</span><span class=3D"cx"> PASS
</span><ins>+XX XX XX XX XX
+PASS
</ins><span class=3D"cx"> XX XX XX
</span><span class=3D"cx"> PASS
</span><span class=3D"cx"> XX XX XX XX XX
</span><span class=3D"cx"> PASS
</span><ins>+XX XX XX XX XX
+PASS
</ins></span></pre></div>
<a id=3D"trunkLayoutTestsfastcssgridlayoutminmaxmaxcontentresolutionrowsh=
tml"></a>
<div class=3D"modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layo=
ut/minmax-max-content-resolution-rows.html (164608 =3D> 164609)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/LayoutTests/fast/css-grid-layout/minmax-ma=
x-content-resolution-rows.html	2014-02-24 22:21:35 UTC (rev 164608)
+++ trunk/LayoutTests/fast/css-grid-layout/minmax-max-content-resolution-=
rows.html	2014-02-24 22:29:20 UTC (rev 164609)
</span><span class=3D"lines">@@ -33,24 +33,36 @@
</span><span class=3D"cx"> &lt;p&gt;Test that resolving minmax function w=
ith max-content on grid items works properly.&lt;/p&gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div class=3D&quot;constrainedContainer&quo=
t;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridMinMaxContent&quot;&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridMinMaxContent&quot; style=3D=
&quot;height: 100%&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstColu=
mn&quot; data-expected-width=3D&quot;20&quot; data-expected-height=3D&quo=
t;30&quot;&gt;XX XX XX&lt;/div&gt;
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div class=3D&quot;constrainedContainer&quo=
t;&gt;
</span><span class=3D"cx">     &lt;div class=3D&quot;grid gridMinMaxConte=
nt&quot;&gt;
</span><ins>+        &lt;div class=3D&quot;firstRowFirstColumn&quot; data=
-expected-width=3D&quot;20&quot; data-expected-height=3D&quot;50&quot;&gt=
;XX XX XX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=3D&quot;constrainedContainer&quot;&gt;
+    &lt;div class=3D&quot;grid gridMinMaxContent&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstColu=
mn&quot; data-expected-width=3D&quot;20&quot; data-expected-height=3D&quo=
t;50&quot;&gt;XX XX XX XX XX&lt;/div&gt;
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div class=3D&quot;constrainedContainer&quo=
t;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridMinMaxContent&quot;&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridMinMaxContent&quot; style=3D=
&quot;height: 100%&quot;&gt;
</ins><span class=3D"cx">         &lt;!-- The 'max' logical width ends up=
 being smaller than the 'min' so per the spec we ignore the 'max'. --&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstCol=
umn&quot; data-expected-width=3D&quot;20&quot; data-expected-height=3D&qu=
ot;80&quot;&gt;XX XX XX XX XX XX XX XX&lt;/div&gt;
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><ins>+&lt;div class=3D&quot;constrainedContainer&quot;&gt;
+    &lt;div class=3D&quot;grid gridMinMaxContent&quot;&gt;
+        &lt;div class=3D&quot;firstRowFirstColumn&quot; data-expected-wi=
dth=3D&quot;20&quot; data-expected-height=3D&quot;50&quot;&gt;XX XX XX XX=
 XX XX XX XX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
</ins><span class=3D"cx"> &lt;!-- Allow the extra logical space distribut=
ion to occur. --&gt;
</span><span class=3D"cx"> &lt;div style=3D&quot;width: 10px; height: 100=
px;&quot;&gt;
</span><span class=3D"cx">     &lt;div class=3D&quot;grid gridMinMaxConte=
nt&quot;&gt;
</span><span class=3D"lines">@@ -59,12 +71,19 @@
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div style=3D&quot;width: 10px; height: 100=
px;&quot;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridMinMaxContent&quot;&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridMinMaxContent&quot; style=3D=
&quot;height: 100%&quot;&gt;
</ins><span class=3D"cx">         &lt;!-- The 'max' logical width ends up=
 being smaller than the 'min' so per the spec we ignore the 'max'. --&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstCol=
umn&quot; data-expected-width=3D&quot;20&quot; data-expected-height=3D&qu=
ot;80&quot;&gt;XX XX XX XX XX XX XX XX&lt;/div&gt;
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><ins>+&lt;div style=3D&quot;width: 10px; height: 100px;&quot;&gt;
+    &lt;div class=3D&quot;grid gridMinMaxContent&quot;&gt;
+        &lt;!-- The 'max' logical width ends up being smaller than the '=
min' so per the spec we ignore the 'max'. --&gt;
+        &lt;div class=3D&quot;firstRowFirstColumn&quot; data-expected-wi=
dth=3D&quot;20&quot; data-expected-height=3D&quot;50&quot;&gt;XX XX XX XX=
 XX XX XX XX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
</ins><span class=3D"cx"> &lt;div class=3D&quot;constrainedContainer&quot=
;&gt;
</span><span class=3D"cx">     &lt;div class=3D&quot;grid gridMaxMaxConte=
nt&quot;&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstCol=
umn&quot; data-expected-width=3D&quot;20&quot; data-expected-height=3D&qu=
ot;30&quot;&gt;XX&lt;/div&gt;
</span><span class=3D"lines">@@ -78,11 +97,17 @@
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div class=3D&quot;constrainedContainer&quo=
t;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridMaxMaxContent&quot;&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridMaxMaxContent&quot; style=3D=
&quot;height: 100%&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstColu=
mn&quot; data-expected-width=3D&quot;20&quot; data-expected-height=3D&quo=
t;30&quot;&gt;XX XX XX XX XX&lt;/div&gt;
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><ins>+&lt;div class=3D&quot;constrainedContainer&quot;&gt;
+    &lt;div class=3D&quot;grid gridMaxMaxContent&quot;&gt;
+        &lt;div class=3D&quot;firstRowFirstColumn&quot; data-expected-wi=
dth=3D&quot;20&quot; data-expected-height=3D&quot;50&quot;&gt;XX XX XX XX=
 XX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
</ins><span class=3D"cx"> &lt;!-- Allow the extra logical space distribut=
ion to occur. --&gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div style=3D&quot;width: 100px; height: 20=
px&quot;&gt;
</span><span class=3D"lines">@@ -92,11 +117,17 @@
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div style=3D&quot;width: 100px; height: 20=
px&quot;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridMaxMaxContent&quot;&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridMaxMaxContent&quot; style=3D=
&quot;height: 100%&quot;&gt;
</ins><span class=3D"cx">         &lt;!-- The 'max' logical width ends up=
 being smaller than the 'min' so per the spec we ignore the 'max'. --&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstCol=
umn&quot; data-expected-width=3D&quot;20&quot; data-expected-height=3D&qu=
ot;30&quot;&gt;XX XX XX XX XX&lt;/div&gt;
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><ins>+&lt;div style=3D&quot;width: 100px; height: 20px&quot;&gt;
+    &lt;div class=3D&quot;grid gridMaxMaxContent&quot;&gt;
+        &lt;div class=3D&quot;firstRowFirstColumn&quot; data-expected-wi=
dth=3D&quot;20&quot; data-expected-height=3D&quot;50&quot;&gt;XX XX XX XX=
 XX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
</ins><span class=3D"cx"> &lt;/body&gt;
</span><span class=3D"cx"> &lt;/html&gt;
</span></span></pre></div>
<a id=3D"trunkLayoutTestsfastcssgridlayoutminmaxmincontentcolumnresolutio=
nrowsexpectedtxt"></a>
<div class=3D"modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layo=
ut/minmax-min-content-column-resolution-rows-expected.txt (164608 =3D> 16=
4609)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/LayoutTests/fast/css-grid-layout/minmax-mi=
n-content-column-resolution-rows-expected.txt	2014-02-24 22:21:35 UTC (re=
v 164608)
+++ trunk/LayoutTests/fast/css-grid-layout/minmax-min-content-column-reso=
lution-rows-expected.txt	2014-02-24 22:29:20 UTC (rev 164609)
</span><span class=3D"lines">@@ -2,14 +2,20 @@
</span><span class=3D"cx">=20
</span><span class=3D"cx"> XXX XXX
</span><span class=3D"cx"> PASS
</span><ins>+XXX XXX
+PASS
</ins><span class=3D"cx"> XXX XXX XXX XXX
</span><span class=3D"cx"> PASS
</span><span class=3D"cx"> XX XX XX XX XX XX
</span><span class=3D"cx"> PASS
</span><ins>+XX XX XX XX XX XX
+PASS
</ins><span class=3D"cx"> XXX XXX
</span><span class=3D"cx"> PASS
</span><span class=3D"cx"> XX XX XX XX XX XX
</span><span class=3D"cx"> PASS
</span><ins>+XX XX XX XX XX XX
+PASS
</ins><span class=3D"cx"> XXX XXX
</span><span class=3D"cx"> PASS
</span><span class=3D"cx"> XXX XXX XXX
</span></span></pre></div>
<a id=3D"trunkLayoutTestsfastcssgridlayoutminmaxmincontentcolumnresolutio=
nrowshtml"></a>
<div class=3D"modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layo=
ut/minmax-min-content-column-resolution-rows.html (164608 =3D> 164609)</h=
4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/LayoutTests/fast/css-grid-layout/minmax-mi=
n-content-column-resolution-rows.html	2014-02-24 22:21:35 UTC (rev 164608=
)
+++ trunk/LayoutTests/fast/css-grid-layout/minmax-min-content-column-reso=
lution-rows.html	2014-02-24 22:29:20 UTC (rev 164609)
</span><span class=3D"lines">@@ -29,23 +29,35 @@
</span><span class=3D"cx"> &lt;p&gt;Test that resolving minmax function w=
ith min-content on grid items works properly.&lt;/p&gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div class=3D&quot;constrainedContainer&quo=
t;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridMinMinContent&quot;&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridMinMinContent&quot; style=3D=
&quot;height: 100%&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstColu=
mn&quot; data-expected-width=3D&quot;30&quot; data-expected-height=3D&quo=
t;20&quot;&gt;XXX XXX&lt;/div&gt;
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div class=3D&quot;constrainedContainer&quo=
t;&gt;
</span><span class=3D"cx">     &lt;div class=3D&quot;grid gridMinMinConte=
nt&quot;&gt;
</span><ins>+        &lt;div class=3D&quot;firstRowFirstColumn&quot; data=
-expected-width=3D&quot;30&quot; data-expected-height=3D&quot;40&quot;&gt=
;XXX XXX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=3D&quot;constrainedContainer&quot;&gt;
+    &lt;div class=3D&quot;grid gridMinMinContent&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstColu=
mn&quot; data-expected-width=3D&quot;30&quot; data-expected-height=3D&quo=
t;40&quot;&gt;XXX XXX XXX XXX&lt;/div&gt;
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div class=3D&quot;constrainedContainer&quo=
t;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridMinMinContent&quot;&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridMinMinContent&quot; style=3D=
&quot;height: 100%&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstColu=
mn&quot; data-expected-width=3D&quot;30&quot; data-expected-height=3D&quo=
t;60&quot;&gt;XX XX XX XX XX XX&lt;/div&gt;
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><ins>+&lt;div class=3D&quot;constrainedContainer&quot;&gt;
+    &lt;div class=3D&quot;grid gridMinMinContent&quot;&gt;
+        &lt;div class=3D&quot;firstRowFirstColumn&quot; data-expected-wi=
dth=3D&quot;30&quot; data-expected-height=3D&quot;40&quot;&gt;XX XX XX XX=
 XX XX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
</ins><span class=3D"cx"> &lt;!-- Allow the extra logical space distribut=
ion to occur. --&gt;
</span><span class=3D"cx"> &lt;div style=3D&quot;width: 30px; height: 100=
px&quot;&gt;
</span><span class=3D"cx">     &lt;div class=3D&quot;grid gridMinMinConte=
nt&quot;&gt;
</span><span class=3D"lines">@@ -54,11 +66,17 @@
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div style=3D&quot;width: 30px; height: 100=
px&quot;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridMinMinContent&quot;&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridMinMinContent&quot; style=3D=
&quot;height: 100%&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;firstRowFirstColu=
mn&quot; data-expected-width=3D&quot;30&quot; data-expected-height=3D&quo=
t;60&quot;&gt;XX XX XX XX XX XX&lt;/div&gt;
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><ins>+&lt;div style=3D&quot;width: 30px; height: 100px&quot;&gt;
+    &lt;div class=3D&quot;grid gridMinMinContent&quot;&gt;
+        &lt;div class=3D&quot;firstRowFirstColumn&quot; data-expected-wi=
dth=3D&quot;30&quot; data-expected-height=3D&quot;40&quot;&gt;XX XX XX XX=
 XX XX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
</ins><span class=3D"cx"> &lt;div class=3D&quot;constrainedContainer&quot=
;&gt;
</span><span class=3D"cx">     &lt;div class=3D&quot;grid gridMaxMinConte=
nt&quot;&gt;
</span><span class=3D"cx">         &lt;!-- The 'max' logical width ends u=
p being smaller than the 'min' so per the spec we ignore the 'max'. --&gt=
;
</span></span></pre></div>
<a id=3D"trunkLayoutTestsfastcssgridlayoutminmaxspanningresolutionrowsexp=
ectedtxt"></a>
<div class=3D"modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layo=
ut/minmax-spanning-resolution-rows-expected.txt (164608 =3D> 164609)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/LayoutTests/fast/css-grid-layout/minmax-sp=
anning-resolution-rows-expected.txt	2014-02-24 22:21:35 UTC (rev 164608)
+++ trunk/LayoutTests/fast/css-grid-layout/minmax-spanning-resolution-row=
s-expected.txt	2014-02-24 22:29:20 UTC (rev 164609)
</span><span class=3D"lines">@@ -26,12 +26,20 @@
</span><span class=3D"cx"> PASS
</span><span class=3D"cx"> XXXXX XXXXX XXXXX
</span><span class=3D"cx"> PASS
</span><ins>+XXXXX XXXXX XXXXX
+PASS
</ins><span class=3D"cx"> XXXXX XXXXX XXXXX XXXXX XXXXX
</span><span class=3D"cx"> PASS
</span><ins>+XXXXX XXXXX XXXXX XXXXX XXXXX
+PASS
</ins><span class=3D"cx"> XXXXX XXXXX XXXXX
</span><span class=3D"cx"> PASS
</span><ins>+XXXXX XXXXX XXXXX
+PASS
</ins><span class=3D"cx"> XXXXX XXXXX XXXXX XXXXX XXXXX
</span><span class=3D"cx"> PASS
</span><ins>+XXXXX XXXXX XXXXX XXXXX XXXXX
+PASS
</ins><span class=3D"cx"> XXXXX XXXXX XXXXX
</span><span class=3D"cx"> PASS
</span><span class=3D"cx"> XXXXX XXXXX XXXXX XXXXX XXXXX
</span></span></pre></div>
<a id=3D"trunkLayoutTestsfastcssgridlayoutminmaxspanningresolutionrowshtm=
l"></a>
<div class=3D"modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layo=
ut/minmax-spanning-resolution-rows.html (164608 =3D> 164609)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/LayoutTests/fast/css-grid-layout/minmax-sp=
anning-resolution-rows.html	2014-02-24 22:21:35 UTC (rev 164608)
+++ trunk/LayoutTests/fast/css-grid-layout/minmax-spanning-resolution-row=
s.html	2014-02-24 22:29:20 UTC (rev 164609)
</span><span class=3D"lines">@@ -142,7 +142,7 @@
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div class=3D&quot;constrainedContainer&quo=
t;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridMinMaxMin&quot;&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridMinMaxMin&quot; style=3D&q=
uot;height: 100%&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea b=
othRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expecte=
d-height=3D&quot;30&quot;&gt;XXXXX XXXXX XXXXX&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea =
firstRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expec=
ted-height=3D&quot;15&quot;&gt;&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea =
secondRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expe=
cted-height=3D&quot;15&quot;&gt;&lt;/div&gt;
</span><span class=3D"lines">@@ -151,6 +151,14 @@
</span><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div class=3D&quot;constrainedContainer&quo=
t;&gt;
</span><span class=3D"cx">     &lt;div class=3D&quot;grid gridMinMaxMin&q=
uot;&gt;
</span><ins>+        &lt;div class=3D&quot;sizedToGridArea bothRowFirstCo=
lumn&quot; data-expected-width=3D&quot;50&quot; data-expected-height=3D&q=
uot;190&quot;&gt;XXXXX XXXXX XXXXX&lt;/div&gt;
+        &lt;div class=3D&quot;sizedToGridArea firstRowFirstColumn&quot; =
data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;50&quot=
;&gt;&lt;/div&gt;
+        &lt;div class=3D&quot;sizedToGridArea secondRowFirstColumn&quot;=
 data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;140&qu=
ot;&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=3D&quot;constrainedContainer&quot;&gt;
+    &lt;div class=3D&quot;grid gridMinMaxMin&quot; style=3D&quot;height:=
 100%&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea b=
othRowBothColumn&quot; data-expected-width=3D&quot;150&quot; data-expecte=
d-height=3D&quot;30&quot;&gt;XXXXX XXXXX XXXXX XXXXX XXXXX&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea =
firstRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expec=
ted-height=3D&quot;15&quot;&gt;&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea =
secondRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expe=
cted-height=3D&quot;15&quot;&gt;&lt;/div&gt;
</span><span class=3D"lines">@@ -159,9 +167,19 @@
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><ins>+&lt;div class=3D&quot;constrainedContainer&quot;&gt;
+    &lt;div class=3D&quot;grid gridMinMaxMin&quot;&gt;
+        &lt;div class=3D&quot;sizedToGridArea bothRowBothColumn&quot; da=
ta-expected-width=3D&quot;150&quot; data-expected-height=3D&quot;190&quot=
;&gt;XXXXX XXXXX XXXXX XXXXX XXXXX&lt;/div&gt;
+        &lt;div class=3D&quot;sizedToGridArea firstRowFirstColumn&quot; =
data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;50&quot=
;&gt;&lt;/div&gt;
+        &lt;div class=3D&quot;sizedToGridArea secondRowFirstColumn&quot;=
 data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;140&qu=
ot;&gt;&lt;/div&gt;
+        &lt;div class=3D&quot;sizedToGridArea firstRowSecondColumn&quot;=
 data-expected-width=3D&quot;100&quot; data-expected-height=3D&quot;50&qu=
ot;&gt;&lt;/div&gt;
+        &lt;div class=3D&quot;sizedToGridArea secondRowSecondColumn&quot=
; data-expected-width=3D&quot;100&quot; data-expected-height=3D&quot;140&=
quot;&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
</ins><span class=3D"cx"> &lt;!-- Allow the extra logical space distribut=
ion to occur. --&gt;
</span><span class=3D"cx"> &lt;div style=3D&quot;width: 50px; height: 60p=
x&quot;&gt;
</span><del>-    &lt;div class=3D&quot;grid gridMinMaxMin&quot;&gt;
</del><ins>+    &lt;div class=3D&quot;grid gridMinMaxMin&quot; style=3D&q=
uot;height: 100%&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea b=
othRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expecte=
d-height=3D&quot;60&quot;&gt;XXXXX XXXXX XXXXX&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea =
firstRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expec=
ted-height=3D&quot;30&quot;&gt;&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea =
secondRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expe=
cted-height=3D&quot;30&quot;&gt;&lt;/div&gt;
</span><span class=3D"lines">@@ -170,6 +188,14 @@
</span><span class=3D"cx">=20
</span><span class=3D"cx"> &lt;div style=3D&quot;width: 50px; height: 60p=
x&quot;&gt;
</span><span class=3D"cx">     &lt;div class=3D&quot;grid gridMinMaxMin&q=
uot;&gt;
</span><ins>+        &lt;div class=3D&quot;sizedToGridArea bothRowFirstCo=
lumn&quot; data-expected-width=3D&quot;50&quot; data-expected-height=3D&q=
uot;190&quot;&gt;XXXXX XXXXX XXXXX&lt;/div&gt;
+        &lt;div class=3D&quot;sizedToGridArea firstRowFirstColumn&quot; =
data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;50&quot=
;&gt;&lt;/div&gt;
+        &lt;div class=3D&quot;sizedToGridArea secondRowFirstColumn&quot;=
 data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;140&qu=
ot;&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div style=3D&quot;width: 50px; height: 60px&quot;&gt;
+    &lt;div class=3D&quot;grid gridMinMaxMin&quot; style=3D&quot;height:=
 100%&quot;&gt;
</ins><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea b=
othRowBothColumn&quot; data-expected-width=3D&quot;150&quot; data-expecte=
d-height=3D&quot;60&quot;&gt;XXXXX XXXXX XXXXX XXXXX XXXXX&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea =
firstRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expec=
ted-height=3D&quot;30&quot;&gt;&lt;/div&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea =
secondRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expe=
cted-height=3D&quot;30&quot;&gt;&lt;/div&gt;
</span><span class=3D"lines">@@ -178,6 +204,16 @@
</span><span class=3D"cx">     &lt;/div&gt;
</span><span class=3D"cx"> &lt;/div&gt;
</span><span class=3D"cx">=20
</span><ins>+&lt;div style=3D&quot;width: 50px; height: 60px&quot;&gt;
+    &lt;div class=3D&quot;grid gridMinMaxMin&quot;&gt;
+        &lt;div class=3D&quot;sizedToGridArea bothRowBothColumn&quot; da=
ta-expected-width=3D&quot;150&quot; data-expected-height=3D&quot;190&quot=
;&gt;XXXXX XXXXX XXXXX XXXXX XXXXX&lt;/div&gt;
+        &lt;div class=3D&quot;sizedToGridArea firstRowFirstColumn&quot; =
data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;50&quot=
;&gt;&lt;/div&gt;
+        &lt;div class=3D&quot;sizedToGridArea secondRowFirstColumn&quot;=
 data-expected-width=3D&quot;50&quot; data-expected-height=3D&quot;140&qu=
ot;&gt;&lt;/div&gt;
+        &lt;div class=3D&quot;sizedToGridArea firstRowSecondColumn&quot;=
 data-expected-width=3D&quot;100&quot; data-expected-height=3D&quot;50&qu=
ot;&gt;&lt;/div&gt;
+        &lt;div class=3D&quot;sizedToGridArea secondRowSecondColumn&quot=
; data-expected-width=3D&quot;100&quot; data-expected-height=3D&quot;140&=
quot;&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
</ins><span class=3D"cx"> &lt;div class=3D&quot;unconstrainedContainer&qu=
ot;&gt;
</span><span class=3D"cx">     &lt;div class=3D&quot;grid gridMinMaxMin&q=
uot;&gt;
</span><span class=3D"cx">         &lt;div class=3D&quot;sizedToGridArea =
bothRowFirstColumn&quot; data-expected-width=3D&quot;50&quot; data-expect=
ed-height=3D&quot;190&quot;&gt;XXXXX XXXXX XXXXX&lt;/div&gt;
</span></span></pre></div>
<a id=3D"trunkSourceWebCoreChangeLog"></a>
<div class=3D"modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (1646=
08 =3D> 164609)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/Source/WebCore/ChangeLog	2014-02-24 22:21:=
35 UTC (rev 164608)
+++ trunk/Source/WebCore/ChangeLog	2014-02-24 22:29:20 UTC (rev 164609)
</span><span class=3D"lines">@@ -1,3 +1,33 @@
</span><ins>+2014-02-24  Javier Fernandez  &lt;jfernandez at igalia.com&gt;
+
+        [CSS Grid Layout] handle undefined RemainingSpace in computeUsed=
BreadthOfGridTracks algorithm
+        https://bugs.webkit.org/show_bug.cgi?id=3D128372
+
+        Reviewed by David Hyatt.
+
+        From Blink r165692 by &lt;svillar at igalia.com&gt;
+
+        The spec defines a different code path for the computeUsedBreadt=
hOfGridTracks algorithm
+        http://dev.w3.org/csswg/css-grid/#function-ComputeUsedBreadthOfG=
ridTracks.
+
+        Basically the track breadth is different when the available size=
 is undefined and thus,
+        cannot be taken into account during the computations.
+        The available size is undefined whenever the height is auto or t=
he grid element has a
+        shrink-to-fit behavior.
+
+        It was also renamed the function to match the specs so the funct=
ion name starts with
+        'compute' instead of 'computed'.
+
+        No new tests, but added new cases to some of them.
+
+        * rendering/RenderGrid.cpp:
+        (WebCore::RenderGrid::computeIntrinsicLogicalWidths):
+        (WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
+        (WebCore::gridElementIsShrinkToFit):
+        (WebCore::RenderGrid::computeNormalizedFractionBreadth):
+        (WebCore::RenderGrid::layoutGridItems):
+        * rendering/RenderGrid.h:
+
</ins><span class=3D"cx"> 2014-02-24  Roger Fong  &lt;roger_fong at apple.co=
m&gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx">         [Windows] Unreviewed pre-emptive build=
 fix.
</span></span></pre></div>
<a id=3D"trunkSourceWebCorerenderingRenderGridcpp"></a>
<div class=3D"modfile"><h4>Modified: trunk/Source/WebCore/rendering/Rende=
rGrid.cpp (164608 =3D> 164609)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/Source/WebCore/rendering/RenderGrid.cpp	20=
14-02-24 22:21:35 UTC (rev 164608)
+++ trunk/Source/WebCore/rendering/RenderGrid.cpp	2014-02-24 22:29:20 UTC=
 (rev 164609)
</span><span class=3D"lines">@@ -222,7 +222,7 @@
</span><span class=3D"cx">=20
</span><span class=3D"cx">     GridSizingData sizingData(gridColumnCount(=
), gridRowCount());
</span><span class=3D"cx">     LayoutUnit availableLogicalSpace =3D 0;
</span><del>-    const_cast&lt;RenderGrid*&gt;(this)-&gt;computedUsedBrea=
dthOfGridTracks(ForColumns, sizingData, availableLogicalSpace);
</del><ins>+    const_cast&lt;RenderGrid*&gt;(this)-&gt;computeUsedBreadt=
hOfGridTracks(ForColumns, sizingData, availableLogicalSpace);
</ins><span class=3D"cx">=20
</span><span class=3D"cx">     for (size_t i =3D 0; i &lt; sizingData.col=
umnTracks.size(); ++i) {
</span><span class=3D"cx">         LayoutUnit minTrackBreadth =3D sizingD=
ata.columnTracks[i].m_usedBreadth;
</span><span class=3D"lines">@@ -257,16 +257,24 @@
</span><span class=3D"cx">     setPreferredLogicalWidthsDirty(false);
</span><span class=3D"cx"> }
</span><span class=3D"cx">=20
</span><del>-void RenderGrid::computedUsedBreadthOfGridTracks(GridTrackSi=
zingDirection direction, GridSizingData&amp; sizingData)
</del><ins>+void RenderGrid::computeUsedBreadthOfGridTracks(GridTrackSizi=
ngDirection direction, GridSizingData&amp; sizingData)
</ins><span class=3D"cx"> {
</span><span class=3D"cx">     LayoutUnit availableLogicalSpace =3D (dire=
ction =3D=3D ForColumns) ? availableLogicalWidth() : availableLogicalHeig=
ht(IncludeMarginBorderPadding);
</span><del>-    computedUsedBreadthOfGridTracks(direction, sizingData, a=
vailableLogicalSpace);
</del><ins>+    computeUsedBreadthOfGridTracks(direction, sizingData, ava=
ilableLogicalSpace);
</ins><span class=3D"cx"> }
</span><span class=3D"cx">=20
</span><del>-void RenderGrid::computedUsedBreadthOfGridTracks(GridTrackSi=
zingDirection direction, GridSizingData&amp; sizingData, LayoutUnit&amp; =
availableLogicalSpace)
</del><ins>+bool RenderGrid::gridElementIsShrinkToFit()
</ins><span class=3D"cx"> {
</span><ins>+    return isFloatingOrOutOfFlowPositioned();
+}
+
+void RenderGrid::computeUsedBreadthOfGridTracks(GridTrackSizingDirection=
 direction, GridSizingData&amp; sizingData, LayoutUnit&amp; availableLogi=
calSpace)
+{
</ins><span class=3D"cx">     Vector&lt;GridTrack&gt;&amp; tracks =3D (di=
rection =3D=3D ForColumns) ? sizingData.columnTracks : sizingData.rowTrac=
ks;
</span><ins>+    Vector&lt;size_t&gt; flexibleSizedTracksIndex;
</ins><span class=3D"cx">     sizingData.contentSizedTracksIndex.shrink(0=
);
</span><ins>+
+    // 1. Initialize per Grid track variables.
</ins><span class=3D"cx">     for (size_t i =3D 0; i &lt; tracks.size(); =
++i) {
</span><span class=3D"cx">         GridTrack&amp; track =3D tracks[i];
</span><span class=3D"cx">         const GridTrackSize&amp; trackSize =3D=
 gridTrackSize(direction, i);
</span><span class=3D"lines">@@ -280,8 +288,11 @@
</span><span class=3D"cx">=20
</span><span class=3D"cx">         if (trackSize.isContentSized())
</span><span class=3D"cx">             sizingData.contentSizedTracksIndex=
.append(i);
</span><ins>+        if (trackSize.maxTrackBreadth().isFlex())
+            flexibleSizedTracksIndex.append(i);
</ins><span class=3D"cx">     }
</span><span class=3D"cx">=20
</span><ins>+    // 2. Resolve content-based TrackSizingFunctions.
</ins><span class=3D"cx">     if (!sizingData.contentSizedTracksIndex.isE=
mpty())
</span><span class=3D"cx">         resolveContentBasedTrackSizingFunction=
s(direction, sizingData);
</span><span class=3D"cx">=20
</span><span class=3D"lines">@@ -290,27 +301,61 @@
</span><span class=3D"cx">         availableLogicalSpace -=3D tracks[i].m=
_usedBreadth;
</span><span class=3D"cx">     }
</span><span class=3D"cx">=20
</span><del>-    if (availableLogicalSpace &lt;=3D 0)
</del><ins>+    const bool hasUndefinedRemainingSpace =3D (direction =3D=3D=
 ForRows) ? style().logicalHeight().isAuto() : gridElementIsShrinkToFit()=
;
+
+    if (!hasUndefinedRemainingSpace &amp;&amp; availableLogicalSpace &lt=
;=3D 0)
</ins><span class=3D"cx">         return;
</span><span class=3D"cx">=20
</span><ins>+    // 3. Grow all Grid tracks in GridTracks from their Used=
Breadth up to their MaxBreadth value until
+    // availableLogicalSpace (RemainingSpace in the specs) is exhausted.
</ins><span class=3D"cx">     const size_t tracksSize =3D tracks.size();
</span><del>-    Vector&lt;GridTrack*&gt; tracksForDistribution(tracksSiz=
e);
-    for (size_t i =3D 0; i &lt; tracksSize; ++i)
-        tracksForDistribution[i] =3D tracks.data() + i;
</del><ins>+    if (!hasUndefinedRemainingSpace) {
+        Vector&lt;GridTrack*&gt; tracksForDistribution(tracksSize);
+        for (size_t i =3D 0; i &lt; tracksSize; ++i)
+            tracksForDistribution[i] =3D tracks.data() + i;
</ins><span class=3D"cx">=20
</span><del>-    distributeSpaceToTracks(tracksForDistribution, 0, &amp;G=
ridTrack::usedBreadth, &amp;GridTrack::growUsedBreadth, sizingData, avail=
ableLogicalSpace);
</del><ins>+        distributeSpaceToTracks(tracksForDistribution, 0, &am=
p;GridTrack::usedBreadth, &amp;GridTrack::growUsedBreadth, sizingData, av=
ailableLogicalSpace);
+    } else {
+        for (size_t i =3D 0; i &lt; tracksSize; ++i)
+            tracks[i].m_usedBreadth =3D tracks[i].m_maxBreadth;
+    }
</ins><span class=3D"cx">=20
</span><ins>+    if (flexibleSizedTracksIndex.isEmpty())
+        return;
+
</ins><span class=3D"cx">     // 4. Grow all Grid tracks having a fractio=
n as the MaxTrackSizingFunction.
</span><ins>+    double normalizedFractionBreadth =3D 0;
+    if (!hasUndefinedRemainingSpace)
+        normalizedFractionBreadth =3D computeNormalizedFractionBreadth(t=
racks, GridSpan(0, tracks.size() - 1), direction, availableLogicalSpace);
+    else {
+        for (size_t i =3D 0; i &lt; flexibleSizedTracksIndex.size(); ++i=
) {
+            const size_t trackIndex =3D flexibleSizedTracksIndex[i];
+            const GridTrackSize&amp; trackSize =3D gridTrackSize(directi=
on, trackIndex);
+            normalizedFractionBreadth =3D std::max(normalizedFractionBre=
adth, tracks[trackIndex].m_usedBreadth / trackSize.maxTrackBreadth().flex=
());
+        }
</ins><span class=3D"cx">=20
</span><del>-    // FIXME: Handle the case where RemainingSpace is not de=
fined.
-    double normalizedFractionBreadth =3D computeNormalizedFractionBreadt=
h(tracks, direction, availableLogicalSpace);
-    for (size_t i =3D 0; i &lt; tracksSize; ++i) {
-        const GridTrackSize&amp; trackSize =3D gridTrackSize(direction, =
i);
-        if (!trackSize.maxTrackBreadth().isFlex())
-            continue;
</del><ins>+        for (size_t i =3D 0; i &lt; flexibleSizedTracksIndex.=
size(); ++i) {
+            GridIterator iterator(m_grid, direction, flexibleSizedTracks=
Index[i]);
+            while (RenderBox* gridItem =3D iterator.nextGridItem()) {
+                const GridCoordinate coordinate =3D cachedGridCoordinate=
(gridItem);
+                const GridSpan span =3D (direction =3D=3D ForColumns) ? =
coordinate.columns : coordinate.rows;
</ins><span class=3D"cx">=20
</span><del>-        tracks[i].m_usedBreadth =3D std::max&lt;LayoutUnit&g=
t;(tracks[i].m_usedBreadth, normalizedFractionBreadth * trackSize.maxTrac=
kBreadth().flex());
</del><ins>+                // Do not include already processed items.
+                if (i &gt; 0 &amp;&amp; span.initialPositionIndex &lt;=3D=
 flexibleSizedTracksIndex[i - 1])
+                    continue;
+
+                double itemNormalizedFlexBreadth =3D computeNormalizedFr=
actionBreadth(tracks, span, direction, maxContentForChild(gridItem, direc=
tion, sizingData.columnTracks));
+                normalizedFractionBreadth =3D std::max(normalizedFractio=
nBreadth, itemNormalizedFlexBreadth);
+            }
+        }
</ins><span class=3D"cx">     }
</span><ins>+
+    for (size_t i =3D 0; i &lt; flexibleSizedTracksIndex.size(); ++i) {
+        const size_t trackIndex =3D flexibleSizedTracksIndex[i];
+        const GridTrackSize&amp; trackSize =3D gridTrackSize(direction, =
trackIndex);
+
+        tracks[trackIndex].m_usedBreadth =3D std::max&lt;LayoutUnit&gt;(=
tracks[trackIndex].m_usedBreadth, normalizedFractionBreadth * trackSize.m=
axTrackBreadth().flex());
+    }
</ins><span class=3D"cx"> }
</span><span class=3D"cx">=20
</span><span class=3D"cx"> LayoutUnit RenderGrid::computeUsedBreadthOfMin=
Length(GridTrackSizingDirection direction, const GridLength&amp; gridLeng=
th) const
</span><span class=3D"lines">@@ -350,12 +395,12 @@
</span><span class=3D"cx">     return valueForLength(trackLength, directi=
on =3D=3D ForColumns ? logicalWidth() : computeContentLogicalHeight(style=
().logicalHeight()));
</span><span class=3D"cx"> }
</span><span class=3D"cx">=20
</span><del>-double RenderGrid::computeNormalizedFractionBreadth(Vector&l=
t;GridTrack&gt;&amp; tracks, GridTrackSizingDirection direction, LayoutUn=
it availableLogicalSpace) const
</del><ins>+double RenderGrid::computeNormalizedFractionBreadth(Vector&lt=
;GridTrack&gt;&amp; tracks, const GridSpan&amp; tracksSpan, GridTrackSizi=
ngDirection direction, LayoutUnit availableLogicalSpace) const
</ins><span class=3D"cx"> {
</span><span class=3D"cx">     // |availableLogicalSpace| already account=
s for the used breadths so no need to remove it here.
</span><span class=3D"cx">=20
</span><span class=3D"cx">     Vector&lt;GridTrackForNormalization&gt; tr=
acksForNormalization;
</span><del>-    for (size_t i =3D 0; i &lt; tracks.size(); ++i) {
</del><ins>+    for (size_t i =3D tracksSpan.initialPositionIndex; i &lt;=
=3D tracksSpan.finalPositionIndex; ++i) {
</ins><span class=3D"cx">         const GridTrackSize&amp; trackSize =3D =
gridTrackSize(direction, i);
</span><span class=3D"cx">         if (!trackSize.maxTrackBreadth().isFle=
x())
</span><span class=3D"cx">             continue;
</span><span class=3D"lines">@@ -363,9 +408,8 @@
</span><span class=3D"cx">         tracksForNormalization.append(GridTrac=
kForNormalization(tracks[i], trackSize.maxTrackBreadth().flex()));
</span><span class=3D"cx">     }
</span><span class=3D"cx">=20
</span><del>-    // FIXME: Ideally we shouldn't come here without any &lt=
;flex&gt; grid track.
-    if (tracksForNormalization.isEmpty())
-        return LayoutUnit();
</del><ins>+    // The function is not called if we don't have &lt;flex&g=
t; grid tracks
+    ASSERT(!tracksForNormalization.isEmpty());
</ins><span class=3D"cx">=20
</span><span class=3D"cx">     std::sort(tracksForNormalization.begin(), =
tracksForNormalization.end(),
</span><span class=3D"cx">               [](const GridTrackForNormalizati=
on&amp; track1, const GridTrackForNormalization&amp; track2) {
</span><span class=3D"lines">@@ -748,9 +792,9 @@
</span><span class=3D"cx">     placeItemsOnGrid();
</span><span class=3D"cx">=20
</span><span class=3D"cx">     GridSizingData sizingData(gridColumnCount(=
), gridRowCount());
</span><del>-    computedUsedBreadthOfGridTracks(ForColumns, sizingData);
</del><ins>+    computeUsedBreadthOfGridTracks(ForColumns, sizingData);
</ins><span class=3D"cx">     ASSERT(tracksAreWiderThanMinTrackBreadth(Fo=
rColumns, sizingData.columnTracks));
</span><del>-    computedUsedBreadthOfGridTracks(ForRows, sizingData);
</del><ins>+    computeUsedBreadthOfGridTracks(ForRows, sizingData);
</ins><span class=3D"cx">     ASSERT(tracksAreWiderThanMinTrackBreadth(Fo=
rRows, sizingData.rowTracks));
</span><span class=3D"cx">=20
</span><span class=3D"cx">     populateGridPositions(sizingData);
</span></span></pre></div>
<a id=3D"trunkSourceWebCorerenderingRenderGridh"></a>
<div class=3D"modfile"><h4>Modified: trunk/Source/WebCore/rendering/Rende=
rGrid.h (164608 =3D> 164609)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/Source/WebCore/rendering/RenderGrid.h	2014=
-02-24 22:21:35 UTC (rev 164608)
+++ trunk/Source/WebCore/rendering/RenderGrid.h	2014-02-24 22:29:20 UTC (=
rev 164609)
</span><span class=3D"lines">@@ -72,8 +72,9 @@
</span><span class=3D"cx">     class GridIterator;
</span><span class=3D"cx">     class GridSizingData;
</span><span class=3D"cx">     enum GridTrackSizingDirection { ForColumns=
, ForRows };
</span><del>-    void computedUsedBreadthOfGridTracks(GridTrackSizingDire=
ction, GridSizingData&amp;);
-    void computedUsedBreadthOfGridTracks(GridTrackSizingDirection, GridS=
izingData&amp;, LayoutUnit&amp; availableLogicalSpace);
</del><ins>+    void computeUsedBreadthOfGridTracks(GridTrackSizingDirect=
ion, GridSizingData&amp;);
+    void computeUsedBreadthOfGridTracks(GridTrackSizingDirection, GridSi=
zingData&amp;, LayoutUnit&amp; availableLogicalSpace);
+    bool gridElementIsShrinkToFit();
</ins><span class=3D"cx">     LayoutUnit computeUsedBreadthOfMinLength(Gr=
idTrackSizingDirection, const GridLength&amp;) const;
</span><span class=3D"cx">     LayoutUnit computeUsedBreadthOfMaxLength(G=
ridTrackSizingDirection, const GridLength&amp;, LayoutUnit usedBreadth) c=
onst;
</span><span class=3D"cx">     LayoutUnit computeUsedBreadthOfSpecifiedLe=
ngth(GridTrackSizingDirection, const Length&amp;) const;
</span><span class=3D"lines">@@ -101,7 +102,7 @@
</span><span class=3D"cx">     void resolveContentBasedTrackSizingFunctio=
nsForItems(GridTrackSizingDirection, GridSizingData&amp;, RenderBox*, Fil=
terFunction, SizingFunction, AccumulatorGetter, AccumulatorGrowFunction);
</span><span class=3D"cx">     void distributeSpaceToTracks(Vector&lt;Gri=
dTrack*&gt;&amp;, Vector&lt;GridTrack*&gt;* tracksForGrowthAboveMaxBreadt=
h, AccumulatorGetter, AccumulatorGrowFunction, GridSizingData&amp;, Layou=
tUnit&amp; availableLogicalSpace);
</span><span class=3D"cx">=20
</span><del>-    double computeNormalizedFractionBreadth(Vector&lt;GridTr=
ack&gt;&amp;, GridTrackSizingDirection, LayoutUnit availableLogicalSpace)=
 const;
</del><ins>+    double computeNormalizedFractionBreadth(Vector&lt;GridTra=
ck&gt;&amp;, const GridSpan&amp; tracksSpan, GridTrackSizingDirection, La=
youtUnit availableLogicalSpace) const;
</ins><span class=3D"cx">=20
</span><span class=3D"cx">     const GridTrackSize&amp; gridTrackSize(Gri=
dTrackSizingDirection, size_t) const;
</span><span class=3D"cx">     size_t explicitGridColumnCount() const;
</span></span></pre>
</div>
</div>

</body>
</html>


More information about the webkit-changes mailing list