<!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>[205972] 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/205972">205972</a></dd>
<dt>Author</dt> <dd>svillar@igalia.com</dd>
<dt>Date</dt> <dd>2016-09-15 08:51:18 -0700 (Thu, 15 Sep 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Unreviewed, rolling out <a href="http://trac.webkit.org/projects/webkit/changeset/205966">r205966</a>.

Triggered some assertions

Reverted changeset:

&quot;[css-grid] Implement fit-content track size&quot;
https://bugs.webkit.org/show_bug.cgi?id=161379
http://trac.webkit.org/changeset/205966</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="#trunkLayoutTestsfastcssgridlayoutgridcolumnsrowsgetsethtml">trunk/LayoutTests/fast/css-grid-layout/grid-columns-rows-get-set.html</a></li>
<li><a href="#trunkLayoutTestsfastcssgridlayoutresourcesgridcolumnsrowsgetsetjs">trunk/LayoutTests/fast/css-grid-layout/resources/grid-columns-rows-get-set.js</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorecssCSSComputedStyleDeclarationcpp">trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp</a></li>
<li><a href="#trunkSourceWebCorecssStyleBuilderConverterh">trunk/Source/WebCore/css/StyleBuilderConverter.h</a></li>
<li><a href="#trunkSourceWebCorecssparserCSSParsercpp">trunk/Source/WebCore/css/parser/CSSParser.cpp</a></li>
<li><a href="#trunkSourceWebCorecssparserCSSPropertyParsercpp">trunk/Source/WebCore/css/parser/CSSPropertyParser.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>Removed Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsfastcssgridlayoutfitcontentcolumnsexpectedhtml">trunk/LayoutTests/fast/css-grid-layout/fit-content-columns-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastcssgridlayoutfitcontentcolumnshtml">trunk/LayoutTests/fast/css-grid-layout/fit-content-columns.html</a></li>
<li><a href="#trunkLayoutTestsfastcssgridlayoutfitcontentrowsexpectedhtml">trunk/LayoutTests/fast/css-grid-layout/fit-content-rows-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastcssgridlayoutfitcontentrowshtml">trunk/LayoutTests/fast/css-grid-layout/fit-content-rows.html</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (205971 => 205972)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-09-15 15:46:59 UTC (rev 205971)
+++ trunk/LayoutTests/ChangeLog        2016-09-15 15:51:18 UTC (rev 205972)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2016-09-15  Sergio Villar Senin  &lt;svillar@igalia.com&gt;
+
+        Unreviewed, rolling out r205966.
+
+        Triggered some assertions
+
+        Reverted changeset:
+
+        &quot;[css-grid] Implement fit-content track size&quot;
+        https://bugs.webkit.org/show_bug.cgi?id=161379
+        http://trac.webkit.org/changeset/205966
+
</ins><span class="cx"> 2016-09-15  Zalan Bujtas  &lt;zalan@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Cleanup RenderLayer::shouldBeNormalFlowOnly
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssgridlayoutfitcontentcolumnsexpectedhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/css-grid-layout/fit-content-columns-expected.html (205971 => 205972)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/fit-content-columns-expected.html        2016-09-15 15:46:59 UTC (rev 205971)
+++ trunk/LayoutTests/fast/css-grid-layout/fit-content-columns-expected.html        2016-09-15 15:51:18 UTC (rev 205972)
</span><span class="lines">@@ -1,346 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;link href=&quot;resources/grid.css&quot; rel=&quot;stylesheet&quot;&gt;
-&lt;style&gt;
-.grid {
-    justify-content: start;
-    width: 100px;
-    position: relative;
-    padding-top: 10px;
-    margin-bottom: 5px;
-    grid-column-gap: 5px;
-}
-
-.fc0 { grid-template-columns: minmax(auto, 0px);}
-.fc40 { grid-template-columns: minmax(auto, 40px); }
-.fc80 { grid-template-columns: minmax(auto, 80px); }
-.fc110 { grid-template-columns: auto; }
-
-.fc0x2 { grid-template-columns: repeat(2, minmax(auto, 0px));}
-.fc40x2 { grid-template-columns: repeat(2, minmax(auto, 40px)); }
-.fc80x2 { grid-template-columns: repeat(2, minmax(auto, 80px)); }
-.fc110x2 { grid-template-columns: auto auto; }
-
-.fc0p { grid-template-columns: minmax(auto, 0%); }
-.fc30p { grid-template-columns: minmax(auto, 30%); }
-.fc90p { grid-template-columns: minmax(auto, 90%); }
-.fc110p { grid-template-columns: auto; }
-
-.fc0px2 { grid-template-columns: repeat(2, minmax(auto, 0%)); }
-.fc30px2 { grid-template-columns: repeat(2, minmax(auto, 30%)); }
-.fc90px2 { grid-template-columns: repeat(2, minmax(auto, 90%)); }
-.fc110px2 { grid-template-columns: auto auto; }
-
-.item {
-    font: 10px/1 Ahem;
-    background: cyan;
-}
-
-.spanningItem {
-    font: 10px/1 Ahem;
-    grid-column: 1 / -1;
-    grid-row: 2;
-    background: salmon;
-}
-
-.test {
-    position: absolute;
-    left: 0; right: 0; top: 0;
-    height: 5px;
-    background: purple;
-}
-.test:nth-child(2n) { background: orange; }
-
-.floatLeft {
-    float: left;
-    width: 190px;
-}
-
-h3 { font-size: 1em; }
-&lt;/style&gt;
-
-&lt;p&gt;This test checks that 'fit-content()' works as expected, i.e., it's similar to 'auto' ('minmax(auto, -webkit-max-content)') except that the growth limit is clamped at the argument of 'fit-content' (if greater that the 'auto' minimum).&lt;/p&gt;
-
-&lt;div class=&quot;floatLeft&quot;&gt;
-    &lt;h3&gt;Only fit-content() and with fixed size tracks.&lt;/h3&gt;
-    &lt;div class=&quot;grid fc0&quot;&gt;
-        &lt;div class=&quot;item&quot;&gt;XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid fc0x2&quot;&gt;
-        &lt;div class=&quot;item&quot;&gt;XXX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid fc40&quot;&gt;
-        &lt;div class=&quot;item&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: auto auto;&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: minmax(auto, 40px) auto;&quot;&gt;
-        &lt;div class=&quot;item&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid fc80&quot;&gt;
-        &lt;div class=&quot;item&quot;&gt;XXX XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid fc80x2&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: auto minmax(auto, 80px)&quot;&gt;
-        &lt;div class=&quot;item autoRowSecondColumn&quot;&gt;XXX XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: minmax(auto, 20px) 50%;&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: minmax(10px, 40px) minmax(auto, 40px);&quot;&gt;
-        &lt;div class=&quot;item&quot;&gt;XXXXX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: auto minmax(10%, 200px);&quot;&gt;
-        &lt;div class=&quot;item autoRowSecondColumn&quot;&gt;XXXXX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-&lt;/div&gt;
-
-&lt;div class=&quot;floatLeft&quot;&gt;
-    &lt;h3&gt;fit-content() with other content-sized tracks.&lt;/h3&gt;
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: minmax(auto, 40px) -webkit-max-content;&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: minmax(auto, 40px) -webkit-max-content;&quot;&gt;
-        &lt;div class=&quot;item&quot;&gt;XXXXX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: minmax(auto, 40px) -webkit-max-content;&quot;&gt;
-        &lt;div class=&quot;item autoRowSecondColumn&quot;&gt;XXXXX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: -webkit-min-content minmax(auto, 40px);&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: -webkit-min-content minmax(auto, 40px);&quot;&gt;
-        &lt;div class=&quot;item&quot;&gt;XXXXX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: -webkit-min-content minmax(auto, 40px);&quot;&gt;
-        &lt;div class=&quot;item autoRowSecondColumn&quot;&gt;XXXXX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: minmax(auto, 30px) -webkit-min-content -webkit-max-content&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowThirdColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: -webkit-min-content minmax(auto, 30px) -webkit-max-content&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowThirdColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: -webkit-min-content -webkit-max-content minmax(auto, 30px)&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowThirdColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: minmax(auto, 30px) -webkit-min-content -webkit-max-content&quot;&gt;
-        &lt;div class=&quot;item&quot; style=&quot;grid-column: 1&quot;&gt;XXX XX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowThirdColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: -webkit-min-content minmax(auto, 30px) -webkit-max-content&quot;&gt;
-        &lt;div class=&quot;item&quot; style=&quot;grid-column: 1&quot;&gt;XXX XX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowThirdColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: -webkit-min-content -webkit-max-content minmax(auto, 30px)&quot;&gt;
-        &lt;div class=&quot;item&quot; style=&quot;grid-column: 2&quot;&gt;XXX XX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowThirdColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;floatLeft&quot;&gt;
-    &lt;h3&gt;fit-content() with percentage arguments.&lt;/h3&gt;
-    &lt;div class=&quot;grid fc0p&quot;&gt;
-        &lt;div class=&quot;item&quot;&gt;XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid fc0px2&quot;&gt;
-        &lt;div class=&quot;item&quot;&gt;XXX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid fc30p&quot;&gt;
-        &lt;div class=&quot;item&quot;&gt;XX XX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid fc30px2&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid fc30px2&quot;&gt;
-        &lt;div class=&quot;item autoRowSecondColumn&quot;&gt;X X X&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid fc90p&quot;&gt;
-        &lt;div class=&quot;item&quot;&gt;XXX XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid fc90px2&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: auto minmax(auto, 90%)&quot;&gt;
-        &lt;div class=&quot;item autoRowSecondColumn&quot;&gt;XXX XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;floatLeft&quot;&gt;
-    &lt;h3&gt;-webkit-max-content &lt; fit-content() argument.&lt;/h3&gt;
-
-    &lt;div class=&quot;grid fc110&quot;&gt;
-        &lt;div class=&quot;item&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid fc110x2&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid fc110x2&quot;&gt;
-        &lt;div class=&quot;item&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: auto auto;&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: auto auto;&quot;&gt;
-        &lt;div class=&quot;item autoRowSecondColumn&quot;&gt;XX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: -webkit-max-content auto;&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot; style=&quot;grid-row: 1;&quot;&gt;XX XX XX XX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: auto -webkit-min-content;&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot; style=&quot;grid-row: 1;&quot;&gt;XX XX XX XX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: -webkit-max-content auto -webkit-max-content;&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot; style=&quot;grid-row: 1;&quot;&gt;XX XX XX XX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowThirdColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: -webkit-min-content auto -webkit-min-content;&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot; style=&quot;grid-row: 1;&quot;&gt;XX XX XX XX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowThirdColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: auto auto auto;&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot; style=&quot;grid-row: 1;&quot;&gt;XX XX XX XX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowThirdColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-&lt;/div&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfastcssgridlayoutfitcontentcolumnshtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/css-grid-layout/fit-content-columns.html (205971 => 205972)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/fit-content-columns.html        2016-09-15 15:46:59 UTC (rev 205971)
+++ trunk/LayoutTests/fast/css-grid-layout/fit-content-columns.html        2016-09-15 15:51:18 UTC (rev 205972)
</span><span class="lines">@@ -1,347 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;link href=&quot;resources/grid.css&quot; rel=&quot;stylesheet&quot;&gt;
-&lt;style&gt;
-.grid {
-    justify-content: start;
-    width: 100px;
-    position: relative;
-    padding-top: 10px;
-    margin-bottom: 5px;
-    grid-column-gap: 5px;
-}
-
-.fc0 { grid-template-columns: fit-content(0px);}
-.fc40 { grid-template-columns: fit-content(40px); }
-.fc80 { grid-template-columns: fit-content(80px); }
-.fc110 { grid-template-columns: fit-content(110px); }
-
-.fc0x2 { grid-template-columns: repeat(2, fit-content(0px));}
-.fc40x2 { grid-template-columns: repeat(2, fit-content(40px)); }
-.fc80x2 { grid-template-columns: repeat(2, fit-content(80px)); }
-.fc110x2 { grid-template-columns: repeat(2, fit-content(110px)); }
-
-.fc0p { grid-template-columns: fit-content(0%); }
-.fc30p { grid-template-columns: fit-content(30%); }
-.fc90p { grid-template-columns: fit-content(90%); }
-.fc110p { grid-template-columns: fit-content(110%); }
-
-.fc0px2 { grid-template-columns: repeat(2, fit-content(0%)); }
-.fc30px2 { grid-template-columns: repeat(2, fit-content(30%)); }
-.fc90px2 { grid-template-columns: repeat(2, fit-content(90%)); }
-.fc110px2 { grid-template-columns: repeat(2, fit-content(110%)); }
-
-.item {
-    font: 10px/1 Ahem;
-    background: cyan;
-}
-
-.spanningItem {
-    font: 10px/1 Ahem;
-    grid-column: 1 / -1;
-    grid-row: 2;
-    background: salmon;
-}
-
-.test {
-    position: absolute;
-    left: 0; right: 0; top: 0;
-    height: 5px;
-    background: purple;
-}
-.test:nth-child(2n) { background: orange; }
-
-.floatLeft {
-    float: left;
-    width: 190px;
-}
-
-h3 { font-size: 1em; }
-
-&lt;/style&gt;
-
-&lt;p&gt;This test checks that 'fit-content()' works as expected, i.e., it's similar to 'auto' ('minmax(auto, -webkit-max-content)') except that the growth limit is clamped at the argument of 'fit-content' (if greater that the 'auto' minimum).&lt;/p&gt;
-
-&lt;div class=&quot;floatLeft&quot;&gt;
-    &lt;h3&gt;Only fit-content() and with fixed size tracks.&lt;/h3&gt;
-    &lt;div class=&quot;grid fc0&quot;&gt;
-        &lt;div class=&quot;item&quot;&gt;XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid fc0x2&quot;&gt;
-        &lt;div class=&quot;item&quot;&gt;XXX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid fc40&quot;&gt;
-        &lt;div class=&quot;item&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid fc40x2&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid fc40x2&quot;&gt;
-        &lt;div class=&quot;item&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid fc80&quot;&gt;
-        &lt;div class=&quot;item&quot;&gt;XXX XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid fc80x2&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid fc80x2&quot;&gt;
-        &lt;div class=&quot;item autoRowSecondColumn&quot;&gt;XXX XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: fit-content(20px) 50%;&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: minmax(10px, 40px) fit-content(40px);&quot;&gt;
-        &lt;div class=&quot;item&quot;&gt;XXXXX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: fit-content(40px) minmax(10%, 200px);&quot;&gt;
-        &lt;div class=&quot;item autoRowSecondColumn&quot;&gt;XXXXX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-&lt;/div&gt;
-
-&lt;div class=&quot;floatLeft&quot;&gt;
-    &lt;h3&gt;fit-content() with other content-sized tracks.&lt;/h3&gt;
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: fit-content(40px) -webkit-max-content;&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: fit-content(40px) -webkit-max-content;&quot;&gt;
-        &lt;div class=&quot;item&quot;&gt;XXXXX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: fit-content(40px) -webkit-max-content;&quot;&gt;
-        &lt;div class=&quot;item autoRowSecondColumn&quot;&gt;XXXXX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: -webkit-min-content fit-content(40px);&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: -webkit-min-content fit-content(40px);&quot;&gt;
-        &lt;div class=&quot;item&quot;&gt;XXXXX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: -webkit-min-content fit-content(40px);&quot;&gt;
-        &lt;div class=&quot;item autoRowSecondColumn&quot;&gt;XXXXX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: fit-content(30px) -webkit-min-content -webkit-max-content&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowThirdColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: -webkit-min-content fit-content(30px) -webkit-max-content&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowThirdColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: -webkit-min-content -webkit-max-content fit-content(30px)&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowThirdColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: fit-content(30px) -webkit-min-content -webkit-max-content&quot;&gt;
-        &lt;div class=&quot;item&quot; style=&quot;grid-column: 1&quot;&gt;XXX XX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowThirdColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: -webkit-min-content fit-content(30px) -webkit-max-content&quot;&gt;
-        &lt;div class=&quot;item&quot; style=&quot;grid-column: 1&quot;&gt;XXX XX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowThirdColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: -webkit-min-content -webkit-max-content fit-content(30px)&quot;&gt;
-        &lt;div class=&quot;item&quot; style=&quot;grid-column: 2&quot;&gt;XXX XX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowThirdColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;floatLeft&quot;&gt;
-    &lt;h3&gt;fit-content() with percentage arguments.&lt;/h3&gt;
-    &lt;div class=&quot;grid fc0p&quot;&gt;
-        &lt;div class=&quot;item&quot;&gt;XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid fc0px2&quot;&gt;
-        &lt;div class=&quot;item&quot;&gt;XXX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid fc30p&quot;&gt;
-        &lt;div class=&quot;item&quot;&gt;XX XX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid fc30px2&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid fc30px2&quot;&gt;
-        &lt;div class=&quot;item autoRowSecondColumn&quot;&gt;X X X&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid fc90p&quot;&gt;
-        &lt;div class=&quot;item&quot;&gt;XXX XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid fc90px2&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid fc90px2&quot;&gt;
-        &lt;div class=&quot;item autoRowSecondColumn&quot;&gt;XXX XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;floatLeft&quot;&gt;
-    &lt;h3&gt;-webkit-max-content &lt; fit-content() argument.&lt;/h3&gt;
-
-    &lt;div class=&quot;grid fc110&quot;&gt;
-        &lt;div class=&quot;item&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid fc110x2&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid fc110x2&quot;&gt;
-        &lt;div class=&quot;item&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: fit-content(110px) fit-content(40px);&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: fit-content(110px) fit-content(40px);&quot;&gt;
-        &lt;div class=&quot;item autoRowSecondColumn&quot;&gt;XX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: -webkit-max-content fit-content(110px);&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot; style=&quot;grid-row: 1;&quot;&gt;XX XX XX XX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: fit-content(110px) -webkit-min-content;&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot; style=&quot;grid-row: 1;&quot;&gt;XX XX XX XX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: -webkit-max-content fit-content(110px) -webkit-max-content;&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot; style=&quot;grid-row: 1;&quot;&gt;XX XX XX XX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowThirdColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: -webkit-min-content fit-content(110px) -webkit-min-content;&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot; style=&quot;grid-row: 1;&quot;&gt;XX XX XX XX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowThirdColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-    &lt;div class=&quot;grid&quot; style=&quot;grid-template-columns: auto fit-content(110px) auto;&quot;&gt;
-        &lt;div class=&quot;spanningItem&quot; style=&quot;grid-row: 1;&quot;&gt;XX XX XX XX&lt;/div&gt;
-        &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-        &lt;div class=&quot;test autoRowFirstColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowSecondColumn&quot;&gt;&lt;/div&gt;
-        &lt;div class=&quot;test autoRowThirdColumn&quot;&gt;&lt;/div&gt;
-    &lt;/div&gt;
-
-&lt;/div&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfastcssgridlayoutfitcontentrowsexpectedhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/css-grid-layout/fit-content-rows-expected.html (205971 => 205972)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/fit-content-rows-expected.html        2016-09-15 15:46:59 UTC (rev 205971)
+++ trunk/LayoutTests/fast/css-grid-layout/fit-content-rows-expected.html        2016-09-15 15:51:18 UTC (rev 205972)
</span><span class="lines">@@ -1,343 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;link href=&quot;resources/grid.css&quot; rel=&quot;stylesheet&quot;&gt;
-&lt;style&gt;
-.grid {
-    justify-content: start;
-    align-content: start;
-    height: 100px;
-    width: 40px;
-    position: relative;
-    padding-left: 10px;
-    margin-right: 5px;
-    grid-row-gap: 5px;
-    float: left;
-}
-
-.fc0 { grid-template-rows: minmax(auto, 0px);}
-.fc40 { grid-template-rows: minmax(auto, 40px); }
-.fc80 { grid-template-rows: minmax(auto, 80px); }
-.fc110 { grid-template-rows: auto; }
-
-.fc0x2 { grid-template-rows: repeat(2, minmax(auto, 0px));}
-.fc40x2 { grid-template-rows: repeat(2, minmax(auto, 40px)); }
-.fc80x2 { grid-template-rows: repeat(2, minmax(auto, 80px)); }
-.fc110x2 { grid-template-rows: auto auto; }
-
-.fc0p { grid-template-rows: minmax(auto, 0%); }
-.fc30p { grid-template-rows: minmax(auto, 30px); }
-.fc90p { grid-template-rows: minmax(auto, 90px); }
-.fc110p { grid-template-rows: auto; }
-
-.fc0px2 { grid-template-rows: repeat(2, minmax(auto, 0%)); }
-.fc30px2 { grid-template-rows: repeat(2, minmax(auto, 30px)); }
-.fc90px2 { grid-template-rows: repeat(2, minmax(auto, 90px)); }
-.fc110px2 { grid-template-rows: auto auto; }
-
-.item {
-    font: 10px/1 Ahem;
-    background: cyan;
-}
-
-.spanningItem {
-    font: 10px/1 Ahem;
-    grid-row: 1 / -1;
-    grid-column: 2;
-    background: salmon;
-}
-
-.test {
-    position: absolute;
-    left: 0; top: 0; bottom: 0;
-    width: 5px;
-    background: purple;
-}
-.test:nth-child(2n) { background: orange; }
-
-.firstRow { grid-row: 1 / 2; }
-.secondRow { grid-row: 2 / 3; }
-.thirdRow { grid-row: 3 / 4; }
-
-div.grid &gt; div { -webkit-writing-mode: vertical-lr; }
-
-&lt;/style&gt;
-
-&lt;p&gt;This test checks that 'fit-content()' works as expected, i.e., it's similar to 'auto' ('minmax(auto, -webkit-max-content)') except that the growth limit is clamped at the argument of 'fit-content' (if greater that the 'auto' minimum).&lt;/p&gt;
-
-&lt;div class=&quot;grid fc0&quot;&gt;
-    &lt;div class=&quot;item&quot;&gt;XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid fc0x2&quot;&gt;
-    &lt;div class=&quot;item&quot;&gt;XXX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid fc40&quot;&gt;
-    &lt;div class=&quot;item&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: auto auto;&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: minmax(auto, 40px) auto;&quot;&gt;
-    &lt;div class=&quot;item&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid fc80&quot;&gt;
-    &lt;div class=&quot;item&quot;&gt;XXX XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid fc80x2&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: auto minmax(auto, 80px)&quot;&gt;
-    &lt;div class=&quot;item secondRow&quot;&gt;XXX XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: minmax(auto, 20px) 50%;&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: minmax(10px, 40px) minmax(auto, 40px);&quot;&gt;
-    &lt;div class=&quot;item&quot;&gt;XXXXX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: auto minmax(10%, 200px);&quot;&gt;
-    &lt;div class=&quot;item secondRow&quot;&gt;XXXXX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;br clear=&quot;all&quot;&gt;
-&lt;br clear=&quot;all&quot;&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: minmax(auto, 40px) -webkit-max-content;&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: minmax(auto, 40px) -webkit-max-content;&quot;&gt;
-    &lt;div class=&quot;item&quot;&gt;XXXXX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: minmax(auto, 40px) -webkit-max-content;&quot;&gt;
-    &lt;div class=&quot;item secondRow&quot;&gt;XXXXX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: -webkit-min-content minmax(auto, 40px);&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: -webkit-min-content minmax(auto, 40px);&quot;&gt;
-    &lt;div class=&quot;item&quot;&gt;XXXXX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: -webkit-min-content minmax(auto, 40px);&quot;&gt;
-    &lt;div class=&quot;item secondRow&quot;&gt;XXXXX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: minmax(auto, 30px) -webkit-min-content -webkit-max-content&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test thirdRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: -webkit-min-content minmax(auto, 30px) -webkit-max-content&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test thirdRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: -webkit-min-content -webkit-max-content minmax(auto, 30px)&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test thirdRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: minmax(auto, 30px) -webkit-min-content -webkit-max-content&quot;&gt;
-    &lt;div class=&quot;item&quot; style=&quot;grid-row: 1&quot;&gt;XXX XX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test thirdRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: -webkit-min-content minmax(auto, 30px) -webkit-max-content&quot;&gt;
-    &lt;div class=&quot;item&quot; style=&quot;grid-row: 1&quot;&gt;XXX XX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test thirdRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: -webkit-min-content -webkit-max-content minmax(auto, 30px)&quot;&gt;
-    &lt;div class=&quot;item&quot; style=&quot;grid-row: 2&quot;&gt;XXX XX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test thirdRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;br clear=&quot;all&quot;&gt;
-&lt;br clear=&quot;all&quot;&gt;
-
-&lt;div class=&quot;grid fc0p&quot;&gt;
-    &lt;div class=&quot;item&quot;&gt;XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid fc0px2&quot;&gt;
-    &lt;div class=&quot;item&quot;&gt;XXX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid fc30p&quot;&gt;
-    &lt;div class=&quot;item&quot;&gt;XX XX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid fc30px2&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid fc30px2&quot;&gt;
-    &lt;div class=&quot;item secondRow&quot;&gt;X X X&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid fc90p&quot;&gt;
-    &lt;div class=&quot;item&quot;&gt;XXX XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid fc90px2&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: auto minmax(auto, 90px)&quot;&gt;
-    &lt;div class=&quot;item secondRow&quot;&gt;XXX XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;br clear=&quot;all&quot;&gt;
-&lt;br clear=&quot;all&quot;&gt;
-
-&lt;div class=&quot;grid fc110&quot;&gt;
-    &lt;div class=&quot;item&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid fc110x2&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid fc110x2&quot;&gt;
-    &lt;div class=&quot;item&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: auto auto;&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: auto auto;&quot;&gt;
-    &lt;div class=&quot;item secondRow&quot;&gt;XX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: -webkit-max-content auto;&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot; style=&quot;grid-column: 1;&quot;&gt;XX XX XX XX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: auto -webkit-min-content;&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot; style=&quot;grid-column: 1;&quot;&gt;XX XX XX XX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: -webkit-max-content auto -webkit-max-content;&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot; style=&quot;grid-column: 1;&quot;&gt;XX XX XX XX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test thirdRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: -webkit-min-content auto -webkit-min-content;&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot; style=&quot;grid-column: 1;&quot;&gt;XX XX XX XX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test thirdRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: auto auto auto;&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot; style=&quot;grid-column: 1;&quot;&gt;XX XX XX XX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test thirdRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfastcssgridlayoutfitcontentrowshtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/css-grid-layout/fit-content-rows.html (205971 => 205972)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/fit-content-rows.html        2016-09-15 15:46:59 UTC (rev 205971)
+++ trunk/LayoutTests/fast/css-grid-layout/fit-content-rows.html        2016-09-15 15:51:18 UTC (rev 205972)
</span><span class="lines">@@ -1,347 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;link href=&quot;resources/grid.css&quot; rel=&quot;stylesheet&quot;&gt;
-&lt;style&gt;
-.grid {
-    justify-content: start;
-    align-content: start;
-    height: 100px;
-    width: 40px;
-    position: relative;
-    padding-left: 10px;
-    margin-right: 5px;
-    grid-row-gap: 5px;
-    float: left;
-}
-
-.fc0 { grid-template-rows: fit-content(0px);}
-.fc40 { grid-template-rows: fit-content(40px); }
-.fc80 { grid-template-rows: fit-content(80px); }
-.fc110 { grid-template-rows: fit-content(110px); }
-
-.fc0x2 { grid-template-rows: repeat(2, fit-content(0px));}
-.fc40x2 { grid-template-rows: repeat(2, fit-content(40px)); }
-.fc80x2 { grid-template-rows: repeat(2, fit-content(80px)); }
-.fc110x2 { grid-template-rows: repeat(2, fit-content(110px)); }
-
-.fc0p { grid-template-rows: fit-content(0%); }
-.fc30p { grid-template-rows: fit-content(30%); }
-.fc90p { grid-template-rows: fit-content(90%); }
-.fc110p { grid-template-rows: fit-content(110%); }
-
-.fc0px2 { grid-template-rows: repeat(2, fit-content(0%)); }
-.fc30px2 { grid-template-rows: repeat(2, fit-content(30%)); }
-.fc90px2 { grid-template-rows: repeat(2, fit-content(90%)); }
-.fc110px2 { grid-template-rows: repeat(2, fit-content(110%)); }
-
-div.grid &gt; div { -webkit-writing-mode: vertical-lr; }
-
-.item {
-    font: 10px/1 Ahem;
-    background: cyan;
-}
-
-.spanningItem {
-    font: 10px/1 Ahem;
-    grid-row: 1 / -1;
-    grid-column: 2;
-    background: salmon;
-}
-
-.test {
-    position: absolute;
-    left: 0; bottom: 0; top: 0;
-    width: 5px;
-    background: purple;
-}
-.test:nth-child(2n) { background: orange; }
-
-.firstRow { grid-row: 1 / 2; }
-.secondRow { grid-row: 2 / 3; }
-.thirdRow { grid-row: 3 / 4; }
-
-h3 { font-size: 1em; }
-.container { float: left; height: 110px;}
-
-&lt;/style&gt;
-
-&lt;p&gt;This test checks that 'fit-content()' works as expected, i.e., it's similar to 'auto' ('minmax(auto, -webkit-max-content)') except that the growth limit is clamped at the argument of 'fit-content' (if greater that the 'auto' minimum).&lt;/p&gt;
-
-&lt;div class=&quot;grid fc0&quot;&gt;
-    &lt;div class=&quot;item&quot;&gt;XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid fc0x2&quot;&gt;
-    &lt;div class=&quot;item&quot;&gt;XXX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid fc40&quot;&gt;
-    &lt;div class=&quot;item&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid fc40x2&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid fc40x2&quot;&gt;
-    &lt;div class=&quot;item&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid fc80&quot;&gt;
-    &lt;div class=&quot;item&quot;&gt;XXX XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid fc80x2&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid fc80x2&quot;&gt;
-    &lt;div class=&quot;item secondRow&quot;&gt;XXX XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: fit-content(20px) 50%;&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: minmax(10px, 40px) fit-content(40px);&quot;&gt;
-    &lt;div class=&quot;item&quot;&gt;XXXXX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: fit-content(40px) minmax(10%, 200px);&quot;&gt;
-    &lt;div class=&quot;item secondRow&quot;&gt;XXXXX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;br clear =&quot;all&quot;&gt;
-&lt;br clear =&quot;all&quot;&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: fit-content(40px) -webkit-max-content;&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: fit-content(40px) -webkit-max-content;&quot;&gt;
-    &lt;div class=&quot;item&quot;&gt;XXXXX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: fit-content(40px) -webkit-max-content;&quot;&gt;
-    &lt;div class=&quot;item secondRow&quot;&gt;XXXXX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: -webkit-min-content fit-content(40px);&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: -webkit-min-content fit-content(40px);&quot;&gt;
-    &lt;div class=&quot;item&quot;&gt;XXXXX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: -webkit-min-content fit-content(40px);&quot;&gt;
-    &lt;div class=&quot;item secondRow&quot;&gt;XXXXX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: fit-content(30px) -webkit-min-content -webkit-max-content&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test thirdRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: -webkit-min-content fit-content(30px) -webkit-max-content&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test thirdRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: -webkit-min-content -webkit-max-content fit-content(30px)&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test thirdRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: fit-content(30px) -webkit-min-content -webkit-max-content&quot;&gt;
-    &lt;div class=&quot;item&quot; style=&quot;grid-row: 1&quot;&gt;XXX XX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test thirdRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: -webkit-min-content fit-content(30px) -webkit-max-content&quot;&gt;
-    &lt;div class=&quot;item&quot; style=&quot;grid-row: 1&quot;&gt;XXX XX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test thirdRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: -webkit-min-content -webkit-max-content fit-content(30px)&quot;&gt;
-    &lt;div class=&quot;item&quot; style=&quot;grid-row: 2&quot;&gt;XXX XX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test thirdRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;br clear=&quot;all&quot;&gt;
-&lt;br clear=&quot;all&quot;&gt;
-
-&lt;div class=&quot;grid fc0p&quot;&gt;
-    &lt;div class=&quot;item&quot;&gt;XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid fc0px2&quot;&gt;
-    &lt;div class=&quot;item&quot;&gt;XXX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid fc30p&quot;&gt;
-    &lt;div class=&quot;item&quot;&gt;XX XX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid fc30px2&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid fc30px2&quot;&gt;
-    &lt;div class=&quot;item secondRow&quot;&gt;X X X&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid fc90p&quot;&gt;
-    &lt;div class=&quot;item&quot;&gt;XXX XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid fc90px2&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid fc90px2&quot;&gt;
-    &lt;div class=&quot;item secondRow&quot;&gt;XXX XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;br clear=&quot;all&quot;&gt;
-&lt;br clear=&quot;all&quot;&gt;
-
-&lt;div class=&quot;grid fc110&quot;&gt;
-    &lt;div class=&quot;item&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid fc110x2&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid fc110x2&quot;&gt;
-    &lt;div class=&quot;item&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: fit-content(110px) fit-content(40px);&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: fit-content(110px) fit-content(40px);&quot;&gt;
-    &lt;div class=&quot;item secondRow&quot;&gt;XX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: -webkit-max-content fit-content(110px);&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot; style=&quot;grid-column: 1;&quot;&gt;XX XX XX XX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: fit-content(110px) -webkit-min-content;&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot; style=&quot;grid-column: 1;&quot;&gt;XX XX XX XX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: -webkit-max-content fit-content(110px) -webkit-max-content;&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot; style=&quot;grid-column: 1;&quot;&gt;XX XX XX XX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test thirdRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: -webkit-min-content fit-content(110px) -webkit-min-content;&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot; style=&quot;grid-column: 1;&quot;&gt;XX XX XX XX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test thirdRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;grid&quot; style=&quot;grid-template-rows: auto fit-content(110px) auto;&quot;&gt;
-    &lt;div class=&quot;spanningItem&quot; style=&quot;grid-column: 1;&quot;&gt;XX XX XX XX&lt;/div&gt;
-    &lt;div class=&quot;spanningItem&quot;&gt;XXX XXX&lt;/div&gt;
-    &lt;div class=&quot;test firstRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test secondRow&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;test thirdRow&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
</del></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 (205971 => 205972)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/grid-auto-columns-rows-get-set-expected.txt        2016-09-15 15:46:59 UTC (rev 205971)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-auto-columns-rows-get-set-expected.txt        2016-09-15 15:51:18 UTC (rev 205972)
</span><span class="lines">@@ -12,8 +12,6 @@
</span><span class="cx"> PASS window.getComputedStyle(gridAutoMinMaxContent, '').getPropertyValue('grid-auto-columns') is &quot;-webkit-max-content&quot;
</span><span class="cx"> PASS window.getComputedStyle(gridAutoAutoInMinMax, '').getPropertyValue('grid-auto-rows') is &quot;minmax(auto, 48px)&quot;
</span><span class="cx"> PASS window.getComputedStyle(gridAutoAutoInMinMax, '').getPropertyValue('grid-auto-columns') is &quot;minmax(80px, auto)&quot;
</span><del>-PASS window.getComputedStyle(gridAutoFitContent, '').getPropertyValue('grid-auto-rows') is &quot;fit-content(50%)&quot;
-PASS window.getComputedStyle(gridAutoFitContent, '').getPropertyValue('grid-auto-columns') is &quot;fit-content(30px)&quot;
</del><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('grid-auto-rows') is &quot;30px&quot;
</span><span class="lines">@@ -50,8 +48,6 @@
</span><span class="cx"> PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is &quot;minmax(-webkit-max-content, -webkit-min-content)&quot;
</span><span class="cx"> PASS getComputedStyle(element, '').getPropertyValue('grid-auto-columns') is &quot;minmax(-webkit-min-content, 10px) 48px 5%&quot;
</span><span class="cx"> PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is &quot;auto 30px minmax(10%, 60%)&quot;
</span><del>-PASS getComputedStyle(element, '').getPropertyValue('grid-auto-columns') is &quot;fit-content(10px) fit-content(30%)&quot;
-PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is &quot;fit-content(5%) fit-content(40px)&quot;
</del><span class="cx"> 
</span><span class="cx"> Test setting grid-auto-columns and grid-auto-rows to bad minmax value through JS
</span><span class="cx"> PASS getComputedStyle(element, '').getPropertyValue('grid-auto-columns') is &quot;auto&quot;
</span><span class="lines">@@ -66,8 +62,6 @@
</span><span class="cx"> PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is &quot;auto&quot;
</span><span class="cx"> PASS getComputedStyle(element, '').getPropertyValue('grid-auto-columns') is &quot;auto&quot;
</span><span class="cx"> PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is &quot;auto&quot;
</span><del>-PASS getComputedStyle(element, '').getPropertyValue('grid-auto-columns') is &quot;auto&quot;
-PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is &quot;auto&quot;
</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('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 (205971 => 205972)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/grid-auto-columns-rows-get-set.html        2016-09-15 15:46:59 UTC (rev 205971)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-auto-columns-rows-get-set.html        2016-09-15 15:51:18 UTC (rev 205972)
</span><span class="lines">@@ -38,12 +38,6 @@
</span><span class="cx">     grid-auto-columns: 25px 50px 100px;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-.gridAutoFitContent {
-    height: 50px;
-    grid-auto-columns: fit-content(30px);
-    grid-auto-rows: fit-content(50%);
-}
-
</del><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">@@ -72,7 +66,6 @@
</span><span class="cx">     &lt;div style=&quot;grid-column: -4; grid-row: -4&quot;&gt;&lt;/div&gt;
</span><span class="cx">     &lt;div style=&quot;grid-column: -5; grid-row: -5&quot;&gt;&lt;/div&gt;
</span><span class="cx"> &lt;/div&gt;
</span><del>-&lt;div class=&quot;grid gridAutoFitContent&quot; id=&quot;gridAutoFitContent&quot;&gt;&lt;/div&gt;
</del><span class="cx"> 
</span><span class="cx"> &lt;script&gt;
</span><span class="cx"> description('Test that setting and getting grid-auto-columns and grid-auto-rows works as expected');
</span><span class="lines">@@ -82,7 +75,6 @@
</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><span class="cx"> testGridAutoDefinitionsValues(document.getElementById(&quot;gridAutoAutoInMinMax&quot;), &quot;minmax(auto, 48px)&quot;, &quot;minmax(80px, auto)&quot;);
</span><del>-testGridAutoDefinitionsValues(document.getElementById(&quot;gridAutoFitContent&quot;), &quot;fit-content(50%)&quot;, &quot;fit-content(30px)&quot;);
</del><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,7 +114,6 @@
</span><span class="cx"> testAutoValues(&quot;minmax(-webkit-min-content, 8vh)&quot;, &quot;minmax(10vw, -webkit-min-content)&quot;, &quot;minmax(-webkit-min-content, 48px)&quot;, &quot;minmax(80px, -webkit-min-content)&quot;);
</span><span class="cx"> testAutoValues(&quot;minmax(-webkit-min-content, -webkit-max-content)&quot;, &quot;minmax(-webkit-max-content, -webkit-min-content)&quot;);
</span><span class="cx"> testAutoValues(&quot;minmax(-webkit-min-content, 10px) 48px 5%&quot;, &quot;auto 30px minmax(10%, 60%)&quot;);
</span><del>-testAutoValues(&quot;fit-content(10px) fit-content(30%)&quot;, &quot;fit-content(5%) fit-content(calc(20px + 2em))&quot;, &quot;fit-content(10px) fit-content(30%)&quot;, &quot;fit-content(5%) fit-content(40px)&quot;);
</del><span class="cx"> 
</span><span class="cx"> debug(&quot;&quot;);
</span><span class="cx"> debug(&quot;Test setting grid-auto-columns and grid-auto-rows to bad minmax value through JS&quot;);
</span><span class="lines">@@ -132,7 +123,6 @@
</span><span class="cx"> testAutoValues(&quot;none&quot;, &quot;none&quot;, &quot;auto&quot;, &quot;auto&quot;);
</span><span class="cx"> testAutoValues(&quot;10px [a] 20px&quot;, &quot;[z] auto [y] -webkit-min-content&quot;, &quot;auto&quot;, &quot;auto&quot;);
</span><span class="cx"> testAutoValues(&quot;repeat(2, 10px [a] 20px)&quot;, &quot;[z] repeat(auto-fit, 100px)&quot;, &quot;auto&quot;, &quot;auto&quot;);
</span><del>-testAutoValues(&quot;fit-content(min-content) fit-content(auto)&quot;, &quot;fit-content(fit-content(3%)) fit-content(minmax(2px, 30px))&quot;, &quot;auto&quot;, &quot;auto&quot;);
</del><span class="cx"> 
</span><span class="cx"> function testInherit()
</span><span class="cx"> {
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssgridlayoutgridcolumnsrowsgetsetexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layout/grid-columns-rows-get-set-expected.txt (205971 => 205972)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/grid-columns-rows-get-set-expected.txt        2016-09-15 15:46:59 UTC (rev 205971)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-columns-rows-get-set-expected.txt        2016-09-15 15:51:18 UTC (rev 205972)
</span><span class="lines">@@ -44,8 +44,6 @@
</span><span class="cx"> PASS window.getComputedStyle(gridWithCalcComplexInsideMinMaxElement, '').getPropertyValue('grid-template-rows') is &quot;300px&quot;
</span><span class="cx"> PASS window.getComputedStyle(gridWithAutoInsideMinMaxElement, '').getPropertyValue('grid-template-columns') is &quot;20px&quot;
</span><span class="cx"> PASS window.getComputedStyle(gridWithAutoInsideMinMaxElement, '').getPropertyValue('grid-template-rows') is &quot;11px&quot;
</span><del>-PASS window.getComputedStyle(gridWithFitContentFunctionElement, '').getPropertyValue('grid-template-columns') is &quot;7px&quot;
-PASS window.getComputedStyle(gridWithFitContentFunctionElement, '').getPropertyValue('grid-template-rows') is &quot;11px&quot;
</del><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('grid-template-columns') is &quot;none&quot;
</span><span class="lines">@@ -82,10 +80,6 @@
</span><span class="cx"> PASS element.style.gridTemplateColumns is &quot;-webkit-max-content&quot;
</span><span class="cx"> PASS getComputedStyle(element, '').getPropertyValue('grid-template-rows') is &quot;0px&quot;
</span><span class="cx"> PASS element.style.gridTemplateRows is &quot;-webkit-max-content&quot;
</span><del>-PASS getComputedStyle(element, '').getPropertyValue('grid-template-columns') is &quot;0px&quot;
-PASS element.style.gridTemplateColumns is &quot;fit-content(100px)&quot;
-PASS getComputedStyle(element, '').getPropertyValue('grid-template-rows') is &quot;0px&quot;
-PASS element.style.gridTemplateRows is &quot;fit-content(25%)&quot;
</del><span class="cx"> 
</span><span class="cx"> Test getting and setting grid-template-columns and grid-template-rows to minmax() values through JS
</span><span class="cx"> PASS getComputedStyle(element, '').getPropertyValue('grid-template-columns') is &quot;440px&quot;
</span><span class="lines">@@ -172,22 +166,6 @@
</span><span class="cx"> PASS window.getComputedStyle(element, '').getPropertyValue('grid-template-rows') is &quot;none&quot;
</span><span class="cx"> PASS window.getComputedStyle(element, '').getPropertyValue('grid-template-columns') is &quot;none&quot;
</span><span class="cx"> PASS window.getComputedStyle(element, '').getPropertyValue('grid-template-rows') is &quot;none&quot;
</span><del>-PASS window.getComputedStyle(element, '').getPropertyValue('grid-template-columns') is &quot;none&quot;
-PASS window.getComputedStyle(element, '').getPropertyValue('grid-template-rows') is &quot;none&quot;
-PASS window.getComputedStyle(element, '').getPropertyValue('grid-template-columns') is &quot;none&quot;
-PASS window.getComputedStyle(element, '').getPropertyValue('grid-template-rows') is &quot;none&quot;
-PASS window.getComputedStyle(element, '').getPropertyValue('grid-template-columns') is &quot;none&quot;
-PASS window.getComputedStyle(element, '').getPropertyValue('grid-template-rows') is &quot;none&quot;
-PASS window.getComputedStyle(element, '').getPropertyValue('grid-template-columns') is &quot;none&quot;
-PASS window.getComputedStyle(element, '').getPropertyValue('grid-template-rows') is &quot;none&quot;
-PASS window.getComputedStyle(element, '').getPropertyValue('grid-template-columns') is &quot;none&quot;
-PASS window.getComputedStyle(element, '').getPropertyValue('grid-template-rows') is &quot;none&quot;
-PASS window.getComputedStyle(element, '').getPropertyValue('grid-template-columns') is &quot;none&quot;
-PASS window.getComputedStyle(element, '').getPropertyValue('grid-template-rows') is &quot;none&quot;
-PASS window.getComputedStyle(element, '').getPropertyValue('grid-template-columns') is &quot;none&quot;
-PASS window.getComputedStyle(element, '').getPropertyValue('grid-template-rows') is &quot;none&quot;
-PASS window.getComputedStyle(element, '').getPropertyValue('grid-template-columns') is &quot;none&quot;
-PASS window.getComputedStyle(element, '').getPropertyValue('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('grid-template-columns') is &quot;18px&quot;
</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 (205971 => 205972)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/grid-columns-rows-get-set.html        2016-09-15 15:46:59 UTC (rev 205971)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-columns-rows-get-set.html        2016-09-15 15:51:18 UTC (rev 205972)
</span><span class="lines">@@ -91,10 +91,6 @@
</span><span class="cx">     grid-template-columns: minmax(auto, 20px);
</span><span class="cx">     grid-template-rows: minmax(max-content, auto);
</span><span class="cx"> }
</span><del>-.gridWithFitContentFunction {
-    grid-template-columns: fit-content(30%);
-    grid-template-rows: fit-content(20px):
-}
</del><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">@@ -134,9 +130,6 @@
</span><span class="cx"> &lt;div class=&quot;grid definite gridWithAutoInsideMinMax contentStart&quot; id=&quot;gridWithAutoInsideMinMaxElement&quot;&gt;
</span><span class="cx">     &lt;div class=&quot;gridItem&quot;&gt;&lt;/div&gt;
</span><span class="cx"> &lt;/div&gt;
</span><del>-&lt;div class=&quot;grid definite gridWithFitContentFunction contentStart&quot; id=&quot;gridWithFitContentFunctionElement&quot;&gt;
-    &lt;div class=&quot;gridItem&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
</del><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="trunkLayoutTestsfastcssgridlayoutresourcesgridcolumnsrowsgetsetjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layout/resources/grid-columns-rows-get-set.js (205971 => 205972)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/resources/grid-columns-rows-get-set.js        2016-09-15 15:46:59 UTC (rev 205971)
+++ trunk/LayoutTests/fast/css-grid-layout/resources/grid-columns-rows-get-set.js        2016-09-15 15:51:18 UTC (rev 205972)
</span><span class="lines">@@ -21,7 +21,6 @@
</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><span class="cx"> testGridTemplatesValues(document.getElementById(&quot;gridWithAutoInsideMinMaxElement&quot;), &quot;20px&quot;, &quot;11px&quot;);
</span><del>-testGridTemplatesValues(document.getElementById(&quot;gridWithFitContentFunctionElement&quot;), &quot;7px&quot;, &quot;11px&quot;);
</del><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">@@ -45,7 +44,6 @@
</span><span class="cx"> testGridTemplatesSetJSValues(&quot;10vw&quot;, &quot;25vh&quot;, &quot;80px&quot;, &quot;150px&quot;);
</span><span class="cx"> testGridTemplatesSetJSValues(&quot;-webkit-min-content&quot;, &quot;-webkit-min-content&quot;, &quot;0px&quot;, &quot;0px&quot;);
</span><span class="cx"> testGridTemplatesSetJSValues(&quot;-webkit-max-content&quot;, &quot;-webkit-max-content&quot;, &quot;0px&quot;, &quot;0px&quot;);
</span><del>-testGridTemplatesSetJSValues(&quot;fit-content(100px)&quot;, &quot;fit-content(25%)&quot;, &quot;0px&quot;, &quot;0px&quot;);
</del><span class="cx"> 
</span><span class="cx"> debug(&quot;&quot;);
</span><span class="cx"> debug(&quot;Test getting and setting grid-template-columns and grid-template-rows to minmax() values through JS&quot;);
</span><span class="lines">@@ -82,14 +80,6 @@
</span><span class="cx"> // Flexible lengths are invalid on the min slot of minmax().
</span><span class="cx"> testGridTemplatesSetBadJSValues(&quot;minmax(0fr, 100px)&quot;, &quot;minmax(.0fr, 200px)&quot;);
</span><span class="cx"> testGridTemplatesSetBadJSValues(&quot;minmax(1fr, 100px)&quot;, &quot;minmax(2.5fr, 200px)&quot;);
</span><del>-testGridTemplatesSetBadJSValues(&quot;fit-content()&quot;, &quot;fit-content( )&quot;);
-testGridTemplatesSetBadJSValues(&quot;fit-content(-10em)&quot;, &quot;fit-content(-2px)&quot;);
-testGridTemplatesSetBadJSValues(&quot;fit-content(10px 2%)&quot;, &quot;fit-content(5% 10em)&quot;);
-testGridTemplatesSetBadJSValues(&quot;fit-content(-webkit-max-content)&quot;, &quot;fit-content(-webkit-min-content)&quot;);
-testGridTemplatesSetBadJSValues(&quot;fit-content(auto)&quot;, &quot;fit-content(3fr)&quot;);
-testGridTemplatesSetBadJSValues(&quot;fit-content(repeat(2, 100px))&quot;, &quot;fit-content(repeat(auto-fit), 1%)&quot;);
-testGridTemplatesSetBadJSValues(&quot;fit-content(fit-content(10px))&quot;, &quot;fit-content(fit-content(30%))&quot;);
-testGridTemplatesSetBadJSValues(&quot;fit-content([a] 100px)&quot;, &quot;fit-content(30px [b c])&quot;);
</del><span class="cx"> 
</span><span class="cx"> testGridTemplatesSetBadJSValues(&quot;-2fr&quot;, &quot;3ffr&quot;);
</span><span class="cx"> testGridTemplatesSetBadJSValues(&quot;-2.05fr&quot;, &quot;+-3fr&quot;);
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (205971 => 205972)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-09-15 15:46:59 UTC (rev 205971)
+++ trunk/Source/WebCore/ChangeLog        2016-09-15 15:51:18 UTC (rev 205972)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2016-09-15  Sergio Villar Senin  &lt;svillar@igalia.com&gt;
+
+        Unreviewed, rolling out r205966.
+
+        Triggered some assertions
+
+        Reverted changeset:
+
+        &quot;[css-grid] Implement fit-content track size&quot;
+        https://bugs.webkit.org/show_bug.cgi?id=161379
+        http://trac.webkit.org/changeset/205966
+
</ins><span class="cx"> 2016-09-15  Zalan Bujtas  &lt;zalan@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Cleanup RenderLayer::shouldBeNormalFlowOnly
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSComputedStyleDeclarationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp (205971 => 205972)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp        2016-09-15 15:46:59 UTC (rev 205971)
+++ trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp        2016-09-15 15:51:18 UTC (rev 205972)
</span><span class="lines">@@ -1013,12 +1013,7 @@
</span><span class="cx"> {
</span><span class="cx">     switch (trackSize.type()) {
</span><span class="cx">     case LengthTrackSizing:
</span><del>-        return specifiedValueForGridTrackBreadth(trackSize.minTrackBreadth(), style);
-    case FitContentTrackSizing: {
-        auto fitContentTrackSize = CSSValueList::createCommaSeparated();
-        fitContentTrackSize-&gt;append(zoomAdjustedPixelValueForLength(trackSize.fitContentTrackBreadth().length(), style));
-        return CSSFunctionValue::create(&quot;fit-content(&quot;, WTFMove(fitContentTrackSize));
-    }
</del><ins>+        return specifiedValueForGridTrackBreadth(trackSize.length(), style);
</ins><span class="cx">     default:
</span><span class="cx">         ASSERT(trackSize.type() == MinMaxTrackSizing);
</span><span class="cx">         auto minMaxTrackBreadths = CSSValueList::createCommaSeparated();
</span></span></pre></div>
<a id="trunkSourceWebCorecssStyleBuilderConverterh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleBuilderConverter.h (205971 => 205972)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleBuilderConverter.h        2016-09-15 15:46:59 UTC (rev 205971)
+++ trunk/Source/WebCore/css/StyleBuilderConverter.h        2016-09-15 15:51:18 UTC (rev 205972)
</span><span class="lines">@@ -843,13 +843,9 @@
</span><span class="cx">     if (is&lt;CSSPrimitiveValue&gt;(value))
</span><span class="cx">         return GridTrackSize(createGridTrackBreadth(downcast&lt;CSSPrimitiveValue&gt;(value), styleResolver));
</span><span class="cx"> 
</span><del>-    ASSERT(is&lt;CSSFunctionValue&gt;(value));
</del><span class="cx">     CSSValueList&amp; arguments = *downcast&lt;CSSFunctionValue&gt;(value).arguments();
</span><ins>+    ASSERT_WITH_SECURITY_IMPLICATION(arguments.length() == 2);
</ins><span class="cx"> 
</span><del>-    if (arguments.length() == 1)
-        return GridTrackSize(createGridTrackBreadth(downcast&lt;CSSPrimitiveValue&gt;(*arguments.itemWithoutBoundsCheck(0)), styleResolver), FitContentTrackSizing);
-
-    ASSERT_WITH_SECURITY_IMPLICATION(arguments.length() == 2);
</del><span class="cx">     GridLength minTrackBreadth(createGridTrackBreadth(downcast&lt;CSSPrimitiveValue&gt;(*arguments.itemWithoutBoundsCheck(0)), styleResolver));
</span><span class="cx">     GridLength maxTrackBreadth(createGridTrackBreadth(downcast&lt;CSSPrimitiveValue&gt;(*arguments.itemWithoutBoundsCheck(1)), styleResolver));
</span><span class="cx">     return GridTrackSize(minTrackBreadth, maxTrackBreadth);
</span></span></pre></div>
<a id="trunkSourceWebCorecssparserCSSParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/parser/CSSParser.cpp (205971 => 205972)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/parser/CSSParser.cpp        2016-09-15 15:46:59 UTC (rev 205971)
+++ trunk/Source/WebCore/css/parser/CSSParser.cpp        2016-09-15 15:51:18 UTC (rev 205972)
</span><span class="lines">@@ -5645,14 +5645,11 @@
</span><span class="cx">         return isGridTrackFixedSized(downcast&lt;CSSPrimitiveValue&gt;(value));
</span><span class="cx"> 
</span><span class="cx">     ASSERT(value.isFunctionValue());
</span><del>-    auto&amp; arguments = *downcast&lt;CSSFunctionValue&gt;(value).arguments();
-    // fit-content
-    if (arguments.length() == 1)
-        return false;
</del><ins>+    ASSERT(downcast&lt;CSSFunctionValue&gt;(value).arguments());
+    ASSERT(downcast&lt;CSSFunctionValue&gt;(value).arguments()-&gt;length() == 2);
</ins><span class="cx"> 
</span><del>-    ASSERT(arguments.length() == 2);
-    auto&amp; min = downcast&lt;CSSPrimitiveValue&gt;(*arguments.itemWithoutBoundsCheck(0));
-    auto&amp; max = downcast&lt;CSSPrimitiveValue&gt;(*arguments.itemWithoutBoundsCheck(1));
</del><ins>+    auto&amp; min = downcast&lt;CSSPrimitiveValue&gt;(*downcast&lt;CSSFunctionValue&gt;(value).arguments()-&gt;item(0));
+    auto&amp; max = downcast&lt;CSSPrimitiveValue&gt;(*downcast&lt;CSSFunctionValue&gt;(value).arguments()-&gt;item(1));
</ins><span class="cx">     return isGridTrackFixedSized(min) || isGridTrackFixedSized(max);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -5798,21 +5795,6 @@
</span><span class="cx">     if (currentValue.id == CSSValueAuto)
</span><span class="cx">         return CSSValuePool::singleton().createIdentifierValue(CSSValueAuto);
</span><span class="cx"> 
</span><del>-    if (currentValue.unit == CSSParserValue::Function &amp;&amp; equalLettersIgnoringASCIICase(currentValue.function-&gt;name, &quot;fit-content(&quot;)) {
-        CSSParserValueList* arguments = currentValue.function-&gt;args.get();
-        if (!arguments || arguments-&gt;size() != 1)
-            return nullptr;
-        ValueWithCalculation valueWithCalculation(*arguments-&gt;valueAt(0));
-        if (!validateUnit(valueWithCalculation, FNonNeg | FLength | FPercent))
-            return nullptr;
-        RefPtr&lt;CSSPrimitiveValue&gt; trackBreadth = createPrimitiveNumericValue(valueWithCalculation);
-        if (!trackBreadth)
-            return nullptr;
-        auto parsedArguments = CSSValueList::createCommaSeparated();
-        parsedArguments-&gt;append(trackBreadth.releaseNonNull());
-        return CSSFunctionValue::create(&quot;fit-content(&quot;, WTFMove(parsedArguments));
-    }
-
</del><span class="cx">     if (currentValue.unit == CSSParserValue::Function &amp;&amp; equalLettersIgnoringASCIICase(currentValue.function-&gt;name, &quot;minmax(&quot;)) {
</span><span class="cx">         // The spec defines the following grammar: minmax( &lt;track-breadth&gt; , &lt;track-breadth&gt; )
</span><span class="cx">         CSSParserValueList* arguments = currentValue.function-&gt;args.get();
</span></span></pre></div>
<a id="trunkSourceWebCorecssparserCSSPropertyParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/parser/CSSPropertyParser.cpp (205971 => 205972)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/parser/CSSPropertyParser.cpp        2016-09-15 15:46:59 UTC (rev 205971)
+++ trunk/Source/WebCore/css/parser/CSSPropertyParser.cpp        2016-09-15 15:51:18 UTC (rev 205972)
</span><span class="lines">@@ -2794,19 +2794,6 @@
</span><span class="cx">     return consumeSelfPositionOverflowPosition(range);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static CSSValue* consumeFitContent(CSSParserTokenRange&amp; range, CSSParserMode cssParserMode)
-{
-    CSSParserTokenRange rangeCopy = range;
-    CSSParserTokenRange args = consumeFunction(rangeCopy);
-    CSSPrimitiveValue* length = consumeLengthOrPercent(args, cssParserMode, ValueRangeNonNegative, UnitlessQuirk::Allow);
-    if (!length || !args.atEnd())
-        return nullptr;
-    range = rangeCopy;
-    CSSFunctionValue* result = CSSFunctionValue::create(CSSValueFitContent);
-    result-&gt;append(*length);
-    return result;
-}
-
</del><span class="cx"> static CSSCustomIdentValue* consumeCustomIdentForGridLine(CSSParserTokenRange&amp; range)
</span><span class="cx"> {
</span><span class="cx">     if (range.peek().id() == CSSValueAuto || range.peek().id() == CSSValueSpan)
</span><span class="lines">@@ -2877,13 +2864,8 @@
</span><span class="cx">     if (value.isPrimitiveValue())
</span><span class="cx">         return isGridTrackFixedSized(toCSSPrimitiveValue(value));
</span><span class="cx"> 
</span><del>-    ASSERT(value.isFunctionValue());
-    auto&amp; function = toCSSFunctionValue(value);
-    if (function.functionType() == CSSValueFitContent)
-        return false;
-
-    const CSSPrimitiveValue&amp; minPrimitiveValue = toCSSPrimitiveValue(function.item(0));
-    const CSSPrimitiveValue&amp; maxPrimitiveValue = toCSSPrimitiveValue(function.item(1));
</del><ins>+    const CSSPrimitiveValue&amp; minPrimitiveValue = toCSSPrimitiveValue(toCSSFunctionValue(value).item(0));
+    const CSSPrimitiveValue&amp; maxPrimitiveValue = toCSSPrimitiveValue(toCSSFunctionValue(value).item(1));
</ins><span class="cx">     return isGridTrackFixedSized(minPrimitiveValue) || isGridTrackFixedSized(maxPrimitiveValue);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -3015,10 +2997,6 @@
</span><span class="cx">         result-&gt;append(*maxTrackBreadth);
</span><span class="cx">         return result;
</span><span class="cx">     }
</span><del>-
-    if (token.functionId() == CSSValueFitContent)
-        return consumeFitContent(range, cssParserMode);
-
</del><span class="cx">     return consumeGridBreadth(range, cssParserMode);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderGridcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderGrid.cpp (205971 => 205972)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderGrid.cpp        2016-09-15 15:46:59 UTC (rev 205971)
+++ trunk/Source/WebCore/rendering/RenderGrid.cpp        2016-09-15 15:51:18 UTC (rev 205972)
</span><span class="lines">@@ -41,11 +41,6 @@
</span><span class="cx"> static const int infinity = -1;
</span><span class="cx"> static constexpr ItemPosition selfAlignmentNormalBehavior = ItemPositionStretch;
</span><span class="cx"> 
</span><del>-enum TrackSizeRestriction {
-    AllowInfinity,
-    ForbidInfinity,
-};
-
</del><span class="cx"> class GridTrack {
</span><span class="cx"> public:
</span><span class="cx">     GridTrack() {}
</span><span class="lines">@@ -59,7 +54,6 @@
</span><span class="cx">     const LayoutUnit&amp; growthLimit() const
</span><span class="cx">     {
</span><span class="cx">         ASSERT(isGrowthLimitBiggerThanBaseSize());
</span><del>-        ASSERT(!m_growthLimitCap || m_growthLimitCap.value() &gt;= m_growthLimit || m_baseSize &gt;= m_growthLimitCap.value());
</del><span class="cx">         return m_growthLimit;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -71,12 +65,20 @@
</span><span class="cx"> 
</span><span class="cx">     void setGrowthLimit(LayoutUnit growthLimit)
</span><span class="cx">     {
</span><del>-        m_growthLimit = growthLimit == infinity ? growthLimit : std::min(growthLimit, m_growthLimitCap.valueOr(growthLimit));
</del><ins>+        m_growthLimit = growthLimit;
</ins><span class="cx">         ensureGrowthLimitIsBiggerThanBaseSize();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    bool infiniteGrowthPotential() const { return growthLimitIsInfinite() || m_infinitelyGrowable; }
</del><ins>+    bool growthLimitIsInfinite() const
+    {
+        return m_growthLimit == infinity;
+    }
</ins><span class="cx"> 
</span><ins>+    bool infiniteGrowthPotential() const
+    {
+        return growthLimitIsInfinite() || m_infinitelyGrowable;
+    }
+
</ins><span class="cx">     const LayoutUnit&amp; growthLimitIfNotInfinite() const
</span><span class="cx">     {
</span><span class="cx">         ASSERT(isGrowthLimitBiggerThanBaseSize());
</span><span class="lines">@@ -90,35 +92,16 @@
</span><span class="cx">         m_plannedSize = plannedSize;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    const LayoutUnit&amp; tempSize() const { return m_tempSize; }
</del><ins>+    LayoutUnit&amp; tempSize() { return m_tempSize; }
</ins><span class="cx"> 
</span><del>-    void setTempSize(const LayoutUnit&amp; tempSize)
-    {
-        ASSERT(tempSize &gt;= 0);
-        ASSERT(growthLimitIsInfinite() || growthLimit() &gt;= tempSize);
-        m_tempSize = tempSize;
-    }
-
-    void growTempSize(const LayoutUnit&amp; tempSize)
-    {
-        ASSERT(tempSize &gt;= 0);
-        m_tempSize += tempSize;
-        ASSERT(growthLimitIsInfinite() || growthLimit() &gt;= m_tempSize);
-    }
-
</del><span class="cx">     bool infinitelyGrowable() const { return m_infinitelyGrowable; }
</span><del>-    void setInfinitelyGrowable(bool infinitelyGrowable) { m_infinitelyGrowable = infinitelyGrowable; }
</del><span class="cx"> 
</span><del>-    void setGrowthLimitCap(Optional&lt;LayoutUnit&gt; growthLimitCap)
</del><ins>+    void setInfinitelyGrowable(bool infinitelyGrowable)
</ins><span class="cx">     {
</span><del>-        ASSERT(!growthLimitCap || growthLimitCap.value() &gt;= 0);
-        m_growthLimitCap = growthLimitCap;
</del><ins>+        m_infinitelyGrowable = infinitelyGrowable;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Optional&lt;LayoutUnit&gt; growthLimitCap() const { return m_growthLimitCap; }
-
</del><span class="cx"> private:
</span><del>-    bool growthLimitIsInfinite() const { return m_growthLimit == infinity; }
</del><span class="cx">     bool isGrowthLimitBiggerThanBaseSize() const { return growthLimitIsInfinite() || m_growthLimit &gt;= m_baseSize; }
</span><span class="cx"> 
</span><span class="cx">     void ensureGrowthLimitIsBiggerThanBaseSize()
</span><span class="lines">@@ -131,7 +114,6 @@
</span><span class="cx">     LayoutUnit m_growthLimit { 0 };
</span><span class="cx">     LayoutUnit m_plannedSize { 0 };
</span><span class="cx">     LayoutUnit m_tempSize { 0 };
</span><del>-    Optional&lt;LayoutUnit&gt; m_growthLimitCap;
</del><span class="cx">     bool m_infinitelyGrowable { false };
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="lines">@@ -253,12 +235,9 @@
</span><span class="cx">     Vector&lt;GridTrack*&gt; growBeyondGrowthLimitsTracks;
</span><span class="cx">     Vector&lt;GridItemWithSpan&gt; itemsSortedByIncreasingSpan;
</span><span class="cx"> 
</span><del>-    Optional&lt;LayoutUnit&gt; freeSpace(GridTrackSizingDirection direction) { return direction == ForColumns ? freeSpaceForColumns : freeSpaceForRows; }
-    void setFreeSpace(GridTrackSizingDirection, Optional&lt;LayoutUnit&gt; freeSpace);
</del><ins>+    Optional&lt;LayoutUnit&gt; freeSpaceForDirection(GridTrackSizingDirection direction) { return direction == ForColumns ? freeSpaceForColumns : freeSpaceForRows; }
+    void setFreeSpaceForDirection(GridTrackSizingDirection, Optional&lt;LayoutUnit&gt; freeSpace);
</ins><span class="cx"> 
</span><del>-    Optional&lt;LayoutUnit&gt; availableSpace() const { return m_availableSpace; }
-    void setAvailableSpace(Optional&lt;LayoutUnit&gt; availableSpace) { m_availableSpace = availableSpace; }
-
</del><span class="cx">     SizingOperation sizingOperation { TrackSizing };
</span><span class="cx"> 
</span><span class="cx">     enum SizingState { ColumnSizingFirstIteration, RowSizingFirstIteration, ColumnSizingSecondIteration, RowSizingSecondIteration};
</span><span class="lines">@@ -299,12 +278,9 @@
</span><span class="cx"> private:
</span><span class="cx">     Optional&lt;LayoutUnit&gt; freeSpaceForColumns;
</span><span class="cx">     Optional&lt;LayoutUnit&gt; freeSpaceForRows;
</span><del>-    // No need to store one per direction as it will be only used for computations during each axis
-    // track sizing. It's cached here because we need it to compute relative sizes.
-    Optional&lt;LayoutUnit&gt; m_availableSpace;
</del><span class="cx"> };
</span><span class="cx"> 
</span><del>-void RenderGrid::GridSizingData::setFreeSpace(GridTrackSizingDirection direction, Optional&lt;LayoutUnit&gt; freeSpace)
</del><ins>+void RenderGrid::GridSizingData::setFreeSpaceForDirection(GridTrackSizingDirection direction, Optional&lt;LayoutUnit&gt; freeSpace)
</ins><span class="cx"> {
</span><span class="cx">     if (direction == ForColumns)
</span><span class="cx">         freeSpaceForColumns = freeSpace;
</span><span class="lines">@@ -414,12 +390,11 @@
</span><span class="cx">     return logicalHeight;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderGrid::computeTrackSizesForDirection(GridTrackSizingDirection direction, GridSizingData&amp; sizingData, LayoutUnit availableSpace)
</del><ins>+void RenderGrid::computeTrackSizesForDirection(GridTrackSizingDirection direction, GridSizingData&amp; sizingData, LayoutUnit freeSpace)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(sizingData.isValidTransition(direction));
</span><span class="cx">     LayoutUnit totalGuttersSize = guttersSize(direction, 0, direction == ForRows ? gridRowCount() : gridColumnCount());
</span><del>-    sizingData.setAvailableSpace(availableSpace);
-    sizingData.setFreeSpace(direction, availableSpace - totalGuttersSize);
</del><ins>+    sizingData.setFreeSpaceForDirection(direction, freeSpace - totalGuttersSize);
</ins><span class="cx">     sizingData.sizingOperation = TrackSizing;
</span><span class="cx"> 
</span><span class="cx">     LayoutUnit baseSizes, growthLimits;
</span><span class="lines">@@ -615,8 +590,7 @@
</span><span class="cx">         const_cast&lt;RenderGrid*&gt;(this)-&gt;placeItemsOnGrid(IntrinsicSizeComputation);
</span><span class="cx"> 
</span><span class="cx">     GridSizingData sizingData(gridColumnCount(), gridRowCount());
</span><del>-    sizingData.setAvailableSpace(Nullopt);
-    sizingData.setFreeSpace(ForColumns, Nullopt);
</del><ins>+    sizingData.setFreeSpaceForDirection(ForColumns, Nullopt);
</ins><span class="cx">     sizingData.sizingOperation = IntrinsicSizeComputation;
</span><span class="cx">     computeUsedBreadthOfGridTracks(ForColumns, sizingData, minLogicalWidth, maxLogicalWidth);
</span><span class="cx"> 
</span><span class="lines">@@ -635,8 +609,7 @@
</span><span class="cx"> void RenderGrid::computeIntrinsicLogicalHeight(GridSizingData&amp; sizingData)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(tracksAreWiderThanMinTrackBreadth(ForColumns, sizingData));
</span><del>-    sizingData.setAvailableSpace(Nullopt);
-    sizingData.setFreeSpace(ForRows, Nullopt);
</del><ins>+    sizingData.setFreeSpaceForDirection(ForRows, Nullopt);
</ins><span class="cx">     sizingData.sizingOperation = IntrinsicSizeComputation;
</span><span class="cx">     LayoutUnit minHeight, maxHeight;
</span><span class="cx">     computeUsedBreadthOfGridTracks(ForRows, sizingData, minHeight, maxHeight);
</span><span class="lines">@@ -686,30 +659,28 @@
</span><span class="cx"> 
</span><span class="cx"> void RenderGrid::computeUsedBreadthOfGridTracks(GridTrackSizingDirection direction, GridSizingData&amp; sizingData, LayoutUnit&amp; baseSizesWithoutMaximization, LayoutUnit&amp; growthLimitsWithoutMaximization) const
</span><span class="cx"> {
</span><del>-    const Optional&lt;LayoutUnit&gt; initialFreeSpace = sizingData.freeSpace(direction);
</del><ins>+    const Optional&lt;LayoutUnit&gt; initialFreeSpace = sizingData.freeSpaceForDirection(direction);
</ins><span class="cx">     Vector&lt;GridTrack&gt;&amp; tracks = (direction == ForColumns) ? sizingData.columnTracks : sizingData.rowTracks;
</span><span class="cx">     Vector&lt;unsigned&gt; flexibleSizedTracksIndex;
</span><span class="cx">     sizingData.contentSizedTracksIndex.shrink(0);
</span><span class="cx"> 
</span><ins>+    LayoutUnit maxSize = initialFreeSpace.valueOr(0);
</ins><span class="cx">     // Grid gutters were removed from freeSpace by the caller (if freeSpace is definite),
</span><span class="cx">     // but we must use them to compute relative (i.e. percentages) sizes.
</span><del>-    LayoutUnit maxSize = std::max(LayoutUnit(), sizingData.availableSpace().valueOr(LayoutUnit()));
-    const bool hasDefiniteFreeSpace = sizingData.sizingOperation == TrackSizing;
</del><ins>+    if (initialFreeSpace)
+        maxSize += guttersSize(direction, 0, direction == ForColumns ? gridColumnCount() : gridRowCount());
</ins><span class="cx"> 
</span><span class="cx">     // 1. Initialize per Grid track variables.
</span><span class="cx">     for (unsigned i = 0; i &lt; tracks.size(); ++i) {
</span><span class="cx">         GridTrack&amp; track = tracks[i];
</span><span class="cx">         const GridTrackSize&amp; trackSize = gridTrackSize(direction, i, sizingData.sizingOperation);
</span><ins>+        const GridLength&amp; minTrackBreadth = trackSize.minTrackBreadth();
+        const GridLength&amp; maxTrackBreadth = trackSize.maxTrackBreadth();
</ins><span class="cx"> 
</span><del>-        track.setBaseSize(computeUsedBreadthOfMinLength(trackSize, maxSize));
-        track.setGrowthLimit(computeUsedBreadthOfMaxLength(trackSize, track.baseSize(), maxSize));
</del><ins>+        track.setBaseSize(computeUsedBreadthOfMinLength(minTrackBreadth, maxSize));
+        track.setGrowthLimit(computeUsedBreadthOfMaxLength(maxTrackBreadth, track.baseSize(), maxSize));
</ins><span class="cx">         track.setInfinitelyGrowable(false);
</span><span class="cx"> 
</span><del>-        if (trackSize.isFitContent()) {
-            GridLength gridLength = trackSize.fitContentTrackBreadth();
-            if (!gridLength.isPercentage() || hasDefiniteFreeSpace)
-                track.setGrowthLimitCap(valueForLength(gridLength.length(), maxSize));
-        }
</del><span class="cx">         if (trackSize.isContentSized())
</span><span class="cx">             sizingData.contentSizedTracksIndex.append(i);
</span><span class="cx">         if (trackSize.maxTrackBreadth().isFlex())
</span><span class="lines">@@ -723,17 +694,16 @@
</span><span class="cx">     baseSizesWithoutMaximization = growthLimitsWithoutMaximization = 0;
</span><span class="cx"> 
</span><span class="cx">     for (auto&amp; track : tracks) {
</span><del>-        ASSERT(!track.infiniteGrowthPotential());
</del><ins>+        ASSERT(!track.growthLimitIsInfinite());
</ins><span class="cx">         baseSizesWithoutMaximization += track.baseSize();
</span><span class="cx">         growthLimitsWithoutMaximization += track.growthLimit();
</span><del>-        // The growth limit caps must be cleared now in order to properly sort tracks by growth
-        // potential on an eventual &quot;Maximize Tracks&quot;.
-        track.setGrowthLimitCap(Nullopt);
</del><span class="cx">     }
</span><span class="cx">     LayoutUnit freeSpace = initialFreeSpace ? initialFreeSpace.value() - baseSizesWithoutMaximization : LayoutUnit(0);
</span><span class="cx"> 
</span><ins>+    const bool hasDefiniteFreeSpace = !!initialFreeSpace;
+
</ins><span class="cx">     if (hasDefiniteFreeSpace &amp;&amp; freeSpace &lt;= 0) {
</span><del>-        sizingData.setFreeSpace(direction, freeSpace);
</del><ins>+        sizingData.setFreeSpaceForDirection(direction, freeSpace);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -756,7 +726,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (flexibleSizedTracksIndex.isEmpty()) {
</span><del>-        sizingData.setFreeSpace(direction, freeSpace);
</del><ins>+        sizingData.setFreeSpaceForDirection(direction, freeSpace);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -795,12 +765,11 @@
</span><span class="cx">             growthLimitsWithoutMaximization += increment;
</span><span class="cx">         }
</span><span class="cx">     }
</span><del>-    sizingData.setFreeSpace(direction, freeSpace);
</del><ins>+    sizingData.setFreeSpaceForDirection(direction, freeSpace);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-LayoutUnit RenderGrid::computeUsedBreadthOfMinLength(const GridTrackSize&amp; trackSize, LayoutUnit maxSize) const
</del><ins>+LayoutUnit RenderGrid::computeUsedBreadthOfMinLength(const GridLength&amp; gridLength, LayoutUnit maxSize) const
</ins><span class="cx"> {
</span><del>-    const GridLength&amp; gridLength = trackSize.minTrackBreadth();
</del><span class="cx">     if (gridLength.isFlex())
</span><span class="cx">         return 0;
</span><span class="cx"> 
</span><span class="lines">@@ -812,9 +781,8 @@
</span><span class="cx">     return 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-LayoutUnit RenderGrid::computeUsedBreadthOfMaxLength(const GridTrackSize&amp; trackSize, LayoutUnit usedBreadth, LayoutUnit maxSize) const
</del><ins>+LayoutUnit RenderGrid::computeUsedBreadthOfMaxLength(const GridLength&amp; gridLength, LayoutUnit usedBreadth, LayoutUnit maxSize) const
</ins><span class="cx"> {
</span><del>-    const GridLength&amp; gridLength = trackSize.maxTrackBreadth();
</del><span class="cx">     if (gridLength.isFlex())
</span><span class="cx">         return usedBreadth;
</span><span class="cx"> 
</span><span class="lines">@@ -944,11 +912,9 @@
</span><span class="cx"> {
</span><span class="cx">     // Collapse empty auto repeat tracks if auto-fit.
</span><span class="cx">     if (hasAutoRepeatEmptyTracks(direction) &amp;&amp; isEmptyAutoRepeatTrack(direction, translatedIndex))
</span><del>-        return { Length(Fixed), LengthTrackSizing };
</del><ins>+        return { Length(Fixed), Length(Fixed) };
</ins><span class="cx"> 
</span><span class="cx">     auto&amp; trackSize = rawGridTrackSize(direction, translatedIndex);
</span><del>-    if (trackSize.isFitContent())
-        return trackSize;
</del><span class="cx"> 
</span><span class="cx">     GridLength minTrackBreadth = trackSize.minTrackBreadth();
</span><span class="cx">     GridLength maxTrackBreadth = trackSize.maxTrackBreadth();
</span><span class="lines">@@ -1161,7 +1127,7 @@
</span><span class="cx"> 
</span><span class="cx">     for (auto trackIndex : sizingData.contentSizedTracksIndex) {
</span><span class="cx">         GridTrack&amp; track = (direction == ForColumns) ? sizingData.columnTracks[trackIndex] : sizingData.rowTracks[trackIndex];
</span><del>-        if (track.growthLimit() == infinity)
</del><ins>+        if (track.growthLimitIsInfinite())
</ins><span class="cx">             track.setGrowthLimit(track.baseSize());
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="lines">@@ -1178,17 +1144,13 @@
</span><span class="cx">     else if (trackSize.hasAutoMinTrackBreadth())
</span><span class="cx">         track.setBaseSize(std::max(track.baseSize(), minSizeForChild(gridItem, direction, sizingData)));
</span><span class="cx"> 
</span><del>-    if (trackSize.hasMinContentMaxTrackBreadth()) {
</del><ins>+    if (trackSize.hasMinContentMaxTrackBreadth())
</ins><span class="cx">         track.setGrowthLimit(std::max(track.growthLimit(), minContentForChild(gridItem, direction, sizingData)));
</span><del>-    } else if (trackSize.hasMaxContentOrAutoMaxTrackBreadth()) {
-        LayoutUnit growthLimit = maxContentForChild(gridItem, direction, sizingData);
-        if (trackSize.isFitContent())
-            growthLimit = std::min(growthLimit, valueForLength(trackSize.fitContentTrackBreadth().length(), sizingData.availableSpace().valueOr(0)));
-        track.setGrowthLimit(std::max(track.growthLimit(), growthLimit));
-    }
</del><ins>+    else if (trackSize.hasMaxContentOrAutoMaxTrackBreadth())
+        track.setGrowthLimit(std::max(track.growthLimit(), maxContentForChild(gridItem, direction, sizingData)));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-static LayoutUnit trackSizeForTrackSizeComputationPhase(TrackSizeComputationPhase phase, GridTrack&amp; track, TrackSizeRestriction restriction)
</del><ins>+const LayoutUnit&amp; RenderGrid::trackSizeForTrackSizeComputationPhase(TrackSizeComputationPhase phase, GridTrack&amp; track, TrackSizeRestriction restriction)
</ins><span class="cx"> {
</span><span class="cx">     switch (phase) {
</span><span class="cx">     case ResolveIntrinsicMinimums:
</span><span class="lines">@@ -1310,7 +1272,7 @@
</span><span class="cx">     return 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-template &lt;TrackSizeComputationPhase phase&gt;
</del><ins>+template &lt;RenderGrid::TrackSizeComputationPhase phase&gt;
</ins><span class="cx"> void RenderGrid::resolveContentBasedTrackSizingFunctionsForItems(GridTrackSizingDirection direction, GridSizingData&amp; sizingData, const GridItemsSpanGroupRange&amp; gridItemsWithSpan) const
</span><span class="cx"> {
</span><span class="cx">     Vector&lt;GridTrack&gt;&amp; tracks = (direction == ForColumns) ? sizingData.columnTracks : sizingData.rowTracks;
</span><span class="lines">@@ -1362,39 +1324,22 @@
</span><span class="cx"> {
</span><span class="cx">     // This check ensures that we respect the irreflexivity property of the strict weak ordering required by std::sort
</span><span class="cx">     // (forall x: NOT x &lt; x).
</span><del>-    bool track1HasInfiniteGrowthPotentialWithoutCap = track1-&gt;infiniteGrowthPotential() &amp;&amp; !track1-&gt;growthLimitCap();
-    bool track2HasInfiniteGrowthPotentialWithoutCap = track2-&gt;infiniteGrowthPotential() &amp;&amp; !track2-&gt;growthLimitCap();
-
-    if (track1HasInfiniteGrowthPotentialWithoutCap &amp;&amp; track2HasInfiniteGrowthPotentialWithoutCap)
</del><ins>+    if (track1-&gt;infiniteGrowthPotential() &amp;&amp; track2-&gt;infiniteGrowthPotential())
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    if (track1HasInfiniteGrowthPotentialWithoutCap || track2HasInfiniteGrowthPotentialWithoutCap)
-        return track2HasInfiniteGrowthPotentialWithoutCap;
</del><ins>+    if (track1-&gt;infiniteGrowthPotential() || track2-&gt;infiniteGrowthPotential())
+        return track2-&gt;infiniteGrowthPotential();
</ins><span class="cx"> 
</span><del>-    LayoutUnit track1Limit = track1-&gt;growthLimitCap().valueOr(track1-&gt;growthLimit());
-    LayoutUnit track2Limit = track2-&gt;growthLimitCap().valueOr(track2-&gt;growthLimit());
-    return (track1Limit - track1-&gt;baseSize()) &lt; (track2Limit - track2-&gt;baseSize());
</del><ins>+    return (track1-&gt;growthLimit() - track1-&gt;baseSize()) &lt; (track2-&gt;growthLimit() - track2-&gt;baseSize());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-static void clampGrowthShareIfNeeded(TrackSizeComputationPhase phase, const GridTrack&amp; track, LayoutUnit&amp; growthShare)
</del><ins>+template &lt;RenderGrid::TrackSizeComputationPhase phase&gt;
+void RenderGrid::distributeSpaceToTracks(Vector&lt;GridTrack*&gt;&amp; tracks, const Vector&lt;GridTrack*&gt;* growBeyondGrowthLimitsTracks, LayoutUnit&amp; freeSpace) const
</ins><span class="cx"> {
</span><del>-    if (phase != ResolveMaxContentMaximums || !track.growthLimitCap())
-        return;
-
-    LayoutUnit distanceToCap = track.growthLimitCap().value() - track.tempSize();
-    if (distanceToCap &lt;= 0)
-        return;
-
-    growthShare = std::min(growthShare, distanceToCap);
-}
-
-template &lt;TrackSizeComputationPhase phase&gt;
-void RenderGrid::distributeSpaceToTracks(Vector&lt;GridTrack*&gt;&amp; tracks, Vector&lt;GridTrack*&gt;* growBeyondGrowthLimitsTracks, LayoutUnit&amp; freeSpace) const
-{
</del><span class="cx">     ASSERT(freeSpace &gt;= 0);
</span><span class="cx"> 
</span><span class="cx">     for (auto* track : tracks)
</span><del>-        track-&gt;setTempSize(trackSizeForTrackSizeComputationPhase(phase, *track, ForbidInfinity));
</del><ins>+        track-&gt;tempSize() = trackSizeForTrackSizeComputationPhase(phase, *track, ForbidInfinity);
</ins><span class="cx"> 
</span><span class="cx">     if (freeSpace &gt; 0) {
</span><span class="cx">         std::sort(tracks.begin(), tracks.end(), sortByGridTrackGrowthPotential);
</span><span class="lines">@@ -1409,9 +1354,8 @@
</span><span class="cx">             if (trackGrowthPotential &gt; 0 || infiniteGrowthPotential) {
</span><span class="cx">                 LayoutUnit availableLogicalSpaceShare = freeSpace / (tracksSize - i);
</span><span class="cx">                 LayoutUnit growthShare = infiniteGrowthPotential ? availableLogicalSpaceShare : std::min(availableLogicalSpaceShare, trackGrowthPotential);
</span><del>-                clampGrowthShareIfNeeded(phase, track, growthShare);
</del><span class="cx">                 ASSERT_WITH_MESSAGE(growthShare &gt;= 0, &quot;We should never shrink any grid track or else we can't guarantee we abide by our min-sizing function. We can still have 0 as growthShare if the amount of tracks greatly exceeds the freeSpace.&quot;);
</span><del>-                track.growTempSize(growthShare);
</del><ins>+                track.tempSize() += growthShare;
</ins><span class="cx">                 freeSpace -= growthShare;
</span><span class="cx">             }
</span><span class="cx">         }
</span><span class="lines">@@ -1418,17 +1362,11 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (freeSpace &gt; 0 &amp;&amp; growBeyondGrowthLimitsTracks) {
</span><del>-        // We need to sort them because there might be tracks with growth limit caps (like the ones
-        // with fit-content()) which cannot indefinitely grow over the limits.
-        if (phase == ResolveMaxContentMaximums)
-            std::sort(growBeyondGrowthLimitsTracks-&gt;begin(), growBeyondGrowthLimitsTracks-&gt;end(), sortByGridTrackGrowthPotential);
-
</del><span class="cx">         unsigned tracksGrowingBeyondGrowthLimitsSize = growBeyondGrowthLimitsTracks-&gt;size();
</span><span class="cx">         for (unsigned i = 0; i &lt; tracksGrowingBeyondGrowthLimitsSize; ++i) {
</span><span class="cx">             GridTrack* track = growBeyondGrowthLimitsTracks-&gt;at(i);
</span><span class="cx">             LayoutUnit growthShare = freeSpace / (tracksGrowingBeyondGrowthLimitsSize - i);
</span><del>-            clampGrowthShareIfNeeded(phase, *track, growthShare);
-            track-&gt;growTempSize(growthShare);
</del><ins>+            track-&gt;tempSize() += growthShare;
</ins><span class="cx">             freeSpace -= growthShare;
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="lines">@@ -1441,10 +1379,11 @@
</span><span class="cx"> bool RenderGrid::tracksAreWiderThanMinTrackBreadth(GridTrackSizingDirection direction, GridSizingData&amp; sizingData)
</span><span class="cx"> {
</span><span class="cx">     const Vector&lt;GridTrack&gt;&amp; tracks = (direction == ForColumns) ? sizingData.columnTracks : sizingData.rowTracks;
</span><del>-    const LayoutUnit maxSize = sizingData.freeSpace(direction).valueOr(0);
</del><ins>+    const LayoutUnit maxSize = sizingData.freeSpaceForDirection(direction).valueOr(0);
</ins><span class="cx">     for (unsigned i = 0; i &lt; tracks.size(); ++i) {
</span><span class="cx">         const GridTrackSize&amp; trackSize = gridTrackSize(direction, i, sizingData.sizingOperation);
</span><del>-        if (computeUsedBreadthOfMinLength(trackSize, maxSize) &gt; tracks[i].baseSize())
</del><ins>+        const GridLength&amp; minTrackBreadth = trackSize.minTrackBreadth();
+        if (computeUsedBreadthOfMinLength(minTrackBreadth, maxSize) &gt; tracks[i].baseSize())
</ins><span class="cx">             return false;
</span><span class="cx">     }
</span><span class="cx">     return true;
</span><span class="lines">@@ -1859,7 +1798,7 @@
</span><span class="cx"> 
</span><span class="cx"> void RenderGrid::applyStretchAlignmentToTracksIfNeeded(GridTrackSizingDirection direction, GridSizingData&amp; sizingData)
</span><span class="cx"> {
</span><del>-    Optional&lt;LayoutUnit&gt; freeSpace = sizingData.freeSpace(direction);
</del><ins>+    Optional&lt;LayoutUnit&gt; freeSpace = sizingData.freeSpaceForDirection(direction);
</ins><span class="cx">     if (!freeSpace
</span><span class="cx">         || freeSpace.value() &lt;= 0
</span><span class="cx">         || (direction == ForColumns &amp;&amp; style().resolvedJustifyContentDistribution(contentAlignmentNormalBehaviorGrid()) != ContentDistributionStretch)
</span><span class="lines">@@ -1884,7 +1823,7 @@
</span><span class="cx">         auto&amp; track = tracks[trackIndex];
</span><span class="cx">         track.setBaseSize(track.baseSize() + sizeToIncrease);
</span><span class="cx">     }
</span><del>-    sizingData.setFreeSpace(direction, Optional&lt;LayoutUnit&gt;(0));
</del><ins>+    sizingData.setFreeSpaceForDirection(direction, Optional&lt;LayoutUnit&gt;(0));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderGrid::layoutGridItems(GridSizingData&amp; sizingData)
</span><span class="lines">@@ -2132,7 +2071,7 @@
</span><span class="cx">     unsigned numberOfLines = numberOfTracks + 1;
</span><span class="cx">     unsigned lastLine = numberOfLines - 1;
</span><span class="cx"> 
</span><del>-    ContentAlignmentData offset = computeContentPositionAndDistributionOffset(direction, sizingData.freeSpace(direction).value(), numberOfTracks);
</del><ins>+    ContentAlignmentData offset = computeContentPositionAndDistributionOffset(direction, sizingData.freeSpaceForDirection(direction).value(), numberOfTracks);
</ins><span class="cx">     auto&amp; positions = isRowAxis ? m_columnPositions : m_rowPositions;
</span><span class="cx">     positions.resize(numberOfLines);
</span><span class="cx">     auto borderAndPadding = isRowAxis ? borderAndPaddingLogicalLeft() : borderAndPaddingBefore();
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderGridh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderGrid.h (205971 => 205972)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderGrid.h        2016-09-15 15:46:59 UTC (rev 205971)
+++ trunk/Source/WebCore/rendering/RenderGrid.h        2016-09-15 15:51:18 UTC (rev 205972)
</span><span class="lines">@@ -44,15 +44,6 @@
</span><span class="cx"> 
</span><span class="cx"> enum GridAxisPosition {GridAxisStart, GridAxisEnd, GridAxisCenter};
</span><span class="cx"> 
</span><del>-enum TrackSizeComputationPhase {
-    ResolveIntrinsicMinimums,
-    ResolveContentBasedMinimums,
-    ResolveMaxContentMinimums,
-    ResolveIntrinsicMaximums,
-    ResolveMaxContentMaximums,
-    MaximizeTracks,
-};
-
</del><span class="cx"> class RenderGrid final : public RenderBlock {
</span><span class="cx"> public:
</span><span class="cx">     RenderGrid(Element&amp;, RenderStyle&amp;&amp;);
</span><span class="lines">@@ -84,8 +75,8 @@
</span><span class="cx">     class GridSizingData;
</span><span class="cx">     enum SizingOperation { TrackSizing, IntrinsicSizeComputation };
</span><span class="cx">     void computeUsedBreadthOfGridTracks(GridTrackSizingDirection, GridSizingData&amp;, LayoutUnit&amp; baseSizesWithoutMaximization, LayoutUnit&amp; growthLimitsWithoutMaximization) const;
</span><del>-    LayoutUnit computeUsedBreadthOfMinLength(const GridTrackSize&amp;, LayoutUnit maxSize) const;
-    LayoutUnit computeUsedBreadthOfMaxLength(const GridTrackSize&amp;, LayoutUnit usedBreadth, LayoutUnit maxSize) const;
</del><ins>+    LayoutUnit computeUsedBreadthOfMinLength(const GridLength&amp;, LayoutUnit maxSize) const;
+    LayoutUnit computeUsedBreadthOfMaxLength(const GridLength&amp;, LayoutUnit usedBreadth, LayoutUnit maxSize) const;
</ins><span class="cx">     void resolveContentBasedTrackSizingFunctions(GridTrackSizingDirection, GridSizingData&amp;) const;
</span><span class="cx"> 
</span><span class="cx">     void ensureGridSize(unsigned maximumRowSize, unsigned maximumColumnSize);
</span><span class="lines">@@ -123,6 +114,19 @@
</span><span class="cx">     void populateGridPositionsForDirection(GridSizingData&amp;, GridTrackSizingDirection);
</span><span class="cx">     void clearGrid();
</span><span class="cx"> 
</span><ins>+    enum TrackSizeRestriction {
+        AllowInfinity,
+        ForbidInfinity,
+    };
+    enum TrackSizeComputationPhase {
+        ResolveIntrinsicMinimums,
+        ResolveContentBasedMinimums,
+        ResolveMaxContentMinimums,
+        ResolveIntrinsicMaximums,
+        ResolveMaxContentMaximums,
+        MaximizeTracks,
+    };
+    static const LayoutUnit&amp; trackSizeForTrackSizeComputationPhase(TrackSizeComputationPhase, GridTrack&amp;, TrackSizeRestriction);
</ins><span class="cx">     static bool shouldProcessTrackForTrackSizeComputationPhase(TrackSizeComputationPhase, const GridTrackSize&amp;);
</span><span class="cx">     static bool trackShouldGrowBeyondGrowthLimitsForTrackSizeComputationPhase(TrackSizeComputationPhase, const GridTrackSize&amp;);
</span><span class="cx">     static void markAsInfinitelyGrowableForTrackSizeComputationPhase(TrackSizeComputationPhase, GridTrack&amp;);
</span><span class="lines">@@ -132,7 +136,7 @@
</span><span class="cx">     typedef struct GridItemsSpanGroupRange GridItemsSpanGroupRange;
</span><span class="cx">     void resolveContentBasedTrackSizingFunctionsForNonSpanningItems(GridTrackSizingDirection, const GridSpan&amp;, RenderBox&amp; gridItem, GridTrack&amp;, GridSizingData&amp;) const;
</span><span class="cx">     template &lt;TrackSizeComputationPhase&gt; void resolveContentBasedTrackSizingFunctionsForItems(GridTrackSizingDirection, GridSizingData&amp;, const GridItemsSpanGroupRange&amp;) const;
</span><del>-    template &lt;TrackSizeComputationPhase&gt; void distributeSpaceToTracks(Vector&lt;GridTrack*&gt;&amp;, Vector&lt;GridTrack*&gt;* growBeyondGrowthLimitsTracks, LayoutUnit&amp; availableLogicalSpace) const;
</del><ins>+    template &lt;TrackSizeComputationPhase&gt; void distributeSpaceToTracks(Vector&lt;GridTrack*&gt;&amp;, const Vector&lt;GridTrack*&gt;* growBeyondGrowthLimitsTracks, LayoutUnit&amp; availableLogicalSpace) const;
</ins><span class="cx"> 
</span><span class="cx">     typedef HashSet&lt;unsigned, DefaultHash&lt;unsigned&gt;::Hash, WTF::UnsignedWithZeroKeyHashTraits&lt;unsigned&gt;&gt; TrackIndexSet;
</span><span class="cx">     double computeFlexFactorUnitSize(const Vector&lt;GridTrack&gt;&amp;, GridTrackSizingDirection, SizingOperation, double flexFactorSum, LayoutUnit leftOverSpace, const Vector&lt;unsigned, 8&gt;&amp; flexibleTracksIndexes, std::unique_ptr&lt;TrackIndexSet&gt; tracksToTreatAsInflexible = nullptr) const;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleGridTrackSizeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/GridTrackSize.h (205971 => 205972)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/GridTrackSize.h        2016-09-15 15:46:59 UTC (rev 205971)
+++ trunk/Source/WebCore/rendering/style/GridTrackSize.h        2016-09-15 15:51:18 UTC (rev 205972)
</span><span class="lines">@@ -40,31 +40,16 @@
</span><span class="cx"> 
</span><span class="cx"> enum GridTrackSizeType {
</span><span class="cx">     LengthTrackSizing,
</span><del>-    MinMaxTrackSizing,
-    FitContentTrackSizing
</del><ins>+    MinMaxTrackSizing
</ins><span class="cx"> };
</span><span class="cx"> 
</span><del>-// This class represents a &lt;track-size&gt; from the spec. Althought there are 3 different types of
-// &lt;track-size&gt; there is always an equivalent minmax() representation that could represent any of
-// them. The only special case is fit-content(argument) which is similar to minmax(auto,
-// max-content) except that the track size is clamped at argument if it is greater than the auto
-// minimum. At the GridTrackSize level we don't need to worry about clamping so we treat that case
-// exactly as auto.
-//
-// We're using a separate attribute to store fit-content argument even though we could directly use
-// m_maxTrackBreadth. The reason why we don't do it is because the maxTrackBreadh() call is a hot
-// spot, so adding a conditional statement there (to distinguish between fit-content and any other
-// case) was causing a severe performance drop.
</del><span class="cx"> class GridTrackSize {
</span><span class="cx"> public:
</span><del>-    GridTrackSize(const GridLength&amp; length, GridTrackSizeType trackSizeType = LengthTrackSizing)
-        : m_type(trackSizeType)
-        , m_minTrackBreadth(trackSizeType == FitContentTrackSizing ? Length(Auto) : length)
-        , m_maxTrackBreadth(trackSizeType == FitContentTrackSizing ? Length(Auto) : length)
-        , m_fitContentTrackBreadth(trackSizeType == FitContentTrackSizing ? length : GridLength(Length(Fixed)))
</del><ins>+    GridTrackSize(const GridLength&amp; length)
+        : m_type(LengthTrackSizing)
+        , m_minTrackBreadth(length)
+        , m_maxTrackBreadth(length)
</ins><span class="cx">     {
</span><del>-        ASSERT(trackSizeType == LengthTrackSizing || trackSizeType == FitContentTrackSizing);
-        ASSERT(trackSizeType != FitContentTrackSizing || length.isLength());
</del><span class="cx">         cacheMinMaxTrackBreadthTypes();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -72,25 +57,28 @@
</span><span class="cx">         : m_type(MinMaxTrackSizing)
</span><span class="cx">         , m_minTrackBreadth(minTrackBreadth)
</span><span class="cx">         , m_maxTrackBreadth(maxTrackBreadth)
</span><del>-        , m_fitContentTrackBreadth(GridLength(Length(Fixed)))
</del><span class="cx">     {
</span><span class="cx">         cacheMinMaxTrackBreadthTypes();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    const GridLength&amp; fitContentTrackBreadth() const
</del><ins>+    const GridLength&amp; length() const
</ins><span class="cx">     {
</span><del>-        ASSERT(m_type == FitContentTrackSizing);
-        return m_fitContentTrackBreadth;
</del><ins>+        ASSERT(m_type == LengthTrackSizing);
+        ASSERT(m_minTrackBreadth == m_maxTrackBreadth);
+        const GridLength&amp; minTrackBreadth = m_minTrackBreadth;
+        return minTrackBreadth;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     const GridLength&amp; minTrackBreadth() const { return m_minTrackBreadth; }
</span><ins>+
</ins><span class="cx">     const GridLength&amp; maxTrackBreadth() const { return m_maxTrackBreadth; }
</span><span class="cx"> 
</span><span class="cx">     GridTrackSizeType type() const { return m_type; }
</span><span class="cx"> 
</span><span class="cx">     bool isContentSized() const { return m_minTrackBreadth.isContentSized() || m_maxTrackBreadth.isContentSized(); }
</span><del>-    bool isFitContent() const { return m_type == FitContentTrackSizing; }
</del><span class="cx"> 
</span><ins>+    bool isPercentage() const { return m_type == LengthTrackSizing &amp;&amp; length().isLength() &amp;&amp; length().length().isPercentOrCalculated(); }
+
</ins><span class="cx">     bool operator==(const GridTrackSize&amp; other) const
</span><span class="cx">     {
</span><span class="cx">         return m_type == other.m_type &amp;&amp; m_minTrackBreadth == other.m_minTrackBreadth &amp;&amp; m_maxTrackBreadth == other.m_maxTrackBreadth;
</span><span class="lines">@@ -123,14 +111,12 @@
</span><span class="cx">     GridTrackSizeType m_type;
</span><span class="cx">     GridLength m_minTrackBreadth;
</span><span class="cx">     GridLength m_maxTrackBreadth;
</span><del>-    GridLength m_fitContentTrackBreadth;
-
-    bool m_minTrackBreadthIsAuto : 1;
-    bool m_maxTrackBreadthIsAuto : 1;
-    bool m_minTrackBreadthIsMaxContent : 1;
-    bool m_minTrackBreadthIsMinContent : 1;
-    bool m_maxTrackBreadthIsMaxContent : 1;
-    bool m_maxTrackBreadthIsMinContent : 1;
</del><ins>+    bool m_minTrackBreadthIsAuto;
+    bool m_minTrackBreadthIsMaxContent;
+    bool m_minTrackBreadthIsMinContent;
+    bool m_maxTrackBreadthIsAuto;
+    bool m_maxTrackBreadthIsMaxContent;
+    bool m_maxTrackBreadthIsMinContent;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre>
</div>
</div>

</body>
</html>