<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[189911] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/189911">189911</a></dd>
<dt>Author</dt> <dd>svillar@igalia.com</dd>
<dt>Date</dt> <dd>2015-09-17 05:13:30 -0700 (Thu, 17 Sep 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>[CSS Grid Layout]  Using automatic (instead of min-content) minimums for 'auto' tracks
https://bugs.webkit.org/show_bug.cgi?id=142329

Reviewed by Darin Adler.

Based on Blink's <a href="http://trac.webkit.org/projects/webkit/changeset/198697">r198697</a> by &lt;svillar@igalia.com&gt; and <a href="http://trac.webkit.org/projects/webkit/changeset/200478">r200478</a> by &lt;jfernandez@igalia.com&gt;

Source/WebCore:

More precisely (syntax-wise), this would allow 'auto' to be used within the
minmax() function (it's currently forbidden) and have the 'auto' keyword map
to minmax(auto, auto) instead of minmax(min-content, max-content).
- As a minimum, 'auto' would mean &quot;use the specified minimum size, or if
that is auto, treat as 0 or min-content per Flexbox rules&quot;.
- As a maximum, 'auto' would mean &quot;use the max-content size&quot;.

Regarding the implementation, a new phase is added to the track sizing
algorithm called ResolveIntrinsicMinimums (the former ResolveIntrinsicMinimums
is now called ResolveContentBasedMinimums which does not include 'auto'
resolution) which will be run before any other. This phase uses the minimum
size of grid items (as specified by min-width/height).

Tests: fast/css-grid-layout/grid-automatic-minimum-for-auto-columns.html
       fast/css-grid-layout/grid-automatic-minimum-for-auto-rows.html

* css/CSSParser.cpp:
(WebCore::CSSParser::parseGridBreadth):
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computeUsedBreadthOfMinLength):
(WebCore::RenderGrid::computeUsedBreadthOfMaxLength):
(WebCore::RenderGrid::minSizeForChild):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForNonSpanningItems):
(WebCore::RenderGrid::trackSizeForTrackSizeComputationPhase):
(WebCore::RenderGrid::shouldProcessTrackForTrackSizeComputationPhase):
(WebCore::RenderGrid::trackShouldGrowBeyondGrowthLimitsForTrackSizeComputationPhase):
(WebCore::RenderGrid::markAsInfinitelyGrowableForTrackSizeComputationPhase):
(WebCore::RenderGrid::updateTrackSizeForTrackSizeComputationPhase):
(WebCore::RenderGrid::currentItemSizeForTrackSizeComputationPhase):
* rendering/RenderGrid.h:
* rendering/style/GridTrackSize.h:
(WebCore::GridTrackSize::minTrackBreadth):
(WebCore::GridTrackSize::maxTrackBreadth):
(WebCore::GridTrackSize::cacheMinMaxTrackBreadthTypes):
(WebCore::GridTrackSize::hasIntrinsicMinTrackBreadth):
(WebCore::GridTrackSize::hasAutoMinTrackBreadth):
(WebCore::GridTrackSize::hasAutoMaxTrackBreadth):
(WebCore::GridTrackSize::hasMaxContentOrAutoMaxTrackBreadth):
(WebCore::GridTrackSize::hasAutoOrMinContentMinTrackBreadthAndIntrinsicMaxTrackBreadth):
(WebCore::GridTrackSize::hasMinContentMinTrackBreadthAndMinOrMaxContentMaxTrackBreadth): Deleted.

LayoutTests:

New tests to verify that auto is a valid keyword inside
minmax. Updated the expectations of existing tests to
reflect the new status of auto.

* fast/css-grid-layout/grid-auto-columns-rows-get-set-expected.txt:
* fast/css-grid-layout/grid-auto-columns-rows-get-set.html:
* fast/css-grid-layout/grid-automatic-minimum-for-auto-columns-expected.txt: Added.
* fast/css-grid-layout/grid-automatic-minimum-for-auto-columns.html: Added.
* fast/css-grid-layout/grid-automatic-minimum-for-auto-rows-expected.txt: Added.
* fast/css-grid-layout/grid-automatic-minimum-for-auto-rows.html: Added.
* fast/css-grid-layout/grid-columns-rows-get-set-expected.txt:
* fast/css-grid-layout/grid-columns-rows-get-set-multiple-expected.txt:
* fast/css-grid-layout/grid-columns-rows-get-set-multiple.html:
* fast/css-grid-layout/grid-columns-rows-get-set.html:
* fast/css-grid-layout/non-grid-columns-rows-get-set-expected.txt:
* fast/css-grid-layout/non-grid-columns-rows-get-set-multiple-expected.txt:
* fast/css-grid-layout/non-grid-columns-rows-get-set-multiple.html:
* fast/css-grid-layout/non-grid-columns-rows-get-set.html:
* fast/css-grid-layout/resources/grid-columns-rows-get-set-multiple.js:
* fast/css-grid-layout/resources/grid-columns-rows-get-set.js:
* fast/css-grid-layout/resources/non-grid-columns-rows-get-set-multiple.js:
* fast/css-grid-layout/resources/non-grid-columns-rows-get-set.js:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsfastcssgridlayoutgridautocolumnsrowsgetsetexpectedtxt">trunk/LayoutTests/fast/css-grid-layout/grid-auto-columns-rows-get-set-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastcssgridlayoutgridautocolumnsrowsgetsethtml">trunk/LayoutTests/fast/css-grid-layout/grid-auto-columns-rows-get-set.html</a></li>
<li><a href="#trunkLayoutTestsfastcssgridlayoutgridcolumnsrowsgetsetexpectedtxt">trunk/LayoutTests/fast/css-grid-layout/grid-columns-rows-get-set-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastcssgridlayoutgridcolumnsrowsgetsetmultipleexpectedtxt">trunk/LayoutTests/fast/css-grid-layout/grid-columns-rows-get-set-multiple-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastcssgridlayoutgridcolumnsrowsgetsetmultiplehtml">trunk/LayoutTests/fast/css-grid-layout/grid-columns-rows-get-set-multiple.html</a></li>
<li><a href="#trunkLayoutTestsfastcssgridlayoutgridcolumnsrowsgetsethtml">trunk/LayoutTests/fast/css-grid-layout/grid-columns-rows-get-set.html</a></li>
<li><a href="#trunkLayoutTestsfastcssgridlayoutnongridcolumnsrowsgetsetexpectedtxt">trunk/LayoutTests/fast/css-grid-layout/non-grid-columns-rows-get-set-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastcssgridlayoutnongridcolumnsrowsgetsetmultipleexpectedtxt">trunk/LayoutTests/fast/css-grid-layout/non-grid-columns-rows-get-set-multiple-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastcssgridlayoutnongridcolumnsrowsgetsetmultiplehtml">trunk/LayoutTests/fast/css-grid-layout/non-grid-columns-rows-get-set-multiple.html</a></li>
<li><a href="#trunkLayoutTestsfastcssgridlayoutnongridcolumnsrowsgetsethtml">trunk/LayoutTests/fast/css-grid-layout/non-grid-columns-rows-get-set.html</a></li>
<li><a href="#trunkLayoutTestsfastcssgridlayoutresourcesgridcolumnsrowsgetsetmultiplejs">trunk/LayoutTests/fast/css-grid-layout/resources/grid-columns-rows-get-set-multiple.js</a></li>
<li><a href="#trunkLayoutTestsfastcssgridlayoutresourcesgridcolumnsrowsgetsetjs">trunk/LayoutTests/fast/css-grid-layout/resources/grid-columns-rows-get-set.js</a></li>
<li><a href="#trunkLayoutTestsfastcssgridlayoutresourcesnongridcolumnsrowsgetsetmultiplejs">trunk/LayoutTests/fast/css-grid-layout/resources/non-grid-columns-rows-get-set-multiple.js</a></li>
<li><a href="#trunkLayoutTestsfastcssgridlayoutresourcesnongridcolumnsrowsgetsetjs">trunk/LayoutTests/fast/css-grid-layout/resources/non-grid-columns-rows-get-set.js</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorecssCSSParsercpp">trunk/Source/WebCore/css/CSSParser.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderGridcpp">trunk/Source/WebCore/rendering/RenderGrid.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderGridh">trunk/Source/WebCore/rendering/RenderGrid.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleGridTrackSizeh">trunk/Source/WebCore/rendering/style/GridTrackSize.h</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsfastcssgridlayoutgridautomaticminimumforautocolumnsexpectedtxt">trunk/LayoutTests/fast/css-grid-layout/grid-automatic-minimum-for-auto-columns-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastcssgridlayoutgridautomaticminimumforautocolumnshtml">trunk/LayoutTests/fast/css-grid-layout/grid-automatic-minimum-for-auto-columns.html</a></li>
<li><a href="#trunkLayoutTestsfastcssgridlayoutgridautomaticminimumforautorowsexpectedtxt">trunk/LayoutTests/fast/css-grid-layout/grid-automatic-minimum-for-auto-rows-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastcssgridlayoutgridautomaticminimumforautorowshtml">trunk/LayoutTests/fast/css-grid-layout/grid-automatic-minimum-for-auto-rows.html</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (189910 => 189911)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2015-09-17 09:13:35 UTC (rev 189910)
+++ trunk/LayoutTests/ChangeLog        2015-09-17 12:13:30 UTC (rev 189911)
</span><span class="lines">@@ -1,3 +1,35 @@
</span><ins>+2015-09-15  Sergio Villar Senin  &lt;svillar@igalia.com&gt;
+
+        [CSS Grid Layout]  Using automatic (instead of min-content) minimums for 'auto' tracks
+        https://bugs.webkit.org/show_bug.cgi?id=142329
+
+        Reviewed by Darin Adler.
+
+        Based on Blink's r198697 by &lt;svillar@igalia.com&gt; and r200478 by &lt;jfernandez@igalia.com&gt;
+
+        New tests to verify that auto is a valid keyword inside
+        minmax. Updated the expectations of existing tests to
+        reflect the new status of auto.
+
+        * fast/css-grid-layout/grid-auto-columns-rows-get-set-expected.txt:
+        * fast/css-grid-layout/grid-auto-columns-rows-get-set.html:
+        * fast/css-grid-layout/grid-automatic-minimum-for-auto-columns-expected.txt: Added.
+        * fast/css-grid-layout/grid-automatic-minimum-for-auto-columns.html: Added.
+        * fast/css-grid-layout/grid-automatic-minimum-for-auto-rows-expected.txt: Added.
+        * fast/css-grid-layout/grid-automatic-minimum-for-auto-rows.html: Added.
+        * fast/css-grid-layout/grid-columns-rows-get-set-expected.txt:
+        * fast/css-grid-layout/grid-columns-rows-get-set-multiple-expected.txt:
+        * fast/css-grid-layout/grid-columns-rows-get-set-multiple.html:
+        * fast/css-grid-layout/grid-columns-rows-get-set.html:
+        * fast/css-grid-layout/non-grid-columns-rows-get-set-expected.txt:
+        * fast/css-grid-layout/non-grid-columns-rows-get-set-multiple-expected.txt:
+        * fast/css-grid-layout/non-grid-columns-rows-get-set-multiple.html:
+        * fast/css-grid-layout/non-grid-columns-rows-get-set.html:
+        * fast/css-grid-layout/resources/grid-columns-rows-get-set-multiple.js:
+        * fast/css-grid-layout/resources/grid-columns-rows-get-set.js:
+        * fast/css-grid-layout/resources/non-grid-columns-rows-get-set-multiple.js:
+        * fast/css-grid-layout/resources/non-grid-columns-rows-get-set.js:
+
</ins><span class="cx"> 2015-09-17  Javier Fernandez  &lt;jfernandez@igalia.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [CSS Grid Layout] Relayout whenever Box Alignment properties change
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssgridlayoutgridautocolumnsrowsgetsetexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layout/grid-auto-columns-rows-get-set-expected.txt (189910 => 189911)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/grid-auto-columns-rows-get-set-expected.txt        2015-09-17 09:13:35 UTC (rev 189910)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-auto-columns-rows-get-set-expected.txt        2015-09-17 12:13:30 UTC (rev 189911)
</span><span class="lines">@@ -10,6 +10,8 @@
</span><span class="cx"> PASS window.getComputedStyle(gridAutoMinMax, '').getPropertyValue('-webkit-grid-auto-columns') is &quot;minmax(30%, 100px)&quot;
</span><span class="cx"> PASS window.getComputedStyle(gridAutoMinMaxContent, '').getPropertyValue('-webkit-grid-auto-rows') is &quot;-webkit-min-content&quot;
</span><span class="cx"> PASS window.getComputedStyle(gridAutoMinMaxContent, '').getPropertyValue('-webkit-grid-auto-columns') is &quot;-webkit-max-content&quot;
</span><ins>+PASS window.getComputedStyle(gridAutoAutoInMinMax, '').getPropertyValue('-webkit-grid-auto-rows') is &quot;minmax(auto, 48px)&quot;
+PASS window.getComputedStyle(gridAutoAutoInMinMax, '').getPropertyValue('-webkit-grid-auto-columns') is &quot;minmax(80px, auto)&quot;
</ins><span class="cx"> 
</span><span class="cx"> Test that getting grid-template-columns and grid-template-rows set through CSS lists every track listed whether implicitly or explicitly created
</span><span class="cx"> PASS window.getComputedStyle(gridAutoFixedFixedWithChildren, '').getPropertyValue('-webkit-grid-auto-rows') is &quot;30px&quot;
</span><span class="lines">@@ -50,8 +52,6 @@
</span><span class="cx"> PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-auto-rows') is 'auto'
</span><span class="cx"> PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-auto-columns') is 'auto'
</span><span class="cx"> PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-auto-rows') is 'auto'
</span><del>-PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-auto-columns') is 'auto'
-PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-auto-rows') is 'auto'
</del><span class="cx"> 
</span><span class="cx"> Test setting grid-auto-columns and grid-auto-rows to 'inherit' through JS
</span><span class="cx"> PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-auto-columns') is '50px'
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssgridlayoutgridautocolumnsrowsgetsethtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layout/grid-auto-columns-rows-get-set.html (189910 => 189911)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/grid-auto-columns-rows-get-set.html        2015-09-17 09:13:35 UTC (rev 189910)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-auto-columns-rows-get-set.html        2015-09-17 12:13:30 UTC (rev 189911)
</span><span class="lines">@@ -26,6 +26,11 @@
</span><span class="cx">     -webkit-grid-template-columns: 20px;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+.gridAutoAutoInMinMax {
+    -webkit-grid-auto-rows: minmax(auto, 8vh);
+    -webkit-grid-auto-columns: minmax(10vw, auto);
+}
+
</ins><span class="cx"> &lt;/style&gt;
</span><span class="cx"> &lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;resources/grid-definitions-parsing-utils.js&quot;&gt;&lt;/script&gt;
</span><span class="lines">@@ -34,6 +39,7 @@
</span><span class="cx"> &lt;div class=&quot;grid gridAutoFixedFixed&quot; id=&quot;gridAutoFixedFixed&quot;&gt;&lt;/div&gt;
</span><span class="cx"> &lt;div class=&quot;grid gridAutoMinMax&quot; id=&quot;gridAutoMinMax&quot;&gt;&lt;/div&gt;
</span><span class="cx"> &lt;div class=&quot;grid gridAutoMinMaxContent&quot; id=&quot;gridAutoMinMaxContent&quot;&gt;&lt;/div&gt;
</span><ins>+&lt;div class=&quot;grid gridAutoAutoInMinMax&quot; id=&quot;gridAutoAutoInMinMax&quot;&gt;&lt;/div&gt;
</ins><span class="cx"> &lt;div class=&quot;grid gridAutoFixedFixed&quot; id=&quot;gridAutoFixedFixedWithChildren&quot;&gt;
</span><span class="cx">     &lt;div class=&quot;sizedToGridArea firstRowFirstColumn&quot;&gt;&lt;/div&gt;
</span><span class="cx"> &lt;/div&gt;
</span><span class="lines">@@ -48,6 +54,7 @@
</span><span class="cx"> testGridAutoDefinitionsValues(document.getElementById(&quot;gridAutoFixedFixed&quot;), &quot;30px&quot;, &quot;50px&quot;);
</span><span class="cx"> testGridAutoDefinitionsValues(document.getElementById(&quot;gridAutoMinMax&quot;), &quot;minmax(10%, 15px)&quot;, &quot;minmax(30%, 100px)&quot;);
</span><span class="cx"> testGridAutoDefinitionsValues(document.getElementById(&quot;gridAutoMinMaxContent&quot;), &quot;-webkit-min-content&quot;, &quot;-webkit-max-content&quot;);
</span><ins>+testGridAutoDefinitionsValues(document.getElementById(&quot;gridAutoAutoInMinMax&quot;), &quot;minmax(auto, 48px)&quot;, &quot;minmax(80px, auto)&quot;);
</ins><span class="cx"> 
</span><span class="cx"> debug(&quot;&quot;);
</span><span class="cx"> debug(&quot;Test that getting grid-template-columns and grid-template-rows set through CSS lists every track listed whether implicitly or explicitly created&quot;);
</span><span class="lines">@@ -122,14 +129,6 @@
</span><span class="cx"> 
</span><span class="cx"> element = document.createElement(&quot;div&quot;);
</span><span class="cx"> document.body.appendChild(element);
</span><del>-// Auto is not allowed inside minmax.
-element.style.webkitGridAutoColumns = &quot;minmax(auto, 8vh)&quot;;
-element.style.webkitGridAutoRows = &quot;minmax(10vw, auto)&quot;;
-shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('-webkit-grid-auto-columns')&quot;, &quot;'auto'&quot;);
-shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('-webkit-grid-auto-rows')&quot;, &quot;'auto'&quot;);
-
-element = document.createElement(&quot;div&quot;);
-document.body.appendChild(element);
</del><span class="cx"> // None is not allowed for grid-auto-{rows|columns}.
</span><span class="cx"> element.style.webkitGridAutoColumns = &quot;none&quot;;
</span><span class="cx"> element.style.webkitGridAutoRows = &quot;none&quot;;
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssgridlayoutgridautomaticminimumforautocolumnsexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css-grid-layout/grid-automatic-minimum-for-auto-columns-expected.txt (0 => 189911)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/grid-automatic-minimum-for-auto-columns-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-automatic-minimum-for-auto-columns-expected.txt        2015-09-17 12:13:30 UTC (rev 189911)
</span><span class="lines">@@ -0,0 +1,84 @@
</span><ins>+Check that min-width is honored when sizing auto columns.
+PASS window.getComputedStyle(gridAuto, '').getPropertyValue('-webkit-grid-template-columns') is &quot;40px&quot;
+PASS window.getComputedStyle(gridAutoItemSmallerThanMinSize, '').getPropertyValue('-webkit-grid-template-columns') is &quot;40px&quot;
+PASS window.getComputedStyle(gridMinMaxAutoAuto, '').getPropertyValue('-webkit-grid-template-columns') is &quot;40px&quot;
+PASS window.getComputedStyle(gridMinMaxAutoMaxContent, '').getPropertyValue('-webkit-grid-template-columns') is &quot;40px&quot;
+PASS window.getComputedStyle(gridMinMaxMinContentAuto, '').getPropertyValue('-webkit-grid-template-columns') is &quot;40px&quot;
+PASS window.getComputedStyle(gridAutoMultipleItems, '').getPropertyValue('-webkit-grid-template-columns') is &quot;30px&quot;
+PASS window.getComputedStyle(gridMinMaxAutoAutoMultipleItemsOneWithoutMinWidth, '').getPropertyValue('-webkit-grid-template-columns') is &quot;60px&quot;
+PASS window.getComputedStyle(gridMinMaxAutoMaxContentMultipleItemsOneWithAutoMinWidth, '').getPropertyValue('-webkit-grid-template-columns') is &quot;80px&quot;
+
+Check that min-width is honored when sizing auto columns and spanning grid items.
+PASS window.getComputedStyle(gridAutoAndAutoOneSpanningOneNonSpannig, '').getPropertyValue('-webkit-grid-template-columns') is &quot;35px 15px&quot;
+PASS window.getComputedStyle(gridAutoAndAutoOneSpanningMultipleNonSpanning, '').getPropertyValue('-webkit-grid-template-columns') is &quot;20px 40px&quot;
+PASS window.getComputedStyle(gridAutoAndMinMaxAutoAutoOneSpanningOneNonSpanning, '').getPropertyValue('-webkit-grid-template-columns') is &quot;20px 50px&quot;
+PASS window.getComputedStyle(gridAutoAndMinMaxAutoAutoMultipleSpanning, '').getPropertyValue('-webkit-grid-template-columns') is &quot;35px 35px&quot;
+PASS window.getComputedStyle(gridMinMaxAutoMaxContentAndAutoOneSpanningMultipleNonSpanning, '').getPropertyValue('-webkit-grid-template-columns') is &quot;25px 65px&quot;
+PASS window.getComputedStyle(gridMinMaxAutoMaxContentAndAutoMultipleSpanningMultipleNonSpanning, '').getPropertyValue('-webkit-grid-template-columns') is &quot;40px 50px&quot;
+
+Check the interactions between width and min-width and auto tracks.
+PASS window.getComputedStyle(gridAutoWithFixedWidthChild, '').getPropertyValue('-webkit-grid-template-columns') is &quot;60px&quot;
+PASS window.getComputedStyle(gridAutoWithFixedWidthChildAndMinWidth, '').getPropertyValue('-webkit-grid-template-columns') is &quot;40px&quot;
+PASS window.getComputedStyle(gridAutoWithFixedWidthChildAndHigherMinWidth, '').getPropertyValue('-webkit-grid-template-columns') is &quot;90px&quot;
+PASS window.getComputedStyle(gridAutoAndAutoOneSpanningFixedWidth, '').getPropertyValue('-webkit-grid-template-columns') is &quot;25px 25px&quot;
+PASS window.getComputedStyle(gridAutoAndAutoOneSpanningFixedWidthAndMinWidth, '').getPropertyValue('-webkit-grid-template-columns') is &quot;25px 25px&quot;
+PASS window.getComputedStyle(gridAutoAndAutoOneSpanningFixedWidthAndHigherMinWidth, '').getPropertyValue('-webkit-grid-template-columns') is &quot;35px 35px&quot;
+
+Check that borders and paddings are considering when computing min sizes.
+PASS window.getComputedStyle(gridAutoFixedMinWidthWithBorder, '').getPropertyValue('-webkit-grid-template-columns') is &quot;50px&quot;
+PASS window.getComputedStyle(gridAutoFixedMinWidthWithPadding, '').getPropertyValue('-webkit-grid-template-columns') is &quot;56px&quot;
+PASS window.getComputedStyle(gridAutoFixedMinWidthWithBorderAndPadding, '').getPropertyValue('-webkit-grid-template-columns') is &quot;66px&quot;
+PASS window.getComputedStyle(gridAutoAutoMinWidthWithBorder, '').getPropertyValue('-webkit-grid-template-columns') is &quot;40px&quot;
+PASS window.getComputedStyle(gridAutoAutoMinWidthWithPadding, '').getPropertyValue('-webkit-grid-template-columns') is &quot;46px&quot;
+PASS window.getComputedStyle(gridAutoAutoMinWidthWithBorderAndPadding, '').getPropertyValue('-webkit-grid-template-columns') is &quot;56px&quot;
+PASS window.getComputedStyle(gridAutoMaxContentMinWidthWithBorder, '').getPropertyValue('-webkit-grid-template-columns') is &quot;90px&quot;
+PASS window.getComputedStyle(gridAutoMaxContentMinWidthWithPadding, '').getPropertyValue('-webkit-grid-template-columns') is &quot;96px&quot;
+PASS window.getComputedStyle(gridAutoMaxContentMinWidthWithBorderAndPadding, '').getPropertyValue('-webkit-grid-template-columns') is &quot;106px&quot;
+PASS successfullyParsed is true
+
+TEST COMPLETE
+XXXXXX
+XX
+XX XX XX
+XXX XX X
+X X X X X X
+XX
+XXXX XXXX
+XX XXXXX X
+XX
+XXXXXX
+XXXX XXXX
+XX
+XX XXXXXXXX
+XXXX XXXX
+XX XX
+XXXXXX X XXX
+XX XX XX
+X X
+XXXX
+X XXX XX
+XXX XXXX
+XX XX XX
+XXXXX X XXXXX
+X XXX XX
+XXXXX XXXXX
+XX XX
+XX XX XX XX
+XXX
+X XX XXX
+X XX X
+XXX X
+XXX X
+XXX X
+XX XXX
+XX XXX XX
+XX XXX XX
+XXXXXX
+XXXXXX
+XXXXXX
+XX XXX X
+XX XXX X
+XX XXX X
+X XXXX X
+X XXXX X
+X XXXX X
</ins><span class="cx">Property changes on: trunk/LayoutTests/fast/css-grid-layout/grid-automatic-minimum-for-auto-columns-expected.txt
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<a id="trunkLayoutTestsfastcssgridlayoutgridautomaticminimumforautocolumnshtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css-grid-layout/grid-automatic-minimum-for-auto-columns.html (0 => 189911)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/grid-automatic-minimum-for-auto-columns.html                                (rev 0)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-automatic-minimum-for-auto-columns.html        2015-09-17 12:13:30 UTC (rev 189911)
</span><span class="lines">@@ -0,0 +1,275 @@
</span><ins>+&lt;html&gt;
+&lt;link href=&quot;resources/grid.css&quot; rel=&quot;stylesheet&quot;/&gt;
+&lt;style&gt;
+.grid { font: 10px/1 Ahem; }
+
+.minWidth10 { min-width: 10px; }
+.minWidth20 { min-width: 20px; }
+.minWidth30 { min-width: 30px; }
+.minWidth40 { min-width: 40px; }
+.minWidth50 { min-width: 50px; }
+.minWidth60 { min-width: 60px; }
+.minWidth70 { min-width: 70px; }
+.minWidth90 { min-width: 90px; }
+.minWidthMaxContent { min-width: -webkit-max-content; }
+
+.width50 { width: 50px; }
+.width60 { width: 60px; }
+
+.border5 { border: 5px solid #abc; }
+.padding8 { padding: 0px 8px 0px; }
+
+/* All these 4 cases are equivalent. We use them interchangeably. */
+.gridAuto { -webkit-grid-template-columns: auto; }
+.gridMinMaxAutoAuto { -webkit-grid-template-columns: minmax(auto, auto); }
+.gridMinMaxAutoMaxContent { -webkit-grid-template-columns: minmax(auto, -webkit-max-content); }
+.gridMinMaxMinContentAuto { -webkit-grid-template-columns: minmax(-webkit-min-content, auto); }
+
+/* All these 3 cases are equivalent. We use them interchangeably. */
+.gridAutoAndAuto { -webkit-grid-template-columns: auto auto; }
+.gridAutoAndMinMaxAutoAuto { -webkit-grid-template-columns: auto minmax(auto, auto); }
+.gridMinMaxAutoMaxContentAndAuto { -webkit-grid-template-columns: minmax(auto, -webkit-max-content) auto; }
+
+&lt;/style&gt;
+&lt;script src=&quot;../../resources/js-test.js&quot;&gt;&lt;/script&gt;
+&lt;body&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAuto&quot; id=&quot;gridAuto&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn minWidth40&quot;&gt;XXXXXX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAuto&quot; id=&quot;gridAutoItemSmallerThanMinSize&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn minWidth40&quot;&gt;XX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridMinMaxAutoAuto&quot; id=&quot;gridMinMaxAutoAuto&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn minWidth40&quot;&gt;XX XX XX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridMinMaxAutoMaxContent&quot; id=&quot;gridMinMaxAutoMaxContent&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn minWidth40&quot;&gt;XXX XX X&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridMinMaxMinContentAuto&quot; id=&quot;gridMinMaxMinContentAuto&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn minWidth40&quot;&gt;X X X X X X&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAuto&quot; id=&quot;gridAutoMultipleItems&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn minWidth30&quot;&gt;XX&lt;/div&gt;
+        &lt;div class=&quot;secondRowFirstColumn minWidth20&quot;&quot;&gt;XXXX XXXX&lt;/div&gt;
+        &lt;div class=&quot;thirdRowAutoColumn minWidth10&quot;&gt;XX XXXXX X&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridMinMaxAutoAuto&quot; id=&quot;gridMinMaxAutoAutoMultipleItemsOneWithoutMinWidth&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn minWidth30&quot;&gt;XX&lt;/div&gt;
+        &lt;div class=&quot;secondRowFirstColumn&quot;&gt;XXXXXX&lt;/div&gt;
+        &lt;div class=&quot;thirdRowAutoColumn minWidth20&quot;&gt;XXXX XXXX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridMinMaxAutoMaxContent&quot; id=&quot;gridMinMaxAutoMaxContentMultipleItemsOneWithAutoMinWidth&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn minWidth30&quot;&gt;XX&lt;/div&gt;
+        &lt;div class=&quot;secondRowFirstColumn&quot;&gt;XX XXXXXXXX&lt;/div&gt;
+        &lt;div class=&quot;thirdRowAutoColumn minWidth20&quot;&gt;XXXX XXXX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAutoAndAuto&quot; id=&quot;gridAutoAndAutoOneSpanningOneNonSpannig&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn&quot;&gt;XX XX&lt;/div&gt;
+        &lt;div class=&quot;secondRowBothColumn minWidth50&quot;&gt;XXXXXX X XXX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAutoAndAuto&quot; id=&quot;gridAutoAndAutoOneSpanningMultipleNonSpanning&quot;&gt;
+        &lt;div class=&quot;secondRowBothColumn minWidth60&quot;&gt;XX XX XX&lt;/div&gt;
+        &lt;div class=&quot;firstRowSecondColumn&quot;&gt;X X&lt;/div&gt;
+        &lt;div class=&quot;firstRowSecondColumn&quot;&gt;XXXX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAutoAndMinMaxAutoAuto&quot; id=&quot;gridAutoAndMinMaxAutoAutoOneSpanningOneNonSpanning&quot;&gt;
+        &lt;div class=&quot;firstRowSecondColumn&quot;&gt;X XXX XX&lt;/div&gt;
+        &lt;div class=&quot;secondRowBothColumn minWidth70&quot;&gt;XXX XXXX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAutoAndMinMaxAutoAuto&quot; id=&quot;gridAutoAndMinMaxAutoAutoMultipleSpanning&quot;&gt;
+        &lt;div class=&quot;secondRowBothColumn minWidth70&quot;&gt;XX XX XX&lt;/div&gt;
+        &lt;div class=&quot;firstRowBothColumn&quot;&gt;XXXXX X XXXXX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridMinMaxAutoMaxContentAndAuto&quot; id=&quot;gridMinMaxAutoMaxContentAndAutoOneSpanningMultipleNonSpanning&quot;&gt;
+        &lt;div class=&quot;firstRowSecondColumn minWidth60&quot;&gt;X XXX XX&lt;/div&gt;
+        &lt;div class=&quot;secondRowBothColumn minWidth90&quot;&gt;XXXXX XXXXX&lt;/div&gt;
+        &lt;div class=&quot;firstRowFirstColumn&quot;&gt;XX XX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridMinMaxAutoMaxContentAndAuto&quot; id=&quot;gridMinMaxAutoMaxContentAndAutoMultipleSpanningMultipleNonSpanning&quot;&gt;
+        &lt;div class=&quot;secondRowBothColumn&quot;&gt;XX XX XX XX&lt;/div&gt;
+        &lt;div class=&quot;firstRowFirstColumn minWidth40&quot;&gt;XXX&lt;/div&gt;
+        &lt;div class=&quot;firstRowBothColumn minWidth90&quot;&gt;X XX XXX&lt;/div&gt;
+        &lt;div class=&quot;firstRowSecondColumn&quot;&gt;X XX X&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAuto&quot; id=&quot;gridAutoWithFixedWidthChild&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn width60&quot;&gt;XXX X&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAuto&quot; id=&quot;gridAutoWithFixedWidthChildAndMinWidth&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn width60 minWidth40&quot;&gt;XXX X&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAuto&quot; id=&quot;gridAutoWithFixedWidthChildAndHigherMinWidth&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn width60 minWidth90&quot;&gt;XXX X&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAutoAndAuto&quot; id=&quot;gridAutoAndAutoOneSpanningFixedWidth&quot;&gt;
+        &lt;div class=&quot;firstRowBothColumn width50&quot;&gt;XX XXX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAutoAndAuto&quot; id=&quot;gridAutoAndAutoOneSpanningFixedWidthAndMinWidth&quot;&gt;
+        &lt;div class=&quot;firstRowBothColumn width60 minWidth50&quot;&gt;XX XXX XX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAutoAndAuto&quot; id=&quot;gridAutoAndAutoOneSpanningFixedWidthAndHigherMinWidth&quot;&gt;
+        &lt;div class=&quot;firstRowBothColumn width60 minWidth70&quot;&gt;XX XXX XX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAuto&quot; id=&quot;gridAutoFixedMinWidthWithBorder&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn minWidth40 border5&quot;&gt;XXXXXX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAuto&quot; id=&quot;gridAutoFixedMinWidthWithPadding&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn minWidth40 padding8&quot;&gt;XXXXXX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAuto&quot; id=&quot;gridAutoFixedMinWidthWithBorderAndPadding&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn minWidth40 border5 padding8&quot;&gt;XXXXXX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAuto&quot; id=&quot;gridAutoAutoMinWidthWithBorder&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn border5&quot;&gt;XX XXX X&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAuto&quot; id=&quot;gridAutoAutoMinWidthWithPadding&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn padding8&quot;&gt;XX XXX X&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAuto&quot; id=&quot;gridAutoAutoMinWidthWithBorderAndPadding&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn border5 padding8&quot;&gt;XX XXX X&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAuto&quot; id=&quot;gridAutoMaxContentMinWidthWithBorder&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn minWidthMaxContent border5&quot;&gt;X XXXX X&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAuto&quot; id=&quot;gridAutoMaxContentMinWidthWithPadding&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn minWidthMaxContent padding8&quot;&gt;X XXXX X&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAuto&quot; id=&quot;gridAutoMaxContentMinWidthWithBorderAndPadding&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn border5 padding8 minWidthMaxContent&quot;&gt;X XXXX X&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;script&gt;
+function testGridColumnsValues(id, computedColumnValue)
+{
+    shouldBeEqualToString(&quot;window.getComputedStyle(&quot; + id + &quot;, '').getPropertyValue('-webkit-grid-template-columns')&quot;, computedColumnValue);
+}
+
+debug(&quot;Check that min-width is honored when sizing auto columns.&quot;);
+testGridColumnsValues(&quot;gridAuto&quot;, &quot;40px&quot;);
+testGridColumnsValues(&quot;gridAutoItemSmallerThanMinSize&quot;, &quot;40px&quot;);
+testGridColumnsValues(&quot;gridMinMaxAutoAuto&quot;, &quot;40px&quot;);
+testGridColumnsValues(&quot;gridMinMaxAutoMaxContent&quot;, &quot;40px&quot;);
+testGridColumnsValues(&quot;gridMinMaxMinContentAuto&quot;, &quot;40px&quot;);
+testGridColumnsValues(&quot;gridAutoMultipleItems&quot;, &quot;30px&quot;);
+testGridColumnsValues(&quot;gridMinMaxAutoAutoMultipleItemsOneWithoutMinWidth&quot;, &quot;60px&quot;);
+testGridColumnsValues(&quot;gridMinMaxAutoMaxContentMultipleItemsOneWithAutoMinWidth&quot;, &quot;80px&quot;);
+
+debug(&quot;&quot;);
+debug(&quot;Check that min-width is honored when sizing auto columns and spanning grid items.&quot;);
+testGridColumnsValues(&quot;gridAutoAndAutoOneSpanningOneNonSpannig&quot;, &quot;35px 15px&quot;);
+testGridColumnsValues(&quot;gridAutoAndAutoOneSpanningMultipleNonSpanning&quot;, &quot;20px 40px&quot;);
+testGridColumnsValues(&quot;gridAutoAndMinMaxAutoAutoOneSpanningOneNonSpanning&quot;, &quot;20px 50px&quot;);
+testGridColumnsValues(&quot;gridAutoAndMinMaxAutoAutoMultipleSpanning&quot;, &quot;35px 35px&quot;);
+testGridColumnsValues(&quot;gridMinMaxAutoMaxContentAndAutoOneSpanningMultipleNonSpanning&quot;, &quot;25px 65px&quot;);
+testGridColumnsValues(&quot;gridMinMaxAutoMaxContentAndAutoMultipleSpanningMultipleNonSpanning&quot;, &quot;40px 50px&quot;);
+
+debug(&quot;&quot;);
+debug(&quot;Check the interactions between width and min-width and auto tracks.&quot;);
+testGridColumnsValues(&quot;gridAutoWithFixedWidthChild&quot;, &quot;60px&quot;);
+testGridColumnsValues(&quot;gridAutoWithFixedWidthChildAndMinWidth&quot;, &quot;40px&quot;);
+testGridColumnsValues(&quot;gridAutoWithFixedWidthChildAndHigherMinWidth&quot;, &quot;90px&quot;);
+testGridColumnsValues(&quot;gridAutoAndAutoOneSpanningFixedWidth&quot;, &quot;25px 25px&quot;);
+testGridColumnsValues(&quot;gridAutoAndAutoOneSpanningFixedWidthAndMinWidth&quot;, &quot;25px 25px&quot;);
+testGridColumnsValues(&quot;gridAutoAndAutoOneSpanningFixedWidthAndHigherMinWidth&quot;, &quot;35px 35px&quot;);
+
+debug(&quot;&quot;);
+debug(&quot;Check that borders and paddings are considering when computing min sizes.&quot;);
+testGridColumnsValues(&quot;gridAutoFixedMinWidthWithBorder&quot;, &quot;50px&quot;);
+testGridColumnsValues(&quot;gridAutoFixedMinWidthWithPadding&quot;, &quot;56px&quot;);
+testGridColumnsValues(&quot;gridAutoFixedMinWidthWithBorderAndPadding&quot;, &quot;66px&quot;);
+testGridColumnsValues(&quot;gridAutoAutoMinWidthWithBorder&quot;, &quot;40px&quot;);
+testGridColumnsValues(&quot;gridAutoAutoMinWidthWithPadding&quot;, &quot;46px&quot;);
+testGridColumnsValues(&quot;gridAutoAutoMinWidthWithBorderAndPadding&quot;, &quot;56px&quot;);
+testGridColumnsValues(&quot;gridAutoMaxContentMinWidthWithBorder&quot;, &quot;90px&quot;);
+testGridColumnsValues(&quot;gridAutoMaxContentMinWidthWithPadding&quot;, &quot;96px&quot;);
+testGridColumnsValues(&quot;gridAutoMaxContentMinWidthWithBorderAndPadding&quot;, &quot;106px&quot;);
+
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">Property changes on: trunk/LayoutTests/fast/css-grid-layout/grid-automatic-minimum-for-auto-columns.html
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svnmimetype"></a>
<div class="addfile"><h4>Added: svn:mime-type</h4></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<a id="trunkLayoutTestsfastcssgridlayoutgridautomaticminimumforautorowsexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css-grid-layout/grid-automatic-minimum-for-auto-rows-expected.txt (0 => 189911)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/grid-automatic-minimum-for-auto-rows-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-automatic-minimum-for-auto-rows-expected.txt        2015-09-17 12:13:30 UTC (rev 189911)
</span><span class="lines">@@ -0,0 +1,102 @@
</span><ins>+
+Check that min-height is honored when sizing auto rows.
+PASS window.getComputedStyle(gridAuto, '').getPropertyValue('-webkit-grid-template-rows') is &quot;40px&quot;
+PASS window.getComputedStyle(gridAutoItemSmallerThanMinSize, '').getPropertyValue('-webkit-grid-template-rows') is &quot;40px&quot;
+PASS window.getComputedStyle(gridMinMaxAutoAuto, '').getPropertyValue('-webkit-grid-template-rows') is &quot;40px&quot;
+PASS window.getComputedStyle(gridMinMaxAutoMaxContent, '').getPropertyValue('-webkit-grid-template-rows') is &quot;20px&quot;
+PASS window.getComputedStyle(gridMinMaxMinContentAuto, '').getPropertyValue('-webkit-grid-template-rows') is &quot;60px&quot;
+PASS window.getComputedStyle(gridAutoMultipleItems, '').getPropertyValue('-webkit-grid-template-rows') is &quot;60px&quot;
+PASS window.getComputedStyle(gridMinMaxAutoAutoMultipleItemsOneWithoutMinHeight, '').getPropertyValue('-webkit-grid-template-rows') is &quot;50px&quot;
+PASS window.getComputedStyle(gridMinMaxAutoMaxContentMultipleItemsOneWithAutoMinHeight, '').getPropertyValue('-webkit-grid-template-rows') is &quot;60px&quot;
+
+Check that min-height is honored when sizing auto rows and spanning grid items.
+PASS window.getComputedStyle(gridAutoAndAutoOneSpanningOneNonSpannig, '').getPropertyValue('-webkit-grid-template-rows') is &quot;10px 40px&quot;
+PASS window.getComputedStyle(gridAutoAndAutoOneSpanningMultipleNonSpanning, '').getPropertyValue('-webkit-grid-template-rows') is &quot;40px 20px&quot;
+PASS window.getComputedStyle(gridAutoAndMinMaxAutoAutoOneSpanningOneNonSpanning, '').getPropertyValue('-webkit-grid-template-rows') is &quot;40px 30px&quot;
+PASS window.getComputedStyle(gridAutoAndMinMaxAutoAutoMultipleSpanning, '').getPropertyValue('-webkit-grid-template-rows') is &quot;35px 35px&quot;
+PASS window.getComputedStyle(gridMinMaxAutoMaxContentAndAutoOneSpanningMultipleNonSpanning, '').getPropertyValue('-webkit-grid-template-rows') is &quot;25px 65px&quot;
+PASS window.getComputedStyle(gridMinMaxAutoMaxContentAndAutoMultipleSpanningMultipleNonSpanning, '').getPropertyValue('-webkit-grid-template-rows') is &quot;50px 40px&quot;
+
+Check the interactions between height and min-height and auto tracks.
+PASS window.getComputedStyle(gridAutoWithFixedHeightChild, '').getPropertyValue('-webkit-grid-template-rows') is &quot;60px&quot;
+PASS window.getComputedStyle(gridAutoWithFixedHeightChildAndMinHeight, '').getPropertyValue('-webkit-grid-template-rows') is &quot;40px&quot;
+PASS window.getComputedStyle(gridAutoWithFixedHeightChildAndHigherMinHeight, '').getPropertyValue('-webkit-grid-template-rows') is &quot;90px&quot;
+PASS window.getComputedStyle(gridAutoAndAutoOneSpanningFixedHeight, '').getPropertyValue('-webkit-grid-template-rows') is &quot;25px 25px&quot;
+PASS window.getComputedStyle(gridAutoAndAutoOneSpanningFixedHeightAndMinHeight, '').getPropertyValue('-webkit-grid-template-rows') is &quot;25px 25px&quot;
+PASS window.getComputedStyle(gridAutoAndAutoOneSpanningFixedHeightAndHigherMinHeight, '').getPropertyValue('-webkit-grid-template-rows') is &quot;35px 35px&quot;
+
+Check that borders and paddings are considering when computing min sizes.
+PASS window.getComputedStyle(gridAutoFixedMinHeightWithBorder, '').getPropertyValue('-webkit-grid-template-rows') is &quot;50px&quot;
+PASS window.getComputedStyle(gridAutoFixedMinHeightWithPadding, '').getPropertyValue('-webkit-grid-template-rows') is &quot;56px&quot;
+PASS window.getComputedStyle(gridAutoFixedMinHeightWithBorderAndPadding, '').getPropertyValue('-webkit-grid-template-rows') is &quot;66px&quot;
+PASS window.getComputedStyle(gridAutoAutoMinHeightWithBorder, '').getPropertyValue('-webkit-grid-template-rows') is &quot;40px&quot;
+PASS window.getComputedStyle(gridAutoAutoMinHeightWithPadding, '').getPropertyValue('-webkit-grid-template-rows') is &quot;46px&quot;
+PASS window.getComputedStyle(gridAutoAutoMinHeightWithBorderAndPadding, '').getPropertyValue('-webkit-grid-template-rows') is &quot;56px&quot;
+PASS window.getComputedStyle(gridAutoMaxContentMinHeightWithBorder, '').getPropertyValue('-webkit-grid-template-rows') is &quot;30px&quot;
+PASS window.getComputedStyle(gridAutoMaxContentMinHeightWithPadding, '').getPropertyValue('-webkit-grid-template-rows') is &quot;36px&quot;
+PASS window.getComputedStyle(gridAutoMaxContentMinHeightWithBorderAndPadding, '').getPropertyValue('-webkit-grid-template-rows') is &quot;46px&quot;
+PASS successfullyParsed is true
+
+TEST COMPLETE
+XX
+XXX
+XX
+XXX
+XXXX
+XX
+XX
+XX
+X
+X
+X
+XXX
+X
+XX
+XX
+X
+X
+XXXX
+X
+XX
+XXX
+X
+X
+XX
+XXX
+XX
+XXX
+XX
+XX XX
+XXXXXX X XXX
+XX XX XX
+X X X X
+XX XX
+X XXX XX
+XXX XXXX
+XX XX XX
+XXXXX X XXXXX
+X XXX XX
+XXXXX XXXXX
+XX XX
+XX XX XX XX
+XXX
+X XX XXX
+X XX X
+XXX X
+XXX X
+XXX X
+XX XXX XX XXX XX XXX
+XX XXX XX
+XX XXX XX X XX
+XXXXXX
+XXXXXX
+XXXXXX
+XX
+XXX X
+XX
+XXX X
+XX
+XXX X
+XXX X
+XXX X
+XXX X
</ins><span class="cx">Property changes on: trunk/LayoutTests/fast/css-grid-layout/grid-automatic-minimum-for-auto-rows-expected.txt
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<a id="trunkLayoutTestsfastcssgridlayoutgridautomaticminimumforautorowshtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css-grid-layout/grid-automatic-minimum-for-auto-rows.html (0 => 189911)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/grid-automatic-minimum-for-auto-rows.html                                (rev 0)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-automatic-minimum-for-auto-rows.html        2015-09-17 12:13:30 UTC (rev 189911)
</span><span class="lines">@@ -0,0 +1,261 @@
</span><ins>+&lt;html&gt;
+&lt;link href=&quot;resources/grid.css&quot; rel=&quot;stylesheet&quot;/&gt;
+&lt;style&gt;
+.grid { font: 10px/1 Ahem; }
+
+.minHeight10 { min-height: 10px; }
+.minHeight20 { min-height: 20px; }
+.minHeight30 { min-height: 30px; }
+.minHeight40 { min-height: 40px; }
+.minHeight50 { min-height: 50px; }
+.minHeight60 { min-height: 60px; }
+.minHeight70 { min-height: 70px; }
+.minHeight90 { min-height: 90px; }
+.minHeightMaxContent { min-height: -webkit-max-content; }
+
+.height30 { height: 30px; }
+.height50 { height: 50px; }
+.height60 { height: 60px; }
+
+.border5 { border: 5px solid #abc; }
+.padding8 { padding: 8px 0px; }
+
+/* All these 4 cases are equivalent. We use them interchangeably. */
+.gridAuto { -webkit-grid-template-rows: auto; }
+.gridMinMaxAutoAuto { -webkit-grid-template-rows: minmax(auto, auto); }
+.gridMinMaxAutoMaxContent { -webkit-grid-template-rows: minmax(auto, -webkit-max-content); }
+.gridMinMaxMinContentAuto { -webkit-grid-template-rows: minmax(-webkit-min-content, auto); }
+
+/* All these 3 cases are equivalent. We use them interchangeably. */
+.gridAutoAndAuto { -webkit-grid-template-rows: auto auto; }
+.gridAutoAndMinMaxAutoAuto { -webkit-grid-template-rows: auto minmax(auto, auto); }
+.gridMinMaxAutoMaxContentAndAuto { -webkit-grid-template-rows: minmax(auto, -webkit-max-content) auto; }
+
+&lt;/style&gt;
+&lt;script src=&quot;../../resources/js-test.js&quot;&gt;&lt;/script&gt;
+&lt;body&gt;
+
+&lt;div class=&quot;grid gridAuto constrainedContainer&quot; id=&quot;gridAuto&quot;&gt;
+    &lt;div class=&quot;firstRowFirstColumn minHeight40&quot;&gt;XX&lt;br&gt;XXX&lt;br&gt;XX&lt;br&gt;XXX&lt;br&gt;XXXX&lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;grid gridAuto constrainedContainer&quot; id=&quot;gridAutoItemSmallerThanMinSize&quot;&gt;
+    &lt;div class=&quot;firstRowFirstColumn minHeight40&quot;&gt;XX&lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;grid gridMinMaxAutoAuto constrainedContainer&quot; id=&quot;gridMinMaxAutoAuto&quot;&gt;
+    &lt;div class=&quot;firstRowFirstColumn minHeight40&quot;&gt;XX&lt;br&gt;XX&lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;grid gridMinMaxAutoMaxContent constrainedContainer&quot; id=&quot;gridMinMaxAutoMaxContent&quot;&gt;
+    &lt;div class=&quot;firstRowFirstColumn minHeight20 height30&quot;&gt;&lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;grid gridMinMaxMinContentAuto constrainedContainer&quot; id=&quot;gridMinMaxMinContentAuto&quot;&gt;
+    &lt;div class=&quot;firstRowFirstColumn minHeight60&quot;&gt;X&lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;grid gridAuto constrainedContainer&quot; id=&quot;gridAutoMultipleItems&quot;&gt;
+    &lt;div class=&quot;firstRowFirstColumn minHeight60&quot;&gt;X&lt;br&gt;X&lt;/div&gt;
+    &lt;div class=&quot;firstRowSecondColumn minHeight20&quot;&quot;&gt;XXX&lt;br&gt;X&lt;br&gt;XX&lt;br&gt;XX&lt;/div&gt;
+    &lt;div class=&quot;firstRowAutoColumn minConstrainedContainer height50&quot;&gt;&lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;grid gridMinMaxAutoAuto constrainedContainer&quot; id=&quot;gridMinMaxAutoAutoMultipleItemsOneWithoutMinHeight&quot;&gt;
+    &lt;div class=&quot;firstRowFirstColumn height30&quot;&gt;X&lt;br&gt;X&lt;/div&gt;
+    &lt;div class=&quot;firstRowSecondColumn minHeight50&quot;&gt;&lt;/div&gt;
+    &lt;div class=&quot;firstRowAutoColumn minHeight20&quot;&gt;XXXX&lt;br&gt;X&lt;br&gt;XX&lt;br&gt;XXX&lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;grid gridMinMaxAutoMaxContent constrainedContainer&quot; id=&quot;gridMinMaxAutoMaxContentMultipleItemsOneWithAutoMinHeight&quot;&gt;
+    &lt;div class=&quot;firstRowFirstColumn minHeight30&quot;&gt;X&lt;br&gt;X&lt;/div&gt;
+    &lt;div class=&quot;firstRowSecondColumn height60&quot;&gt;XX&lt;/div&gt;
+    &lt;div class=&quot;firstRowAutoColumn minHeight20&quot;&gt;XXX&lt;br&gt;XX&lt;br&gt;XXX&lt;br&gt;XX&lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAutoAndAuto&quot; id=&quot;gridAutoAndAutoOneSpanningOneNonSpannig&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn&quot;&gt;XX XX&lt;/div&gt;
+        &lt;div class=&quot;bothRowFirstColumn minHeight50&quot;&gt;XXXXXX X XXX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAutoAndAuto&quot; id=&quot;gridAutoAndAutoOneSpanningMultipleNonSpanning&quot;&gt;
+        &lt;div class=&quot;bothRowSecondColumn minHeight60&quot;&gt;XX XX XX&lt;/div&gt;
+        &lt;div class=&quot;firstRowFirstColumn&quot;&gt;X X X X&lt;/div&gt;
+        &lt;div class=&quot;firstRowFirstColumn&quot;&gt;XX XX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAutoAndMinMaxAutoAuto&quot; id=&quot;gridAutoAndMinMaxAutoAutoOneSpanningOneNonSpanning&quot;&gt;
+        &lt;div class=&quot;secondRowFirstColumn&quot;&gt;X XXX XX&lt;/div&gt;
+        &lt;div class=&quot;bothRowSecondColumn minHeight70&quot;&gt;XXX XXXX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAutoAndMinMaxAutoAuto&quot; id=&quot;gridAutoAndMinMaxAutoAutoMultipleSpanning&quot;&gt;
+        &lt;div class=&quot;bothRowSecondColumn minHeight70&quot;&gt;XX XX XX&lt;/div&gt;
+        &lt;div class=&quot;bothRowFirstColumn&quot;&gt;XXXXX X XXXXX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridMinMaxAutoMaxContentAndAuto&quot; id=&quot;gridMinMaxAutoMaxContentAndAutoOneSpanningMultipleNonSpanning&quot;&gt;
+        &lt;div class=&quot;secondRowFirstColumn minHeight60&quot;&gt;X XXX XX&lt;/div&gt;
+        &lt;div class=&quot;bothRowSecondColumn minHeight90&quot;&gt;XXXXX XXXXX&lt;/div&gt;
+        &lt;div class=&quot;firstRowFirstColumn&quot;&gt;XX XX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridMinMaxAutoMaxContentAndAuto&quot; id=&quot;gridMinMaxAutoMaxContentAndAutoMultipleSpanningMultipleNonSpanning&quot;&gt;
+        &lt;div class=&quot;bothRowSecondColumn&quot;&gt;XX XX XX XX&lt;/div&gt;
+        &lt;div class=&quot;firstRowFirstColumn minHeight40&quot;&gt;XXX&lt;/div&gt;
+        &lt;div class=&quot;bothRowFirstColumn minHeight90&quot;&gt;X XX XXX&lt;/div&gt;
+        &lt;div class=&quot;secondRowFirstColumn&quot;&gt;X XX X&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAuto&quot; id=&quot;gridAutoWithFixedHeightChild&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn height60&quot;&gt;XXX X&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAuto height30&quot; id=&quot;gridAutoWithFixedHeightChildAndMinHeight&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn height60 minHeight40&quot;&gt;XXX X&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAuto&quot; id=&quot;gridAutoWithFixedHeightChildAndHigherMinHeight&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn height60 minHeight90&quot;&gt;XXX X&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAutoAndAuto&quot; id=&quot;gridAutoAndAutoOneSpanningFixedHeight&quot;&gt;
+        &lt;div class=&quot;bothRowFirstColumn height50&quot;&gt;XX XXX XX XXX XX XXX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAutoAndAuto height30&quot; id=&quot;gridAutoAndAutoOneSpanningFixedHeightAndMinHeight&quot;&gt;
+        &lt;div class=&quot;bothRowFirstColumn height60 minHeight50&quot;&gt;XX XXX XX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAutoAndAuto&quot; id=&quot;gridAutoAndAutoOneSpanningFixedHeightAndHigherMinHeight&quot;&gt;
+        &lt;div class=&quot;bothRowFirstColumn height60 minHeight70&quot;&gt;XX XXX XX X XX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAuto&quot; id=&quot;gridAutoFixedMinHeightWithBorder&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn minHeight40 border5&quot;&gt;XXXXXX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAuto&quot; id=&quot;gridAutoFixedMinHeightWithPadding&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn minHeight40 padding8&quot;&gt;XXXXXX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAuto&quot; id=&quot;gridAutoFixedMinHeightWithBorderAndPadding&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn minHeight40 border5 padding8&quot;&gt;XXXXXX&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAuto&quot; id=&quot;gridAutoAutoMinHeightWithBorder&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn border5&quot;&gt;XX&lt;br&gt;XXX X&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAuto&quot; id=&quot;gridAutoAutoMinHeightWithPadding&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn padding8&quot;&gt;XX&lt;br&gt;XXX X&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAuto&quot; id=&quot;gridAutoAutoMinHeightWithBorderAndPadding&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn border5 padding8&quot;&gt;XX&lt;br&gt;XXX X&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAuto&quot; id=&quot;gridAutoMaxContentMinHeightWithBorder&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn minHeightMaxContent border5&quot;&gt;XXX X&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAuto&quot; id=&quot;gridAutoMaxContentMinHeightWithPadding&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn minHeightMaxContent padding8&quot;&gt;XXX X&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;constrainedContainer&quot;&gt;
+    &lt;div class=&quot;grid gridAuto&quot; id=&quot;gridAutoMaxContentMinHeightWithBorderAndPadding&quot;&gt;
+        &lt;div class=&quot;firstRowFirstColumn border5 padding8 minHeightMaxContent&quot;&gt;XXX X&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;script&gt;
+function testGridRowsValues(id, computedRowValue)
+{
+    shouldBeEqualToString(&quot;window.getComputedStyle(&quot; + id + &quot;, '').getPropertyValue('-webkit-grid-template-rows')&quot;, computedRowValue);
+}
+
+debug(&quot;&quot;);
+debug(&quot;Check that min-height is honored when sizing auto rows.&quot;);
+testGridRowsValues(&quot;gridAuto&quot;, &quot;40px&quot;);
+testGridRowsValues(&quot;gridAutoItemSmallerThanMinSize&quot;, &quot;40px&quot;);
+testGridRowsValues(&quot;gridMinMaxAutoAuto&quot;, &quot;40px&quot;);
+testGridRowsValues(&quot;gridMinMaxAutoMaxContent&quot;, &quot;20px&quot;);
+testGridRowsValues(&quot;gridMinMaxMinContentAuto&quot;, &quot;60px&quot;);
+testGridRowsValues(&quot;gridAutoMultipleItems&quot;, &quot;60px&quot;);
+testGridRowsValues(&quot;gridMinMaxAutoAutoMultipleItemsOneWithoutMinHeight&quot;, &quot;50px&quot;);
+testGridRowsValues(&quot;gridMinMaxAutoMaxContentMultipleItemsOneWithAutoMinHeight&quot;, &quot;60px&quot;);
+
+debug(&quot;&quot;);
+debug(&quot;Check that min-height is honored when sizing auto rows and spanning grid items.&quot;);
+testGridRowsValues(&quot;gridAutoAndAutoOneSpanningOneNonSpannig&quot;, &quot;10px 40px&quot;);
+testGridRowsValues(&quot;gridAutoAndAutoOneSpanningMultipleNonSpanning&quot;, &quot;40px 20px&quot;);
+testGridRowsValues(&quot;gridAutoAndMinMaxAutoAutoOneSpanningOneNonSpanning&quot;, &quot;40px 30px&quot;);
+testGridRowsValues(&quot;gridAutoAndMinMaxAutoAutoMultipleSpanning&quot;, &quot;35px 35px&quot;);
+testGridRowsValues(&quot;gridMinMaxAutoMaxContentAndAutoOneSpanningMultipleNonSpanning&quot;, &quot;25px 65px&quot;);
+testGridRowsValues(&quot;gridMinMaxAutoMaxContentAndAutoMultipleSpanningMultipleNonSpanning&quot;, &quot;50px 40px&quot;);
+
+debug(&quot;&quot;);
+debug(&quot;Check the interactions between height and min-height and auto tracks.&quot;);
+testGridRowsValues(&quot;gridAutoWithFixedHeightChild&quot;, &quot;60px&quot;);
+testGridRowsValues(&quot;gridAutoWithFixedHeightChildAndMinHeight&quot;, &quot;40px&quot;);
+testGridRowsValues(&quot;gridAutoWithFixedHeightChildAndHigherMinHeight&quot;, &quot;90px&quot;);
+testGridRowsValues(&quot;gridAutoAndAutoOneSpanningFixedHeight&quot;, &quot;25px 25px&quot;);
+testGridRowsValues(&quot;gridAutoAndAutoOneSpanningFixedHeightAndMinHeight&quot;, &quot;25px 25px&quot;);
+testGridRowsValues(&quot;gridAutoAndAutoOneSpanningFixedHeightAndHigherMinHeight&quot;, &quot;35px 35px&quot;);
+
+debug(&quot;&quot;);
+debug(&quot;Check that borders and paddings are considering when computing min sizes.&quot;);
+testGridRowsValues(&quot;gridAutoFixedMinHeightWithBorder&quot;, &quot;50px&quot;);
+testGridRowsValues(&quot;gridAutoFixedMinHeightWithPadding&quot;, &quot;56px&quot;);
+testGridRowsValues(&quot;gridAutoFixedMinHeightWithBorderAndPadding&quot;, &quot;66px&quot;);
+testGridRowsValues(&quot;gridAutoAutoMinHeightWithBorder&quot;, &quot;40px&quot;);
+testGridRowsValues(&quot;gridAutoAutoMinHeightWithPadding&quot;, &quot;46px&quot;);
+testGridRowsValues(&quot;gridAutoAutoMinHeightWithBorderAndPadding&quot;, &quot;56px&quot;);
+testGridRowsValues(&quot;gridAutoMaxContentMinHeightWithBorder&quot;, &quot;30px&quot;);
+testGridRowsValues(&quot;gridAutoMaxContentMinHeightWithPadding&quot;, &quot;36px&quot;);
+testGridRowsValues(&quot;gridAutoMaxContentMinHeightWithBorderAndPadding&quot;, &quot;46px&quot;);
+
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">Property changes on: trunk/LayoutTests/fast/css-grid-layout/grid-automatic-minimum-for-auto-rows.html
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svnmimetype"></a>
<div class="addfile"><h4>Added: svn:mime-type</h4></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<a id="trunkLayoutTestsfastcssgridlayoutgridcolumnsrowsgetsetexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layout/grid-columns-rows-get-set-expected.txt (189910 => 189911)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/grid-columns-rows-get-set-expected.txt        2015-09-17 09:13:35 UTC (rev 189910)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-columns-rows-get-set-expected.txt        2015-09-17 12:13:30 UTC (rev 189911)
</span><span class="lines">@@ -42,6 +42,8 @@
</span><span class="cx"> PASS window.getComputedStyle(gridWithCalcInsideMinMaxElement, '').getPropertyValue('-webkit-grid-template-rows') is &quot;300px&quot;
</span><span class="cx"> PASS window.getComputedStyle(gridWithCalcComplexInsideMinMaxElement, '').getPropertyValue('-webkit-grid-template-columns') is &quot;415px&quot;
</span><span class="cx"> PASS window.getComputedStyle(gridWithCalcComplexInsideMinMaxElement, '').getPropertyValue('-webkit-grid-template-rows') is &quot;300px&quot;
</span><ins>+PASS window.getComputedStyle(gridWithAutoInsideMinMaxElement, '').getPropertyValue('-webkit-grid-template-columns') is &quot;20px&quot;
+PASS window.getComputedStyle(gridWithAutoInsideMinMaxElement, '').getPropertyValue('-webkit-grid-template-rows') is &quot;11px&quot;
</ins><span class="cx"> 
</span><span class="cx"> Test getting wrong values for -webkit-grid-template-columns and -webkit-grid-template-rows through CSS (they should resolve to the default: 'none')
</span><span class="cx"> PASS window.getComputedStyle(gridWithFitContentElement, '').getPropertyValue('-webkit-grid-template-columns') is &quot;none&quot;
</span><span class="lines">@@ -100,6 +102,10 @@
</span><span class="cx"> PASS element.style.webkitGridTemplateColumns is &quot;minmax(-webkit-min-content, -webkit-max-content)&quot;
</span><span class="cx"> PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-rows') is &quot;0px&quot;
</span><span class="cx"> PASS element.style.webkitGridTemplateRows is &quot;minmax(-webkit-max-content, -webkit-min-content)&quot;
</span><ins>+PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-columns') is &quot;0px&quot;
+PASS element.style.webkitGridTemplateColumns is &quot;minmax(auto, -webkit-max-content)&quot;
+PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-rows') is &quot;80px&quot;
+PASS element.style.webkitGridTemplateRows is &quot;minmax(10vw, auto)&quot;
</ins><span class="cx"> PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-columns') is &quot;800px&quot;
</span><span class="cx"> PASS element.style.webkitGridTemplateColumns is &quot;3600fr&quot;
</span><span class="cx"> PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-rows') is &quot;600px&quot;
</span><span class="lines">@@ -156,8 +162,6 @@
</span><span class="cx"> PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-rows') is &quot;none&quot;
</span><span class="cx"> PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-columns') is &quot;none&quot;
</span><span class="cx"> PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-rows') is &quot;none&quot;
</span><del>-PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-columns') is &quot;none&quot;
-PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-rows') is &quot;none&quot;
</del><span class="cx"> 
</span><span class="cx"> Test setting grid-template-columns and grid-template-rows back to 'none' through JS
</span><span class="cx"> PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-columns') is &quot;18px&quot;
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssgridlayoutgridcolumnsrowsgetsetmultipleexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layout/grid-columns-rows-get-set-multiple-expected.txt (189910 => 189911)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/grid-columns-rows-get-set-multiple-expected.txt        2015-09-17 09:13:35 UTC (rev 189910)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-columns-rows-get-set-multiple-expected.txt        2015-09-17 12:13:30 UTC (rev 189911)
</span><span class="lines">@@ -40,6 +40,8 @@
</span><span class="cx"> PASS window.getComputedStyle(gridWithCalcAndMinMax, '').getPropertyValue('-webkit-grid-template-rows') is &quot;150px 53px&quot;
</span><span class="cx"> PASS window.getComputedStyle(gridWithCalcInsideMinMax, '').getPropertyValue('-webkit-grid-template-columns') is &quot;400px 120px&quot;
</span><span class="cx"> PASS window.getComputedStyle(gridWithCalcInsideMinMax, '').getPropertyValue('-webkit-grid-template-rows') is &quot;150px 175px&quot;
</span><ins>+PASS window.getComputedStyle(gridWithAutoInsideMinMax, '').getPropertyValue('-webkit-grid-template-columns') is &quot;0px 30px&quot;
+PASS window.getComputedStyle(gridWithAutoInsideMinMax, '').getPropertyValue('-webkit-grid-template-rows') is &quot;132px 60px&quot;
</ins><span class="cx"> 
</span><span class="cx"> Test the initial value
</span><span class="cx"> PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-columns') is 'none'
</span><span class="lines">@@ -78,6 +80,10 @@
</span><span class="cx"> PASS element.style.webkitGridTemplateColumns is &quot;calc(25px + 40%) minmax(-webkit-min-content, calc(10% + 12px))&quot;
</span><span class="cx"> PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-rows') is &quot;100px 0px&quot;
</span><span class="cx"> PASS element.style.webkitGridTemplateRows is &quot;minmax(calc(75% - 350px), -webkit-max-content) auto&quot;
</span><ins>+PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-columns') is &quot;0px 16px&quot;
+PASS element.style.webkitGridTemplateColumns is &quot;auto minmax(16px, auto)&quot;
+PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-rows') is &quot;90px 80px&quot;
+PASS element.style.webkitGridTemplateRows is &quot;minmax(auto, 15%) 10vw&quot;
</ins><span class="cx"> 
</span><span class="cx"> Test getting wrong values set from CSS
</span><span class="cx"> PASS window.getComputedStyle(gridWithNoneAndAuto, '').getPropertyValue('-webkit-grid-template-columns') is &quot;none&quot;
</span><span class="lines">@@ -106,8 +112,6 @@
</span><span class="cx"> PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-rows') is &quot;none&quot;
</span><span class="cx"> PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-columns') is &quot;none&quot;
</span><span class="cx"> PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-rows') is &quot;none&quot;
</span><del>-PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-columns') is &quot;none&quot;
-PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-rows') is &quot;none&quot;
</del><span class="cx"> 
</span><span class="cx"> Test setting grid-template-columns and grid-template-rows to 'inherit' through JS
</span><span class="cx"> PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-columns') is &quot;50px 750px [last]&quot;
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssgridlayoutgridcolumnsrowsgetsetmultiplehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layout/grid-columns-rows-get-set-multiple.html (189910 => 189911)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/grid-columns-rows-get-set-multiple.html        2015-09-17 09:13:35 UTC (rev 189910)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-columns-rows-get-set-multiple.html        2015-09-17 12:13:30 UTC (rev 189911)
</span><span class="lines">@@ -99,6 +99,10 @@
</span><span class="cx">     -webkit-grid-template-rows: calc(150px) minmax(5%, calc(50% - 125px));
</span><span class="cx">     font: 10px Ahem;
</span><span class="cx"> }
</span><ins>+.gridWithAutoInsideMinMax {
+    -webkit-grid-template-columns: minmax(auto, -webkit-min-content) 30px;
+    -webkit-grid-template-rows: calc(100px + 2em) minmax(10%, auto);
+}
</ins><span class="cx"> &lt;/style&gt;
</span><span class="cx"> &lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;/head&gt;
</span><span class="lines">@@ -130,6 +134,7 @@
</span><span class="cx"> &lt;div class=&quot;grid gridWithCalcAndFixed&quot; id=&quot;gridWithCalcAndFixed&quot;&gt;&lt;/div&gt;
</span><span class="cx"> &lt;div class=&quot;grid gridWithCalcAndMinMax&quot; id=&quot;gridWithCalcAndMinMax&quot;&gt;&lt;/div&gt;
</span><span class="cx"> &lt;div class=&quot;grid gridWithCalcInsideMinMax&quot; id=&quot;gridWithCalcInsideMinMax&quot;&gt;&lt;/div&gt;
</span><ins>+&lt;div class=&quot;grid gridWithAutoInsideMinMax&quot; id=&quot;gridWithAutoInsideMinMax&quot;&gt;&lt;/div&gt;
</ins><span class="cx"> &lt;script src=&quot;resources/grid-definitions-parsing-utils.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;resources/grid-columns-rows-get-set-multiple.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssgridlayoutgridcolumnsrowsgetsethtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layout/grid-columns-rows-get-set.html (189910 => 189911)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/grid-columns-rows-get-set.html        2015-09-17 09:13:35 UTC (rev 189910)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-columns-rows-get-set.html        2015-09-17 12:13:30 UTC (rev 189911)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
</del><ins>+&lt;!DOCTYPE html&gt;
</ins><span class="cx"> &lt;html&gt;
</span><span class="cx"> &lt;head&gt;
</span><span class="cx"> &lt;link href=&quot;resources/grid.css&quot; rel=&quot;stylesheet&quot;&gt;
</span><span class="lines">@@ -85,6 +85,10 @@
</span><span class="cx">     -webkit-grid-template-columns: minmax(10%, calc(50% + 15px));
</span><span class="cx">     -webkit-grid-template-rows: minmax(calc(20px + 10%), 50%);
</span><span class="cx"> }
</span><ins>+.gridWithAutoInsideMinMax {
+    -webkit-grid-template-columns: minmax(auto, 20px);
+    -webkit-grid-template-rows: minmax(max-content, auto);
+}
</ins><span class="cx"> &lt;/style&gt;
</span><span class="cx"> &lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;/head&gt;
</span><span class="lines">@@ -120,6 +124,9 @@
</span><span class="cx"> &lt;div class=&quot;grid gridWithCalcComplex&quot; id=&quot;gridWithCalcComplexElement&quot;&gt;&lt;/div&gt;
</span><span class="cx"> &lt;div class=&quot;grid gridWithCalcInsideMinMax&quot; id=&quot;gridWithCalcInsideMinMaxElement&quot;&gt;&lt;/div&gt;
</span><span class="cx"> &lt;div class=&quot;grid gridWithCalcComplexInsideMinMax&quot; id=&quot;gridWithCalcComplexInsideMinMaxElement&quot;&gt;&lt;/div&gt;
</span><ins>+&lt;div class=&quot;grid gridWithAutoInsideMinMax&quot; id=&quot;gridWithAutoInsideMinMaxElement&quot;&gt;
+    &lt;div class=&quot;gridItem&quot;&gt;&lt;/div&gt;
+&lt;/div&gt;
</ins><span class="cx"> &lt;script src=&quot;resources/grid-definitions-parsing-utils.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;resources/grid-columns-rows-get-set.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssgridlayoutnongridcolumnsrowsgetsetexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layout/non-grid-columns-rows-get-set-expected.txt (189910 => 189911)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/non-grid-columns-rows-get-set-expected.txt        2015-09-17 09:13:35 UTC (rev 189910)
+++ trunk/LayoutTests/fast/css-grid-layout/non-grid-columns-rows-get-set-expected.txt        2015-09-17 12:13:30 UTC (rev 189911)
</span><span class="lines">@@ -32,6 +32,8 @@
</span><span class="cx"> PASS window.getComputedStyle(gridWithCalcInsideMinMax, '').getPropertyValue('-webkit-grid-template-rows') is &quot;minmax(20px, 50%)&quot;
</span><span class="cx"> PASS window.getComputedStyle(gridWithCalcComplexInsideMinMax, '').getPropertyValue('-webkit-grid-template-columns') is &quot;minmax(10%, calc(50% + 15px))&quot;
</span><span class="cx"> PASS window.getComputedStyle(gridWithCalcComplexInsideMinMax, '').getPropertyValue('-webkit-grid-template-rows') is &quot;minmax(calc(20px + 10%), 50%)&quot;
</span><ins>+PASS window.getComputedStyle(gridWithAutoInsideMinMax, '').getPropertyValue('-webkit-grid-template-columns') is &quot;minmax(auto, 20px)&quot;
+PASS window.getComputedStyle(gridWithAutoInsideMinMax, '').getPropertyValue('-webkit-grid-template-rows') is &quot;minmax(-webkit-min-content, auto)&quot;
</ins><span class="cx"> 
</span><span class="cx"> Test getting wrong values for grid-template-columns and grid-template-rows through CSS (they should resolve to the default: 'none')
</span><span class="cx"> PASS window.getComputedStyle(gridWithFitContentElement, '').getPropertyValue('-webkit-grid-template-columns') is &quot;none&quot;
</span><span class="lines">@@ -104,6 +106,10 @@
</span><span class="cx"> PASS element.style.webkitGridTemplateColumns is &quot;3fr&quot;
</span><span class="cx"> PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-rows') is &quot;4fr&quot;
</span><span class="cx"> PASS element.style.webkitGridTemplateRows is &quot;4fr&quot;
</span><ins>+PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-columns') is &quot;minmax(auto, 48px)&quot;
+PASS element.style.webkitGridTemplateColumns is &quot;minmax(auto, 8vh)&quot;
+PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-rows') is &quot;minmax(80px, auto)&quot;
+PASS element.style.webkitGridTemplateRows is &quot;minmax(10vw, auto)&quot;
</ins><span class="cx"> 
</span><span class="cx"> Test setting grid-template-columns and grid-template-rows to bad values through JS
</span><span class="cx"> PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-columns') is &quot;none&quot;
</span><span class="lines">@@ -126,8 +132,6 @@
</span><span class="cx"> PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-rows') is &quot;none&quot;
</span><span class="cx"> PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-columns') is &quot;none&quot;
</span><span class="cx"> PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-rows') is &quot;none&quot;
</span><del>-PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-columns') is &quot;none&quot;
-PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-rows') is &quot;none&quot;
</del><span class="cx"> 
</span><span class="cx"> Test setting grid-template-columns and grid-template-rows back to 'none' through JS
</span><span class="cx"> PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-columns') is &quot;18px&quot;
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssgridlayoutnongridcolumnsrowsgetsetmultipleexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layout/non-grid-columns-rows-get-set-multiple-expected.txt (189910 => 189911)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/non-grid-columns-rows-get-set-multiple-expected.txt        2015-09-17 09:13:35 UTC (rev 189910)
+++ trunk/LayoutTests/fast/css-grid-layout/non-grid-columns-rows-get-set-multiple-expected.txt        2015-09-17 12:13:30 UTC (rev 189911)
</span><span class="lines">@@ -36,6 +36,8 @@
</span><span class="cx"> PASS window.getComputedStyle(gridWithCalcAndMinMax, '').getPropertyValue('-webkit-grid-template-rows') is &quot;minmax(25%, -webkit-max-content) calc(10% - 7px)&quot;
</span><span class="cx"> PASS window.getComputedStyle(gridWithCalcInsideMinMax, '').getPropertyValue('-webkit-grid-template-columns') is &quot;minmax(calc(23px + 10%), 400px) 120px&quot;
</span><span class="cx"> PASS window.getComputedStyle(gridWithCalcInsideMinMax, '').getPropertyValue('-webkit-grid-template-rows') is &quot;150px minmax(5%, calc(50% - 125px))&quot;
</span><ins>+PASS window.getComputedStyle(gridWithAutoInsideMinMax, '').getPropertyValue('-webkit-grid-template-columns') is &quot;minmax(auto, 20px) 10%&quot;
+PASS window.getComputedStyle(gridWithAutoInsideMinMax, '').getPropertyValue('-webkit-grid-template-rows') is &quot;-webkit-max-content minmax(-webkit-min-content, auto)&quot;
</ins><span class="cx"> 
</span><span class="cx"> Test the initial value
</span><span class="cx"> PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-columns') is 'none'
</span><span class="lines">@@ -70,6 +72,10 @@
</span><span class="cx"> PASS element.style.webkitGridTemplateColumns is &quot;50% 12vw&quot;
</span><span class="cx"> PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-rows') is &quot;5% 510px&quot;
</span><span class="cx"> PASS element.style.webkitGridTemplateRows is &quot;5% 85vh&quot;
</span><ins>+PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-columns') is &quot;auto minmax(16px, auto)&quot;
+PASS element.style.webkitGridTemplateColumns is &quot;auto minmax(16px, auto)&quot;
+PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-rows') is &quot;minmax(auto, 15%) 80px&quot;
+PASS element.style.webkitGridTemplateRows is &quot;minmax(auto, 15%) 10vw&quot;
</ins><span class="cx"> 
</span><span class="cx"> Test getting wrong values set from CSS
</span><span class="cx"> PASS getComputedStyle(gridWithNoneAndAuto, '').getPropertyValue('-webkit-grid-template-columns') is 'none'
</span><span class="lines">@@ -94,8 +100,6 @@
</span><span class="cx"> PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-rows') is &quot;none&quot;
</span><span class="cx"> PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-columns') is &quot;none&quot;
</span><span class="cx"> PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-rows') is &quot;none&quot;
</span><del>-PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-columns') is &quot;none&quot;
-PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-rows') is &quot;none&quot;
</del><span class="cx"> 
</span><span class="cx"> Test setting grid-template-columns and grid-template-rows to 'inherit' through JS
</span><span class="cx"> PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-columns') is &quot;50px 1fr [last]&quot;
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssgridlayoutnongridcolumnsrowsgetsetmultiplehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layout/non-grid-columns-rows-get-set-multiple.html (189910 => 189911)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/non-grid-columns-rows-get-set-multiple.html        2015-09-17 09:13:35 UTC (rev 189910)
+++ trunk/LayoutTests/fast/css-grid-layout/non-grid-columns-rows-get-set-multiple.html        2015-09-17 12:13:30 UTC (rev 189911)
</span><span class="lines">@@ -83,6 +83,10 @@
</span><span class="cx">     -webkit-grid-template-rows: calc(150px) minmax(5%, calc(50% - 125px));
</span><span class="cx">     font: 10px Ahem;
</span><span class="cx"> }
</span><ins>+.gridWithAutoInsideMinMax {
+    -webkit-grid-template-columns: minmax(auto, 20px) 10%;
+    -webkit-grid-template-rows: -webkit-max-content minmax(-webkit-min-content, auto);
+}
</ins><span class="cx"> &lt;/style&gt;
</span><span class="cx"> &lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;/head&gt;
</span><span class="lines">@@ -105,6 +109,7 @@
</span><span class="cx"> &lt;div class=&quot;gridWithCalcAndFixed&quot; id=&quot;gridWithCalcAndFixed&quot;&gt;&lt;/div&gt;
</span><span class="cx"> &lt;div class=&quot;gridWithCalcAndMinMax&quot; id=&quot;gridWithCalcAndMinMax&quot;&gt;&lt;/div&gt;
</span><span class="cx"> &lt;div class=&quot;gridWithCalcInsideMinMax&quot; id=&quot;gridWithCalcInsideMinMax&quot;&gt;&lt;/div&gt;
</span><ins>+&lt;div class=&quot;gridWithAutoInsideMinMax&quot; id=&quot;gridWithAutoInsideMinMax&quot;&gt;&lt;/div&gt;
</ins><span class="cx"> &lt;script src=&quot;resources/grid-definitions-parsing-utils.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;resources/non-grid-columns-rows-get-set-multiple.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssgridlayoutnongridcolumnsrowsgetsethtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layout/non-grid-columns-rows-get-set.html (189910 => 189911)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/non-grid-columns-rows-get-set.html        2015-09-17 09:13:35 UTC (rev 189910)
+++ trunk/LayoutTests/fast/css-grid-layout/non-grid-columns-rows-get-set.html        2015-09-17 12:13:30 UTC (rev 189911)
</span><span class="lines">@@ -68,6 +68,10 @@
</span><span class="cx">     -webkit-grid-template-columns: minmax(10%, calc(50% + 15px));
</span><span class="cx">     -webkit-grid-template-rows: minmax(calc(20px + 10%), 50%);
</span><span class="cx"> }
</span><ins>+.gridWithAutoInsideMinMax {
+    -webkit-grid-template-columns: minmax(auto, 20px);
+    -webkit-grid-template-rows: minmax(-webkit-min-content, auto);
+}
</ins><span class="cx"> &lt;/style&gt;
</span><span class="cx"> &lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;/head&gt;
</span><span class="lines">@@ -88,6 +92,7 @@
</span><span class="cx"> &lt;div class=&quot;gridWithCalcComplex&quot; id=&quot;gridWithCalcComplex&quot;&gt;&lt;/div&gt;
</span><span class="cx"> &lt;div class=&quot;gridWithCalcInsideMinMax&quot; id=&quot;gridWithCalcInsideMinMax&quot;&gt;&lt;/div&gt;
</span><span class="cx"> &lt;div class=&quot;gridWithCalcComplexInsideMinMax&quot; id=&quot;gridWithCalcComplexInsideMinMax&quot;&gt;&lt;/div&gt;
</span><ins>+&lt;div class=&quot;gridWithAutoInsideMinMax&quot; id=&quot;gridWithAutoInsideMinMax&quot;&gt;&lt;/div&gt;
</ins><span class="cx"> &lt;script src=&quot;resources/grid-definitions-parsing-utils.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;resources/non-grid-columns-rows-get-set.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssgridlayoutresourcesgridcolumnsrowsgetsetmultiplejs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layout/resources/grid-columns-rows-get-set-multiple.js (189910 => 189911)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/resources/grid-columns-rows-get-set-multiple.js        2015-09-17 09:13:35 UTC (rev 189910)
+++ trunk/LayoutTests/fast/css-grid-layout/resources/grid-columns-rows-get-set-multiple.js        2015-09-17 12:13:30 UTC (rev 189911)
</span><span class="lines">@@ -19,6 +19,7 @@
</span><span class="cx"> testGridTemplatesValues(document.getElementById(&quot;gridWithCalcAndFixed&quot;), &quot;50% 80px&quot;, &quot;88px 25%&quot;, &quot;400px 80px&quot;, &quot;88px 150px&quot;);
</span><span class="cx"> testGridTemplatesValues(document.getElementById(&quot;gridWithCalcAndMinMax&quot;), &quot;190px minmax(-webkit-min-content, 80px)&quot;, &quot;minmax(25%, -webkit-max-content) 53px&quot;, &quot;190px 80px&quot;, &quot;150px 53px&quot;);
</span><span class="cx"> testGridTemplatesValues(document.getElementById(&quot;gridWithCalcInsideMinMax&quot;), &quot;minmax(103px, 400px) 120px&quot;, &quot;150px minmax(5%, 175px)&quot;, &quot;400px 120px&quot;, &quot;150px 175px&quot;);
</span><ins>+testGridTemplatesValues(document.getElementById(&quot;gridWithAutoInsideMinMax&quot;), &quot;0px 30px&quot;, &quot;132px 60px&quot;);
</ins><span class="cx"> 
</span><span class="cx"> debug(&quot;&quot;);
</span><span class="cx"> debug(&quot;Test the initial value&quot;);
</span><span class="lines">@@ -37,6 +38,7 @@
</span><span class="cx"> testGridTemplatesSetJSValues(&quot;16em 2fr&quot;, &quot;14fr auto&quot;, &quot;160px 640px&quot;, &quot;600px 0px&quot;);
</span><span class="cx"> testGridTemplatesSetJSValues(&quot;calc(25px) calc(2em)&quot;, &quot;auto calc(10%)&quot;, &quot;25px 20px&quot;, &quot;0px 60px&quot;, &quot;calc(25px) calc(2em)&quot;, &quot;auto calc(10%)&quot;);
</span><span class="cx"> testGridTemplatesSetJSValues(&quot;calc(25px + 40%) minmax(-webkit-min-content, calc(10% + 12px))&quot;, &quot;minmax(calc(75% - 350px), -webkit-max-content) auto&quot;, &quot;345px 92px&quot;, &quot;100px 0px&quot;, &quot;calc(25px + 40%) minmax(-webkit-min-content, calc(10% + 12px))&quot;, &quot;minmax(calc(75% - 350px), -webkit-max-content) auto&quot;);
</span><ins>+testGridTemplatesSetJSValues(&quot;auto minmax(16px, auto)&quot;, &quot;minmax(auto, 15%) 10vw&quot;, &quot;0px 16px&quot;, &quot;90px 80px&quot;);
</ins><span class="cx"> 
</span><span class="cx"> debug(&quot;&quot;);
</span><span class="cx"> debug(&quot;Test getting wrong values set from CSS&quot;);
</span><span class="lines">@@ -51,7 +53,6 @@
</span><span class="cx"> testGridTemplatesSetBadJSValues(&quot;auto none&quot;, &quot;auto none&quot;);
</span><span class="cx"> testGridTemplatesSetBadJSValues(&quot;auto none 16em&quot;, &quot;auto 18em none&quot;);
</span><span class="cx"> testGridTemplatesSetBadJSValues(&quot;-webkit-fit-content -webkit-fit-content&quot;, &quot;-webkit-fit-available -webkit-fit-available&quot;);
</span><del>-testGridTemplatesSetBadJSValues(&quot;auto minmax(16px, auto)&quot;, &quot;minmax(auto, 15%) 10vw&quot;);
</del><span class="cx"> 
</span><span class="cx"> // Negative values are not allowed.
</span><span class="cx"> testGridTemplatesSetBadJSValues(&quot;-10px minmax(16px, 32px)&quot;, &quot;minmax(10%, 15%) -10vw&quot;);
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssgridlayoutresourcesgridcolumnsrowsgetsetjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layout/resources/grid-columns-rows-get-set.js (189910 => 189911)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/resources/grid-columns-rows-get-set.js        2015-09-17 09:13:35 UTC (rev 189910)
+++ trunk/LayoutTests/fast/css-grid-layout/resources/grid-columns-rows-get-set.js        2015-09-17 12:13:30 UTC (rev 189911)
</span><span class="lines">@@ -20,6 +20,7 @@
</span><span class="cx"> testGridTemplatesValues(document.getElementById(&quot;gridWithCalcComplexElement&quot;), &quot;550px&quot;, &quot;465px&quot;);
</span><span class="cx"> testGridTemplatesValues(document.getElementById(&quot;gridWithCalcInsideMinMaxElement&quot;), &quot;minmax(10%, 15px)&quot;, &quot;minmax(20px, 50%)&quot;, &quot;80px&quot;, &quot;300px&quot;);
</span><span class="cx"> testGridTemplatesValues(document.getElementById(&quot;gridWithCalcComplexInsideMinMaxElement&quot;), &quot;minmax(10%, 415px)&quot;, &quot;minmax(80px, 50%)&quot;, &quot;415px&quot;, &quot;300px&quot;);
</span><ins>+testGridTemplatesValues(document.getElementById(&quot;gridWithAutoInsideMinMaxElement&quot;), &quot;20px&quot;, &quot;11px&quot;);
</ins><span class="cx"> 
</span><span class="cx"> debug(&quot;&quot;);
</span><span class="cx"> debug(&quot;Test getting wrong values for -webkit-grid-template-columns and -webkit-grid-template-rows through CSS (they should resolve to the default: 'none')&quot;);
</span><span class="lines">@@ -51,6 +52,7 @@
</span><span class="cx"> testGridTemplatesSetJSValues(&quot;minmax(-webkit-min-content, 8vh)&quot;, &quot;minmax(10vw, -webkit-min-content)&quot;, &quot;48px&quot;, &quot;80px&quot;);
</span><span class="cx"> testGridTemplatesSetJSValues(&quot;minmax(22em, -webkit-max-content)&quot;, &quot;minmax(-webkit-max-content, 5em)&quot;, &quot;220px&quot;, &quot;50px&quot;);
</span><span class="cx"> testGridTemplatesSetJSValues(&quot;minmax(-webkit-min-content, -webkit-max-content)&quot;, &quot;minmax(-webkit-max-content, -webkit-min-content)&quot;, &quot;0px&quot;, &quot;0px&quot;);
</span><ins>+testGridTemplatesSetJSValues(&quot;minmax(auto, -webkit-max-content)&quot;, &quot;minmax(10vw, auto)&quot;, &quot;0px&quot;, &quot;80px&quot;);
</ins><span class="cx"> // Unit comparison should be case-insensitive.
</span><span class="cx"> testGridTemplatesSetJSValues(&quot;3600Fr&quot;, &quot;154fR&quot;, &quot;800px&quot;, &quot;600px&quot;, &quot;3600fr&quot;, &quot;154fr&quot;);
</span><span class="cx"> 
</span><span class="lines">@@ -76,8 +78,6 @@
</span><span class="cx"> // No breadth value and no comma.
</span><span class="cx"> testGridTemplatesSetBadJSValues(&quot;minmax()&quot;, &quot;minmax(30px 30% 30em)&quot;);
</span><span class="cx"> 
</span><del>-// Auto is not allowed inside minmax.
-testGridTemplatesSetBadJSValues(&quot;minmax(auto, 8vh)&quot;, &quot;minmax(10vw, auto)&quot;);
</del><span class="cx"> testGridTemplatesSetBadJSValues(&quot;-2fr&quot;, &quot;3ffr&quot;);
</span><span class="cx"> testGridTemplatesSetBadJSValues(&quot;-2.05fr&quot;, &quot;+-3fr&quot;);
</span><span class="cx"> testGridTemplatesSetBadJSValues(&quot;0fr&quot;, &quot;1r&quot;);
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssgridlayoutresourcesnongridcolumnsrowsgetsetmultiplejs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layout/resources/non-grid-columns-rows-get-set-multiple.js (189910 => 189911)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/resources/non-grid-columns-rows-get-set-multiple.js        2015-09-17 09:13:35 UTC (rev 189910)
+++ trunk/LayoutTests/fast/css-grid-layout/resources/non-grid-columns-rows-get-set-multiple.js        2015-09-17 12:13:30 UTC (rev 189911)
</span><span class="lines">@@ -17,6 +17,7 @@
</span><span class="cx"> testGridTemplatesValues(document.getElementById(&quot;gridWithCalcAndFixed&quot;), &quot;50% 80px&quot;, &quot;88px 25%&quot;);
</span><span class="cx"> testGridTemplatesValues(document.getElementById(&quot;gridWithCalcAndMinMax&quot;), &quot;calc(30px + 20%) minmax(-webkit-min-content, 80px)&quot;, &quot;minmax(25%, -webkit-max-content) calc(10% - 7px)&quot;);
</span><span class="cx"> testGridTemplatesValues(document.getElementById(&quot;gridWithCalcInsideMinMax&quot;), &quot;minmax(calc(23px + 10%), 400px) 120px&quot;, &quot;150px minmax(5%, calc(50% - 125px))&quot;);
</span><ins>+testGridTemplatesValues(document.getElementById(&quot;gridWithAutoInsideMinMax&quot;), &quot;minmax(auto, 20px) 10%&quot;, &quot;-webkit-max-content minmax(-webkit-min-content, auto)&quot;);
</ins><span class="cx"> 
</span><span class="cx"> debug(&quot;&quot;);
</span><span class="cx"> debug(&quot;Test the initial value&quot;);
</span><span class="lines">@@ -34,6 +35,7 @@
</span><span class="cx"> testNonGridTemplatesSetJSValues(&quot;16em minmax(16px, 20px)&quot;, &quot;minmax(10%, 15%) auto&quot;, &quot;160px minmax(16px, 20px)&quot;);
</span><span class="cx"> testNonGridTemplatesSetJSValues(&quot;16em 2fr&quot;, &quot;14fr auto&quot;, &quot;160px 2fr&quot;);
</span><span class="cx"> testNonGridTemplatesSetJSValues(&quot;50% 12vw&quot;, &quot;5% 85vh&quot;, &quot;50% 96px&quot;, &quot;5% 510px&quot;);
</span><ins>+testNonGridTemplatesSetJSValues(&quot;auto minmax(16px, auto)&quot;, &quot;minmax(auto, 15%) 10vw&quot;, &quot;auto minmax(16px, auto)&quot;, &quot;minmax(auto, 15%) 80px&quot;);
</ins><span class="cx"> 
</span><span class="cx"> debug(&quot;&quot;);
</span><span class="cx"> debug(&quot;Test getting wrong values set from CSS&quot;);
</span><span class="lines">@@ -53,7 +55,6 @@
</span><span class="cx"> testGridTemplatesSetBadJSValues(&quot;auto none&quot;, &quot;auto none&quot;);
</span><span class="cx"> testGridTemplatesSetBadJSValues(&quot;auto none 16em&quot;, &quot;auto 18em none&quot;);
</span><span class="cx"> testGridTemplatesSetBadJSValues(&quot;-webkit-fit-content -webkit-fit-content&quot;, &quot;-webkit-fit-available -webkit-fit-available&quot;);
</span><del>-testGridTemplatesSetBadJSValues(&quot;auto minmax(16px, auto)&quot;, &quot;minmax(auto, 15%) 10vw&quot;);
</del><span class="cx"> // Negative values are not allowed.
</span><span class="cx"> testGridTemplatesSetBadJSValues(&quot;-10px minmax(16px, 32px)&quot;, &quot;minmax(10%, 15%) -10vw&quot;);
</span><span class="cx"> testGridTemplatesSetBadJSValues(&quot;10px minmax(16px, -1vw)&quot;, &quot;minmax(-1%, 15%) 10vw&quot;);
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssgridlayoutresourcesnongridcolumnsrowsgetsetjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layout/resources/non-grid-columns-rows-get-set.js (189910 => 189911)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/resources/non-grid-columns-rows-get-set.js        2015-09-17 09:13:35 UTC (rev 189910)
+++ trunk/LayoutTests/fast/css-grid-layout/resources/non-grid-columns-rows-get-set.js        2015-09-17 12:13:30 UTC (rev 189911)
</span><span class="lines">@@ -15,6 +15,7 @@
</span><span class="cx"> testGridTemplatesValues(document.getElementById(&quot;gridWithCalcComplex&quot;), &quot;calc(50% + 150px)&quot;, &quot;calc(65% + 75px)&quot;);
</span><span class="cx"> testGridTemplatesValues(document.getElementById(&quot;gridWithCalcInsideMinMax&quot;), &quot;minmax(10%, 15px)&quot;, &quot;minmax(20px, 50%)&quot;);
</span><span class="cx"> testGridTemplatesValues(document.getElementById(&quot;gridWithCalcComplexInsideMinMax&quot;), &quot;minmax(10%, calc(50% + 15px))&quot;, &quot;minmax(calc(20px + 10%), 50%)&quot;);
</span><ins>+testGridTemplatesValues(document.getElementById(&quot;gridWithAutoInsideMinMax&quot;), &quot;minmax(auto, 20px)&quot;, &quot;minmax(-webkit-min-content, auto)&quot;);
</ins><span class="cx"> 
</span><span class="cx"> debug(&quot;&quot;);
</span><span class="cx"> debug(&quot;Test getting wrong values for grid-template-columns and grid-template-rows through CSS (they should resolve to the default: 'none')&quot;);
</span><span class="lines">@@ -54,6 +55,7 @@
</span><span class="cx"> testNonGridTemplatesSetJSValues(&quot;3.1459fr&quot;, &quot;2.718fr&quot;);
</span><span class="cx"> // A leading '+' is allowed.
</span><span class="cx"> testNonGridTemplatesSetJSValues(&quot;+3fr&quot;, &quot;+4fr&quot;, &quot;3fr&quot;, &quot;4fr&quot;, &quot;3fr&quot;, &quot;4fr&quot;);
</span><ins>+testNonGridTemplatesSetJSValues(&quot;minmax(auto, 8vh)&quot;, &quot;minmax(10vw, auto)&quot;, &quot;minmax(auto, 48px)&quot;, &quot;minmax(80px, auto)&quot;);
</ins><span class="cx"> 
</span><span class="cx"> debug(&quot;&quot;);
</span><span class="cx"> debug(&quot;Test setting grid-template-columns and grid-template-rows to bad values through JS&quot;);
</span><span class="lines">@@ -63,8 +65,6 @@
</span><span class="cx"> testGridTemplatesSetBadJSValues(&quot;minmax(minmax(10px, 20px), 20px)&quot;, &quot;minmax(10px, 20px, 30px)&quot;);
</span><span class="cx"> // No breadth value and no comma.
</span><span class="cx"> testGridTemplatesSetBadJSValues(&quot;minmax()&quot;, &quot;minmax(30px 30% 30em)&quot;);
</span><del>-// Auto is not allowed inside minmax.
-testGridTemplatesSetBadJSValues(&quot;minmax(auto, 8vh)&quot;, &quot;minmax(10vw, auto)&quot;);
</del><span class="cx"> testGridTemplatesSetBadJSValues(&quot;-2fr&quot;, &quot;3ffr&quot;);
</span><span class="cx"> testGridTemplatesSetBadJSValues(&quot;-2.05fr&quot;, &quot;+-3fr&quot;);
</span><span class="cx"> testGridTemplatesSetBadJSValues(&quot;0fr&quot;, &quot;1r&quot;);
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (189910 => 189911)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-09-17 09:13:35 UTC (rev 189910)
+++ trunk/Source/WebCore/ChangeLog        2015-09-17 12:13:30 UTC (rev 189911)
</span><span class="lines">@@ -1,3 +1,54 @@
</span><ins>+2015-09-15  Sergio Villar Senin  &lt;svillar@igalia.com&gt;
+
+        [CSS Grid Layout]  Using automatic (instead of min-content) minimums for 'auto' tracks
+        https://bugs.webkit.org/show_bug.cgi?id=142329
+
+        Reviewed by Darin Adler.
+
+        Based on Blink's r198697 by &lt;svillar@igalia.com&gt; and r200478 by &lt;jfernandez@igalia.com&gt;
+
+        More precisely (syntax-wise), this would allow 'auto' to be used within the
+        minmax() function (it's currently forbidden) and have the 'auto' keyword map
+        to minmax(auto, auto) instead of minmax(min-content, max-content).
+        - As a minimum, 'auto' would mean &quot;use the specified minimum size, or if
+        that is auto, treat as 0 or min-content per Flexbox rules&quot;.
+        - As a maximum, 'auto' would mean &quot;use the max-content size&quot;.
+
+        Regarding the implementation, a new phase is added to the track sizing
+        algorithm called ResolveIntrinsicMinimums (the former ResolveIntrinsicMinimums
+        is now called ResolveContentBasedMinimums which does not include 'auto'
+        resolution) which will be run before any other. This phase uses the minimum
+        size of grid items (as specified by min-width/height).
+
+        Tests: fast/css-grid-layout/grid-automatic-minimum-for-auto-columns.html
+               fast/css-grid-layout/grid-automatic-minimum-for-auto-rows.html
+
+        * css/CSSParser.cpp:
+        (WebCore::CSSParser::parseGridBreadth):
+        * rendering/RenderGrid.cpp:
+        (WebCore::RenderGrid::computeUsedBreadthOfMinLength):
+        (WebCore::RenderGrid::computeUsedBreadthOfMaxLength):
+        (WebCore::RenderGrid::minSizeForChild):
+        (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
+        (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForNonSpanningItems):
+        (WebCore::RenderGrid::trackSizeForTrackSizeComputationPhase):
+        (WebCore::RenderGrid::shouldProcessTrackForTrackSizeComputationPhase):
+        (WebCore::RenderGrid::trackShouldGrowBeyondGrowthLimitsForTrackSizeComputationPhase):
+        (WebCore::RenderGrid::markAsInfinitelyGrowableForTrackSizeComputationPhase):
+        (WebCore::RenderGrid::updateTrackSizeForTrackSizeComputationPhase):
+        (WebCore::RenderGrid::currentItemSizeForTrackSizeComputationPhase):
+        * rendering/RenderGrid.h:
+        * rendering/style/GridTrackSize.h:
+        (WebCore::GridTrackSize::minTrackBreadth):
+        (WebCore::GridTrackSize::maxTrackBreadth):
+        (WebCore::GridTrackSize::cacheMinMaxTrackBreadthTypes):
+        (WebCore::GridTrackSize::hasIntrinsicMinTrackBreadth):
+        (WebCore::GridTrackSize::hasAutoMinTrackBreadth):
+        (WebCore::GridTrackSize::hasAutoMaxTrackBreadth):
+        (WebCore::GridTrackSize::hasMaxContentOrAutoMaxTrackBreadth):
+        (WebCore::GridTrackSize::hasAutoOrMinContentMinTrackBreadthAndIntrinsicMaxTrackBreadth):
+        (WebCore::GridTrackSize::hasMinContentMinTrackBreadthAndMinOrMaxContentMaxTrackBreadth): Deleted.
+
</ins><span class="cx"> 2015-09-17  Javier Fernandez  &lt;jfernandez@igalia.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [CSS Grid Layout] Relayout whenever Box Alignment properties change
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSParser.cpp (189910 => 189911)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSParser.cpp        2015-09-17 09:13:35 UTC (rev 189910)
+++ trunk/Source/WebCore/css/CSSParser.cpp        2015-09-17 12:13:30 UTC (rev 189911)
</span><span class="lines">@@ -5743,7 +5743,7 @@
</span><span class="cx"> 
</span><span class="cx"> RefPtr&lt;CSSPrimitiveValue&gt; CSSParser::parseGridBreadth(CSSParserValue&amp; value)
</span><span class="cx"> {
</span><del>-    if (value.id == CSSValueWebkitMinContent || value.id == CSSValueWebkitMaxContent)
</del><ins>+    if (value.id == CSSValueWebkitMinContent || value.id == CSSValueWebkitMaxContent || value.id == CSSValueAuto)
</ins><span class="cx">         return CSSValuePool::singleton().createIdentifierValue(value.id);
</span><span class="cx"> 
</span><span class="cx">     if (value.unit == CSSPrimitiveValue::CSS_FR) {
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderGridcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderGrid.cpp (189910 => 189911)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderGrid.cpp        2015-09-17 09:13:35 UTC (rev 189910)
+++ trunk/Source/WebCore/rendering/RenderGrid.cpp        2015-09-17 12:13:30 UTC (rev 189911)
</span><span class="lines">@@ -469,11 +469,10 @@
</span><span class="cx">         return 0;
</span><span class="cx"> 
</span><span class="cx">     const Length&amp; trackLength = gridLength.length();
</span><del>-    ASSERT(!trackLength.isAuto());
</del><span class="cx">     if (trackLength.isSpecified())
</span><span class="cx">         return computeUsedBreadthOfSpecifiedLength(direction, trackLength);
</span><span class="cx"> 
</span><del>-    ASSERT(trackLength.isMinContent() || trackLength.isMaxContent());
</del><ins>+    ASSERT(trackLength.isMinContent() || trackLength.isAuto() || trackLength.isMaxContent());
</ins><span class="cx">     return 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -483,14 +482,13 @@
</span><span class="cx">         return usedBreadth;
</span><span class="cx"> 
</span><span class="cx">     const Length&amp; trackLength = gridLength.length();
</span><del>-    ASSERT(!trackLength.isAuto());
</del><span class="cx">     if (trackLength.isSpecified()) {
</span><span class="cx">         LayoutUnit computedBreadth = computeUsedBreadthOfSpecifiedLength(direction, trackLength);
</span><span class="cx">         ASSERT(computedBreadth != infinity);
</span><span class="cx">         return computedBreadth;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    ASSERT(trackLength.isMinContent() || trackLength.isMaxContent());
</del><ins>+    ASSERT(trackLength.isMinContent() || trackLength.isAuto() || trackLength.isMaxContent());
</ins><span class="cx">     return infinity;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -600,6 +598,25 @@
</span><span class="cx">     return child.logicalHeight() + child.marginLogicalHeight();
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+LayoutUnit RenderGrid::minSizeForChild(RenderBox&amp; child, GridTrackSizingDirection direction, Vector&lt;GridTrack&gt;&amp; columnTracks)
+{
+    bool hasOrthogonalWritingMode = child.isHorizontalWritingMode() != isHorizontalWritingMode();
+    // FIXME: Properly support orthogonal writing mode.
+    if (hasOrthogonalWritingMode)
+        return { };
+
+    const Length&amp; childMinSize = direction == ForColumns ? child.style().logicalMinWidth() : child.style().logicalMinHeight();
+    if (childMinSize.isAuto()) {
+        // FIXME: Implement intrinsic aspect ratio support (transferred size in specs).
+        return minContentForChild(child, direction, columnTracks);
+    }
+
+    if (direction == ForColumns)
+        return child.computeLogicalWidthInRegionUsing(MinSize, childMinSize, contentLogicalWidth(), this, nullptr);
+
+    return child.computeContentAndScrollbarLogicalHeightUsing(MinSize, childMinSize, child.logicalHeight()).valueOr(0);
+}
+
</ins><span class="cx"> LayoutUnit RenderGrid::minContentForChild(RenderBox&amp; child, GridTrackSizingDirection direction, Vector&lt;GridTrack&gt;&amp; columnTracks)
</span><span class="cx"> {
</span><span class="cx">     bool hasOrthogonalWritingMode = child.isHorizontalWritingMode() != isHorizontalWritingMode();
</span><span class="lines">@@ -716,6 +733,7 @@
</span><span class="cx">     while (it != end) {
</span><span class="cx">         GridItemsSpanGroupRange spanGroupRange = { it, std::upper_bound(it, end, *it) };
</span><span class="cx">         resolveContentBasedTrackSizingFunctionsForItems&lt;ResolveIntrinsicMinimums&gt;(direction, sizingData, spanGroupRange);
</span><ins>+        resolveContentBasedTrackSizingFunctionsForItems&lt;ResolveContentBasedMinimums&gt;(direction, sizingData, spanGroupRange);
</ins><span class="cx">         resolveContentBasedTrackSizingFunctionsForItems&lt;ResolveMaxContentMinimums&gt;(direction, sizingData, spanGroupRange);
</span><span class="cx">         resolveContentBasedTrackSizingFunctionsForItems&lt;ResolveIntrinsicMaximums&gt;(direction, sizingData, spanGroupRange);
</span><span class="cx">         resolveContentBasedTrackSizingFunctionsForItems&lt;ResolveMaxContentMaximums&gt;(direction, sizingData, spanGroupRange);
</span><span class="lines">@@ -738,10 +756,12 @@
</span><span class="cx">         track.setBaseSize(std::max(track.baseSize(), minContentForChild(gridItem, direction, columnTracks)));
</span><span class="cx">     else if (trackSize.hasMaxContentMinTrackBreadth())
</span><span class="cx">         track.setBaseSize(std::max(track.baseSize(), maxContentForChild(gridItem, direction, columnTracks)));
</span><ins>+    else if (trackSize.hasAutoMinTrackBreadth())
+        track.setBaseSize(std::max(track.baseSize(), minSizeForChild(gridItem, direction, columnTracks)));
</ins><span class="cx"> 
</span><span class="cx">     if (trackSize.hasMinContentMaxTrackBreadth())
</span><span class="cx">         track.setGrowthLimit(std::max(track.growthLimit(), minContentForChild(gridItem, direction, columnTracks)));
</span><del>-    else if (trackSize.hasMaxContentMaxTrackBreadth())
</del><ins>+    else if (trackSize.hasMaxContentOrAutoMaxTrackBreadth())
</ins><span class="cx">         track.setGrowthLimit(std::max(track.growthLimit(), maxContentForChild(gridItem, direction, columnTracks)));
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -749,6 +769,7 @@
</span><span class="cx"> {
</span><span class="cx">     switch (phase) {
</span><span class="cx">     case ResolveIntrinsicMinimums:
</span><ins>+    case ResolveContentBasedMinimums:
</ins><span class="cx">     case ResolveMaxContentMinimums:
</span><span class="cx">     case MaximizeTracks:
</span><span class="cx">         return track.baseSize();
</span><span class="lines">@@ -765,13 +786,15 @@
</span><span class="cx"> {
</span><span class="cx">     switch (phase) {
</span><span class="cx">     case ResolveIntrinsicMinimums:
</span><ins>+        return trackSize.hasIntrinsicMinTrackBreadth();
+    case ResolveContentBasedMinimums:
</ins><span class="cx">         return trackSize.hasMinOrMaxContentMinTrackBreadth();
</span><span class="cx">     case ResolveMaxContentMinimums:
</span><span class="cx">         return trackSize.hasMaxContentMinTrackBreadth();
</span><span class="cx">     case ResolveIntrinsicMaximums:
</span><span class="cx">         return trackSize.hasMinOrMaxContentMaxTrackBreadth();
</span><span class="cx">     case ResolveMaxContentMaximums:
</span><del>-        return trackSize.hasMaxContentMaxTrackBreadth();
</del><ins>+        return trackSize.hasMaxContentOrAutoMaxTrackBreadth();
</ins><span class="cx">     case MaximizeTracks:
</span><span class="cx">         ASSERT_NOT_REACHED();
</span><span class="cx">         return false;
</span><span class="lines">@@ -785,7 +808,8 @@
</span><span class="cx"> {
</span><span class="cx">     switch (phase) {
</span><span class="cx">     case ResolveIntrinsicMinimums:
</span><del>-        return trackSize.hasMinContentMinTrackBreadthAndMinOrMaxContentMaxTrackBreadth();
</del><ins>+    case ResolveContentBasedMinimums:
+        return trackSize.hasAutoOrMinContentMinTrackBreadthAndIntrinsicMaxTrackBreadth();
</ins><span class="cx">     case ResolveMaxContentMinimums:
</span><span class="cx">         return trackSize.hasMaxContentMinTrackBreadthAndMaxContentMaxTrackBreadth();
</span><span class="cx">     case ResolveIntrinsicMaximums:
</span><span class="lines">@@ -804,6 +828,7 @@
</span><span class="cx"> {
</span><span class="cx">     switch (phase) {
</span><span class="cx">     case ResolveIntrinsicMinimums:
</span><ins>+    case ResolveContentBasedMinimums:
</ins><span class="cx">     case ResolveMaxContentMinimums:
</span><span class="cx">         return;
</span><span class="cx">     case ResolveIntrinsicMaximums:
</span><span class="lines">@@ -826,6 +851,7 @@
</span><span class="cx"> {
</span><span class="cx">     switch (phase) {
</span><span class="cx">     case ResolveIntrinsicMinimums:
</span><ins>+    case ResolveContentBasedMinimums:
</ins><span class="cx">     case ResolveMaxContentMinimums:
</span><span class="cx">         track.setBaseSize(track.plannedSize());
</span><span class="cx">         return;
</span><span class="lines">@@ -845,6 +871,8 @@
</span><span class="cx"> {
</span><span class="cx">     switch (phase) {
</span><span class="cx">     case ResolveIntrinsicMinimums:
</span><ins>+        return minSizeForChild(gridItem, direction, columnTracks);
+    case ResolveContentBasedMinimums:
</ins><span class="cx">     case ResolveIntrinsicMaximums:
</span><span class="cx">         return minContentForChild(gridItem, direction, columnTracks);
</span><span class="cx">     case ResolveMaxContentMinimums:
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderGridh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderGrid.h (189910 => 189911)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderGrid.h        2015-09-17 09:13:35 UTC (rev 189910)
+++ trunk/Source/WebCore/rendering/RenderGrid.h        2015-09-17 12:13:30 UTC (rev 189911)
</span><span class="lines">@@ -95,6 +95,7 @@
</span><span class="cx">     };
</span><span class="cx">     enum TrackSizeComputationPhase {
</span><span class="cx">         ResolveIntrinsicMinimums,
</span><ins>+        ResolveContentBasedMinimums,
</ins><span class="cx">         ResolveMaxContentMinimums,
</span><span class="cx">         ResolveIntrinsicMaximums,
</span><span class="cx">         ResolveMaxContentMaximums,
</span><span class="lines">@@ -117,6 +118,7 @@
</span><span class="cx">     GridTrackSize gridTrackSize(GridTrackSizingDirection, unsigned) const;
</span><span class="cx"> 
</span><span class="cx">     LayoutUnit logicalContentHeightForChild(RenderBox&amp;, Vector&lt;GridTrack&gt;&amp;);
</span><ins>+    LayoutUnit minSizeForChild(RenderBox&amp;, GridTrackSizingDirection, Vector&lt;GridTrack&gt;&amp; columnTracks);
</ins><span class="cx">     LayoutUnit minContentForChild(RenderBox&amp;, GridTrackSizingDirection, Vector&lt;GridTrack&gt;&amp; columnTracks);
</span><span class="cx">     LayoutUnit maxContentForChild(RenderBox&amp;, GridTrackSizingDirection, Vector&lt;GridTrack&gt;&amp; columnTracks);
</span><span class="cx">     GridAxisPosition columnAxisPositionForChild(const RenderBox&amp;) const;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleGridTrackSizeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/GridTrackSize.h (189910 => 189911)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/GridTrackSize.h        2015-09-17 09:13:35 UTC (rev 189910)
+++ trunk/Source/WebCore/rendering/style/GridTrackSize.h        2015-09-17 12:13:30 UTC (rev 189911)
</span><span class="lines">@@ -70,23 +70,9 @@
</span><span class="cx">         return minTrackBreadth;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    const GridLength&amp; minTrackBreadth() const
-    {
-        if (m_minTrackBreadth.isLength() &amp;&amp; m_minTrackBreadth.length().isAuto()) {
-            static NeverDestroyed&lt;const GridLength&gt; minContent{Length(MinContent)};
-            return minContent;
-        }
-        return m_minTrackBreadth;
-    }
</del><ins>+    const GridLength&amp; minTrackBreadth() const { return m_minTrackBreadth; }
</ins><span class="cx"> 
</span><del>-    const GridLength&amp; maxTrackBreadth() const
-    {
-        if (m_maxTrackBreadth.isLength() &amp;&amp; m_maxTrackBreadth.length().isAuto()) {
-            static NeverDestroyed&lt;const GridLength&gt; maxContent{Length(MaxContent)};
-            return maxContent;
-        }
-        return m_maxTrackBreadth;
-    }
</del><ins>+    const GridLength&amp; maxTrackBreadth() const { return m_maxTrackBreadth; }
</ins><span class="cx"> 
</span><span class="cx">     GridTrackSizeType type() const { return m_type; }
</span><span class="cx"> 
</span><span class="lines">@@ -101,27 +87,35 @@
</span><span class="cx"> 
</span><span class="cx">     void cacheMinMaxTrackBreadthTypes()
</span><span class="cx">     {
</span><ins>+        m_minTrackBreadthIsAuto = minTrackBreadth().isLength() &amp;&amp; minTrackBreadth().length().isAuto();
</ins><span class="cx">         m_minTrackBreadthIsMinContent = minTrackBreadth().isLength() &amp;&amp; minTrackBreadth().length().isMinContent();
</span><span class="cx">         m_minTrackBreadthIsMaxContent = minTrackBreadth().isLength() &amp;&amp; minTrackBreadth().length().isMaxContent();
</span><span class="cx">         m_maxTrackBreadthIsMaxContent = maxTrackBreadth().isLength() &amp;&amp; maxTrackBreadth().length().isMaxContent();
</span><span class="cx">         m_maxTrackBreadthIsMinContent = maxTrackBreadth().isLength() &amp;&amp; maxTrackBreadth().length().isMinContent();
</span><ins>+        m_maxTrackBreadthIsAuto = maxTrackBreadth().isLength() &amp;&amp; maxTrackBreadth().length().isAuto();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><ins>+    bool hasIntrinsicMinTrackBreadth() const { return m_minTrackBreadthIsMaxContent || m_minTrackBreadthIsMinContent || m_minTrackBreadthIsAuto; }
</ins><span class="cx">     bool hasMinOrMaxContentMinTrackBreadth() const { return m_minTrackBreadthIsMaxContent || m_minTrackBreadthIsMinContent; }
</span><ins>+    bool hasAutoMinTrackBreadth() const { return m_minTrackBreadthIsAuto; }
+    bool hasAutoMaxTrackBreadth() const { return m_maxTrackBreadthIsAuto; }
</ins><span class="cx">     bool hasMaxContentMaxTrackBreadth() const { return m_maxTrackBreadthIsMaxContent; }
</span><ins>+    bool hasMaxContentOrAutoMaxTrackBreadth() const { return m_maxTrackBreadthIsMaxContent || m_maxTrackBreadthIsAuto; }
</ins><span class="cx">     bool hasMinContentMaxTrackBreadth() const { return m_maxTrackBreadthIsMinContent; }
</span><span class="cx">     bool hasMinOrMaxContentMaxTrackBreadth() const { return m_maxTrackBreadthIsMaxContent || m_maxTrackBreadthIsMinContent; }
</span><span class="cx">     bool hasMaxContentMinTrackBreadth() const { return m_minTrackBreadthIsMaxContent; }
</span><span class="cx">     bool hasMinContentMinTrackBreadth() const { return m_minTrackBreadthIsMinContent; }
</span><del>-    bool hasMinContentMinTrackBreadthAndMinOrMaxContentMaxTrackBreadth() const { return m_minTrackBreadthIsMinContent &amp;&amp; hasMinOrMaxContentMaxTrackBreadth(); }
</del><span class="cx">     bool hasMaxContentMinTrackBreadthAndMaxContentMaxTrackBreadth() const { return m_minTrackBreadthIsMaxContent &amp;&amp; m_maxTrackBreadthIsMaxContent; }
</span><ins>+    bool hasAutoOrMinContentMinTrackBreadthAndIntrinsicMaxTrackBreadth() const { return (m_minTrackBreadthIsMinContent || m_minTrackBreadthIsAuto) &amp;&amp; (m_maxTrackBreadthIsAuto || hasMinOrMaxContentMaxTrackBreadth()); }
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     GridTrackSizeType m_type;
</span><span class="cx">     GridLength m_minTrackBreadth;
</span><span class="cx">     GridLength m_maxTrackBreadth;
</span><ins>+    bool m_minTrackBreadthIsAuto;
</ins><span class="cx">     bool m_minTrackBreadthIsMaxContent;
</span><span class="cx">     bool m_minTrackBreadthIsMinContent;
</span><ins>+    bool m_maxTrackBreadthIsAuto;
</ins><span class="cx">     bool m_maxTrackBreadthIsMaxContent;
</span><span class="cx">     bool m_maxTrackBreadthIsMinContent;
</span><span class="cx"> };
</span></span></pre>
</div>
</div>

</body>
</html>