<!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>[203716] 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/203716">203716</a></dd>
<dt>Author</dt> <dd>svillar@igalia.com</dd>
<dt>Date</dt> <dd>2016-07-26 02:37:41 -0700 (Tue, 26 Jul 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>[css-grid] grid-auto-flow|row should take a &lt;track-size&gt;+
https://bugs.webkit.org/show_bug.cgi?id=160158

Reviewed by Darin Adler.

Source/WebCore:

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForGridTrackSizeList):
(WebCore::ComputedStyleExtractor::propertyValue): Return a list of &lt;track-size&gt; instead of
just one.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue): Use the new values of TrackListType;
(WebCore::CSSParser::parseGridTemplateRowsAndAreasAndColumns): Ditto.
(WebCore::CSSParser::parseGridTemplateShorthand): Ditto.
(WebCore::CSSParser::parseGridShorthand): Ditto.
(WebCore::CSSParser::parseGridTrackList): Changed behavior depending on the value of
TrackSizeList.
* css/CSSParser.h: TrackListType has now 3 different values which determine the behavior of
parseGridTrackList.
* css/CSSPropertyNames.in: Use a new converter for lists.
* css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::convertGridTrackSizeList):
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::rawGridTrackSize): Resolve the size of the auto track.
* rendering/style/RenderStyle.h:
(WebCore::RenderStyle::gridAutoColumns): Return a Vector.
(WebCore::RenderStyle::gridAutoRows): Ditto.
(WebCore::RenderStyle::setGridAutoColumns): Store a Vector.
(WebCore::RenderStyle::setGridAutoRows): Ditto.
(WebCore::RenderStyle::initialGridAutoColumns): Return a Vector with one auto track.
(WebCore::RenderStyle::initialGridAutoRows): Ditto.
* rendering/style/StyleGridData.h: Store a Vector of GridTrackSize instead of just one.

LayoutTests:

* fast/css-grid-layout/grid-auto-columns-rows-get-set-expected.txt:
* fast/css-grid-layout/grid-auto-columns-rows-get-set.html:
* fast/css-grid-layout/grid-shorthand-get-set-expected.txt:
* fast/css-grid-layout/grid-shorthand-get-set.html:
* svg/css/getComputedStyle-basic-expected.txt: CSSPrimitiveValue -&gt; CSSValueList.</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="#trunkLayoutTestsfastcssgridlayoutgridshorthandgetsetexpectedtxt">trunk/LayoutTests/fast/css-grid-layout/grid-shorthand-get-set-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastcssgridlayoutgridshorthandgetsethtml">trunk/LayoutTests/fast/css-grid-layout/grid-shorthand-get-set.html</a></li>
<li><a href="#trunkLayoutTestssvgcssgetComputedStylebasicexpectedtxt">trunk/LayoutTests/svg/css/getComputedStyle-basic-expected.txt</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="#trunkSourceWebCorecssCSSParsercpp">trunk/Source/WebCore/css/CSSParser.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSParserh">trunk/Source/WebCore/css/CSSParser.h</a></li>
<li><a href="#trunkSourceWebCorecssCSSPropertyNamesin">trunk/Source/WebCore/css/CSSPropertyNames.in</a></li>
<li><a href="#trunkSourceWebCorecssStyleBuilderConverterh">trunk/Source/WebCore/css/StyleBuilderConverter.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderGridcpp">trunk/Source/WebCore/rendering/RenderGrid.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleRenderStyleh">trunk/Source/WebCore/rendering/style/RenderStyle.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleStyleGridDatah">trunk/Source/WebCore/rendering/style/StyleGridData.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (203715 => 203716)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-07-26 08:06:28 UTC (rev 203715)
+++ trunk/LayoutTests/ChangeLog        2016-07-26 09:37:41 UTC (rev 203716)
</span><span class="lines">@@ -1,3 +1,16 @@
</span><ins>+2016-07-25  Sergio Villar Senin  &lt;svillar@igalia.com&gt;
+
+        [css-grid] grid-auto-flow|row should take a &lt;track-size&gt;+
+        https://bugs.webkit.org/show_bug.cgi?id=160158
+
+        Reviewed by Darin Adler.
+
+        * fast/css-grid-layout/grid-auto-columns-rows-get-set-expected.txt:
+        * fast/css-grid-layout/grid-auto-columns-rows-get-set.html:
+        * fast/css-grid-layout/grid-shorthand-get-set-expected.txt:
+        * fast/css-grid-layout/grid-shorthand-get-set.html:
+        * svg/css/getComputedStyle-basic-expected.txt: CSSPrimitiveValue -&gt; CSSValueList.
+
</ins><span class="cx"> 2016-07-25  Frederic Wang  &lt;fwang@igalia.com&gt;
</span><span class="cx"> 
</span><span class="cx">         MathOperator: Add a mapping from combining to non-combining equivalents
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssgridlayoutgridautocolumnsrowsgetsetexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layout/grid-auto-columns-rows-get-set-expected.txt (203715 => 203716)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/grid-auto-columns-rows-get-set-expected.txt        2016-07-26 08:06:28 UTC (rev 203715)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-auto-columns-rows-get-set-expected.txt        2016-07-26 09:37:41 UTC (rev 203716)
</span><span class="lines">@@ -22,6 +22,10 @@
</span><span class="cx"> PASS window.getComputedStyle(gridAutoFixedFixedWithFixedFixedWithChildren, '').getPropertyValue('grid-auto-columns') is &quot;40px&quot;
</span><span class="cx"> PASS window.getComputedStyle(gridAutoFixedFixedWithFixedFixedWithChildren, '').getPropertyValue('grid-template-columns') is &quot;20px 40px 40px&quot;
</span><span class="cx"> PASS window.getComputedStyle(gridAutoFixedFixedWithFixedFixedWithChildren, '').getPropertyValue('grid-template-rows') is &quot;15px 30px 30px&quot;
</span><ins>+PASS window.getComputedStyle(gridAutoMultipleTracks, '').getPropertyValue('grid-template-columns') is &quot;25px 50px 100px 25px&quot;
+PASS window.getComputedStyle(gridAutoMultipleTracks, '').getPropertyValue('grid-template-rows') is &quot;10px 20px 30px 10px&quot;
+PASS window.getComputedStyle(gridAutoMultipleTracksNegativeIndexes, '').getPropertyValue('grid-template-columns') is &quot;100px 25px 50px 100px&quot;
+PASS window.getComputedStyle(gridAutoMultipleTracksNegativeIndexes, '').getPropertyValue('grid-template-rows') is &quot;30px 10px 20px 30px&quot;
</ins><span class="cx"> 
</span><span class="cx"> Test that grid-template-* definitions are not affected by grid-auto-* definitions
</span><span class="cx"> PASS window.getComputedStyle(gridAutoFixedFixed, '').getPropertyValue('grid-template-columns') is &quot;none&quot;
</span><span class="lines">@@ -36,22 +40,28 @@
</span><span class="cx"> PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is 'auto'
</span><span class="cx"> 
</span><span class="cx"> Test getting and setting grid-auto-columns and grid-auto-rows through JS
</span><del>-PASS getComputedStyle(element, '').getPropertyValue('grid-auto-columns') is '180px'
-PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is '660px'
-PASS getComputedStyle(element, '').getPropertyValue('grid-auto-columns') is 'minmax(-webkit-min-content, 48px)'
-PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is 'minmax(80px, -webkit-min-content)'
-PASS getComputedStyle(element, '').getPropertyValue('grid-auto-columns') is 'minmax(-webkit-min-content, -webkit-max-content)'
-PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is 'minmax(-webkit-max-content, -webkit-min-content)'
</del><ins>+PASS getComputedStyle(element, '').getPropertyValue('grid-auto-columns') is &quot;180px&quot;
+PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is &quot;660px&quot;
+PASS getComputedStyle(element, '').getPropertyValue('grid-auto-columns') is &quot;minmax(-webkit-min-content, 48px)&quot;
+PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is &quot;minmax(80px, -webkit-min-content)&quot;
+PASS getComputedStyle(element, '').getPropertyValue('grid-auto-columns') is &quot;minmax(-webkit-min-content, -webkit-max-content)&quot;
+PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is &quot;minmax(-webkit-max-content, -webkit-min-content)&quot;
+PASS getComputedStyle(element, '').getPropertyValue('grid-auto-columns') is &quot;minmax(-webkit-min-content, 10px) 48px 5%&quot;
+PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is &quot;auto 30px minmax(10%, 60%)&quot;
</ins><span class="cx"> 
</span><span class="cx"> Test setting grid-auto-columns and grid-auto-rows to bad minmax value through JS
</span><del>-PASS getComputedStyle(element, '').getPropertyValue('grid-auto-columns') is 'auto'
-PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is 'auto'
-PASS getComputedStyle(element, '').getPropertyValue('grid-auto-columns') is 'auto'
-PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is 'auto'
-PASS getComputedStyle(element, '').getPropertyValue('grid-auto-columns') is 'auto'
-PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is 'auto'
-PASS getComputedStyle(element, '').getPropertyValue('grid-auto-columns') is 'auto'
-PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is 'auto'
</del><ins>+PASS getComputedStyle(element, '').getPropertyValue('grid-auto-columns') is &quot;auto&quot;
+PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is &quot;auto&quot;
+PASS getComputedStyle(element, '').getPropertyValue('grid-auto-columns') is &quot;auto&quot;
+PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is &quot;auto&quot;
+PASS getComputedStyle(element, '').getPropertyValue('grid-auto-columns') is &quot;auto&quot;
+PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is &quot;auto&quot;
+PASS getComputedStyle(element, '').getPropertyValue('grid-auto-columns') is &quot;auto&quot;
+PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is &quot;auto&quot;
+PASS getComputedStyle(element, '').getPropertyValue('grid-auto-columns') is &quot;auto&quot;
+PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is &quot;auto&quot;
+PASS getComputedStyle(element, '').getPropertyValue('grid-auto-columns') is &quot;auto&quot;
+PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is &quot;auto&quot;
</ins><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 (203715 => 203716)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/grid-auto-columns-rows-get-set.html        2016-07-26 08:06:28 UTC (rev 203715)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-auto-columns-rows-get-set.html        2016-07-26 09:37:41 UTC (rev 203716)
</span><span class="lines">@@ -31,6 +31,13 @@
</span><span class="cx">     grid-auto-columns: minmax(10vw, auto);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+.gridAutoMultipleTracks {
+    width: 100px;
+    height: 50px;
+    grid-auto-rows: 10px 20px 30px;
+    grid-auto-columns: 25px 50px 100px;
+}
+
</ins><span class="cx"> &lt;/style&gt;
</span><span class="cx"> &lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;resources/grid-definitions-parsing-utils.js&quot;&gt;&lt;/script&gt;
</span><span class="lines">@@ -47,6 +54,19 @@
</span><span class="cx">     &lt;div class=&quot;sizedToGridArea thirdRowAutoColumn&quot;&gt;&lt;/div&gt;
</span><span class="cx">     &lt;div class=&quot;sizedToGridArea autoRowThirdColumn&quot;&gt;&lt;/div&gt;
</span><span class="cx"> &lt;/div&gt;
</span><ins>+&lt;div class=&quot;grid gridAutoMultipleTracks&quot; id=&quot;gridAutoMultipleTracks&quot;&gt;
+    &lt;div style=&quot;grid-column: 1; grid-row: 1&quot;&gt;&lt;/div&gt;
+    &lt;div style=&quot;grid-column: 2; grid-row: 2&quot;&gt;&lt;/div&gt;
+    &lt;div style=&quot;grid-column: 3; grid-row: 3&quot;&gt;&lt;/div&gt;
+    &lt;div style=&quot;grid-column: 4; grid-row: 4&quot;&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;grid gridAutoMultipleTracks&quot; id=&quot;gridAutoMultipleTracksNegativeIndexes&quot;&gt;
+    &lt;div style=&quot;grid-column: -2; grid-row: -2&quot;&gt;&lt;/div&gt;
+    &lt;div style=&quot;grid-column: -3; grid-row: -3&quot;&gt;&lt;/div&gt;
+    &lt;div style=&quot;grid-column: -4; grid-row: -4&quot;&gt;&lt;/div&gt;
+    &lt;div style=&quot;grid-column: -5; grid-row: -5&quot;&gt;&lt;/div&gt;
+&lt;/div&gt;
+
</ins><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="cx"> 
</span><span class="lines">@@ -62,6 +82,8 @@
</span><span class="cx"> testGridTemplatesValues(document.getElementById(&quot;gridAutoFixedFixedWithChildren&quot;), &quot;50px&quot;, &quot;30px&quot;);
</span><span class="cx"> testGridAutoDefinitionsValues(document.getElementById(&quot;gridAutoFixedFixedWithFixedFixedWithChildren&quot;), &quot;30px&quot;, &quot;40px&quot;);
</span><span class="cx"> testGridTemplatesValues(document.getElementById(&quot;gridAutoFixedFixedWithFixedFixedWithChildren&quot;), &quot;20px&quot;, &quot;15px&quot;, &quot;20px 40px 40px&quot;, &quot;15px 30px 30px&quot;);
</span><ins>+testGridTemplatesValues(document.getElementById(&quot;gridAutoMultipleTracks&quot;), &quot;25px 50px 100px 25px&quot;, &quot;10px 20px 30px 10px&quot;);
+testGridTemplatesValues(document.getElementById(&quot;gridAutoMultipleTracksNegativeIndexes&quot;), &quot;100px 25px 50px 100px&quot;, &quot;30px 10px 20px 30px&quot;);
</ins><span class="cx"> 
</span><span class="cx"> debug(&quot;&quot;);
</span><span class="cx"> debug(&quot;Test that grid-template-* definitions are not affected by grid-auto-* definitions&quot;);
</span><span class="lines">@@ -76,65 +98,32 @@
</span><span class="cx"> shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('grid-auto-columns')&quot;, &quot;'auto'&quot;);
</span><span class="cx"> shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('grid-auto-rows')&quot;, &quot;'auto'&quot;);
</span><span class="cx"> 
</span><ins>+function testAutoValues(autoCols, autoRows, computedAutoCols, computedAutoRows) {
+     element = document.createElement(&quot;div&quot;);
+     document.body.appendChild(element);
+     element.style.fontSize = &quot;10px&quot;;
+     element.style.gridAutoColumns = autoCols;
+     element.style.gridAutoRows = autoRows;
+     shouldBeEqualToString(&quot;getComputedStyle(element, '').getPropertyValue('grid-auto-columns')&quot;, computedAutoCols || autoCols);
+     shouldBeEqualToString(&quot;getComputedStyle(element, '').getPropertyValue('grid-auto-rows')&quot;, computedAutoRows || autoRows);
+}
+
</ins><span class="cx"> debug(&quot;&quot;);
</span><span class="cx"> debug(&quot;Test getting and setting grid-auto-columns and grid-auto-rows through JS&quot;);
</span><del>-element.style.font = &quot;10px Ahem&quot;;
-element.style.gridAutoColumns = &quot;18em&quot;;
-element.style.gridAutoRows = &quot;66em&quot;;
-shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('grid-auto-columns')&quot;, &quot;'180px'&quot;);
-shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('grid-auto-rows')&quot;, &quot;'660px'&quot;);
</del><ins>+testAutoValues(&quot;18em&quot;, &quot;66em&quot;, &quot;180px&quot;, &quot;660px&quot;);
+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;);
+testAutoValues(&quot;minmax(-webkit-min-content, -webkit-max-content)&quot;, &quot;minmax(-webkit-max-content, -webkit-min-content)&quot;);
+testAutoValues(&quot;minmax(-webkit-min-content, 10px) 48px 5%&quot;, &quot;auto 30px minmax(10%, 60%)&quot;);
</ins><span class="cx"> 
</span><del>-element = document.createElement(&quot;div&quot;);
-document.body.appendChild(element);
-element.style.gridAutoColumns = &quot;minmax(-webkit-min-content, 8vh)&quot;;
-element.style.gridAutoRows = &quot;minmax(10vw, -webkit-min-content)&quot;;
-shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('grid-auto-columns')&quot;, &quot;'minmax(-webkit-min-content, 48px)'&quot;);
-shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('grid-auto-rows')&quot;, &quot;'minmax(80px, -webkit-min-content)'&quot;);
-
-element = document.createElement(&quot;div&quot;);
-document.body.appendChild(element);
-element.style.gridAutoColumns = &quot;minmax(-webkit-min-content, -webkit-max-content)&quot;;
-element.style.gridAutoRows = &quot;minmax(-webkit-max-content, -webkit-min-content)&quot;;
-shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('grid-auto-columns')&quot;, &quot;'minmax(-webkit-min-content, -webkit-max-content)'&quot;);
-shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('grid-auto-rows')&quot;, &quot;'minmax(-webkit-max-content, -webkit-min-content)'&quot;);
-
</del><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><del>-element = document.createElement(&quot;div&quot;);
-document.body.appendChild(element);
-// No comma.
-element.style.gridAutoColumns = &quot;minmax(10px 20px)&quot;;
-// Only 1 argument provided.
-element.style.gridAutoRows = &quot;minmax(10px)&quot;;
-shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('grid-auto-columns')&quot;, &quot;'auto'&quot;);
-shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('grid-auto-rows')&quot;, &quot;'auto'&quot;);
</del><ins>+testAutoValues(&quot;minmax(10px 20px)&quot;, &quot;minmax(10px)&quot;, &quot;auto&quot;, &quot;auto&quot;);
+testAutoValues(&quot;minmax(minmax(10px, 20px), 20px)&quot;, &quot;minmax(10px, 20px, 30px)&quot;, &quot;auto&quot;, &quot;auto&quot;);
+testAutoValues(&quot;minmax()&quot;, &quot;minmax(30px 30% 30em)&quot;, &quot;auto&quot;, &quot;auto&quot;);
+testAutoValues(&quot;none&quot;, &quot;none&quot;, &quot;auto&quot;, &quot;auto&quot;);
+testAutoValues(&quot;10px [a] 20px&quot;, &quot;[z] auto [y] -webkit-min-content&quot;, &quot;auto&quot;, &quot;auto&quot;);
+testAutoValues(&quot;repeat(2, 10px [a] 20px)&quot;, &quot;[z] repeat(auto-fit, 100px)&quot;, &quot;auto&quot;, &quot;auto&quot;);
</ins><span class="cx"> 
</span><del>-element = document.createElement(&quot;div&quot;);
-document.body.appendChild(element);
-// Nested minmax.
-element.style.gridAutoColumns = &quot;minmax(minmax(10px, 20px), 20px)&quot;;
-// Only 2 arguments are allowed.
-element.style.gridAutoRows = &quot;minmax(10px, 20px, 30px)&quot;;
-shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('grid-auto-columns')&quot;, &quot;'auto'&quot;);
-shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('grid-auto-rows')&quot;, &quot;'auto'&quot;);
-
-element = document.createElement(&quot;div&quot;);
-document.body.appendChild(element);
-// No breadth value.
-element.style.gridAutoColumns = &quot;minmax()&quot;;
-// No comma.
-element.style.gridAutoRows = &quot;minmax(30px 30% 30em)&quot;;
-shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('grid-auto-columns')&quot;, &quot;'auto'&quot;);
-shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('grid-auto-rows')&quot;, &quot;'auto'&quot;);
-
-element = document.createElement(&quot;div&quot;);
-document.body.appendChild(element);
-// None is not allowed for grid-auto-{rows|columns}.
-element.style.gridAutoColumns = &quot;none&quot;;
-element.style.gridAutoRows = &quot;none&quot;;
-shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('grid-auto-columns')&quot;, &quot;'auto'&quot;);
-shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('grid-auto-rows')&quot;, &quot;'auto'&quot;);
-
</del><span class="cx"> function testInherit()
</span><span class="cx"> {
</span><span class="cx">     var parentElement = document.createElement(&quot;div&quot;);
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssgridlayoutgridshorthandgetsetexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layout/grid-shorthand-get-set-expected.txt (203715 => 203716)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/grid-shorthand-get-set-expected.txt        2016-07-26 08:06:28 UTC (rev 203715)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-shorthand-get-set-expected.txt        2016-07-26 09:37:41 UTC (rev 203716)
</span><span class="lines">@@ -64,6 +64,12 @@
</span><span class="cx"> PASS window.getComputedStyle(gridWithAutoFlowAndRowsAndColumns, '').getPropertyValue('grid-auto-flow') is &quot;column&quot;
</span><span class="cx"> PASS window.getComputedStyle(gridWithAutoFlowAndRowsAndColumns, '').getPropertyValue('grid-auto-columns') is &quot;20px&quot;
</span><span class="cx"> PASS window.getComputedStyle(gridWithAutoFlowAndRowsAndColumns, '').getPropertyValue('grid-auto-rows') is &quot;10px&quot;
</span><ins>+PASS window.getComputedStyle(gridWithAutoFlowAndMultipleAutoTracks, '').getPropertyValue('grid-template-columns') is &quot;none&quot;
+PASS window.getComputedStyle(gridWithAutoFlowAndMultipleAutoTracks, '').getPropertyValue('grid-template-rows') is &quot;none&quot;
+PASS window.getComputedStyle(gridWithAutoFlowAndMultipleAutoTracks, '').getPropertyValue('grid-template-areas') is &quot;none&quot;
+PASS window.getComputedStyle(gridWithAutoFlowAndMultipleAutoTracks, '').getPropertyValue('grid-auto-flow') is &quot;row&quot;
+PASS window.getComputedStyle(gridWithAutoFlowAndMultipleAutoTracks, '').getPropertyValue('grid-auto-columns') is &quot;100px 10%&quot;
+PASS window.getComputedStyle(gridWithAutoFlowAndMultipleAutoTracks, '').getPropertyValue('grid-auto-rows') is &quot;20px 10px&quot;
</ins><span class="cx"> 
</span><span class="cx"> Test setting wrong values for 'grid' shorthand through CSS (they should resolve to the default: 'row')
</span><span class="cx"> PASS window.getComputedStyle(gridWithNone, '').getPropertyValue('grid-template-columns') is &quot;none&quot;
</span><span class="lines">@@ -120,12 +126,6 @@
</span><span class="cx"> PASS window.getComputedStyle(gridWithWrongSlash2, '').getPropertyValue('grid-auto-flow') is &quot;row&quot;
</span><span class="cx"> PASS window.getComputedStyle(gridWithWrongSlash2, '').getPropertyValue('grid-auto-columns') is &quot;auto&quot;
</span><span class="cx"> PASS window.getComputedStyle(gridWithWrongSlash2, '').getPropertyValue('grid-auto-rows') is &quot;auto&quot;
</span><del>-PASS window.getComputedStyle(gridWithWrongSlash3, '').getPropertyValue('grid-template-columns') is &quot;none&quot;
-PASS window.getComputedStyle(gridWithWrongSlash3, '').getPropertyValue('grid-template-rows') is &quot;none&quot;
-PASS window.getComputedStyle(gridWithWrongSlash3, '').getPropertyValue('grid-template-areas') is &quot;none&quot;
-PASS window.getComputedStyle(gridWithWrongSlash3, '').getPropertyValue('grid-auto-flow') is &quot;row&quot;
-PASS window.getComputedStyle(gridWithWrongSlash3, '').getPropertyValue('grid-auto-columns') is &quot;auto&quot;
-PASS window.getComputedStyle(gridWithWrongSlash3, '').getPropertyValue('grid-auto-rows') is &quot;auto&quot;
</del><span class="cx"> PASS window.getComputedStyle(gridWithAutoFlowRowAndColumn, '').getPropertyValue('grid-template-columns') is &quot;none&quot;
</span><span class="cx"> PASS window.getComputedStyle(gridWithAutoFlowRowAndColumn, '').getPropertyValue('grid-template-rows') is &quot;none&quot;
</span><span class="cx"> PASS window.getComputedStyle(gridWithAutoFlowRowAndColumn, '').getPropertyValue('grid-template-areas') is &quot;none&quot;
</span><span class="lines">@@ -132,12 +132,6 @@
</span><span class="cx"> PASS window.getComputedStyle(gridWithAutoFlowRowAndColumn, '').getPropertyValue('grid-auto-flow') is &quot;row&quot;
</span><span class="cx"> PASS window.getComputedStyle(gridWithAutoFlowRowAndColumn, '').getPropertyValue('grid-auto-columns') is &quot;auto&quot;
</span><span class="cx"> PASS window.getComputedStyle(gridWithAutoFlowRowAndColumn, '').getPropertyValue('grid-auto-rows') is &quot;auto&quot;
</span><del>-PASS window.getComputedStyle(gridWithoutAutoFlowAndExtraBreath, '').getPropertyValue('grid-template-columns') is &quot;none&quot;
-PASS window.getComputedStyle(gridWithoutAutoFlowAndExtraBreath, '').getPropertyValue('grid-template-rows') is &quot;none&quot;
-PASS window.getComputedStyle(gridWithoutAutoFlowAndExtraBreath, '').getPropertyValue('grid-template-areas') is &quot;none&quot;
-PASS window.getComputedStyle(gridWithoutAutoFlowAndExtraBreath, '').getPropertyValue('grid-auto-flow') is &quot;row&quot;
-PASS window.getComputedStyle(gridWithoutAutoFlowAndExtraBreath, '').getPropertyValue('grid-auto-columns') is &quot;auto&quot;
-PASS window.getComputedStyle(gridWithoutAutoFlowAndExtraBreath, '').getPropertyValue('grid-auto-rows') is &quot;auto&quot;
</del><span class="cx"> PASS window.getComputedStyle(gridWithAutoFlowString1, '').getPropertyValue('grid-template-columns') is &quot;none&quot;
</span><span class="cx"> PASS window.getComputedStyle(gridWithAutoFlowString1, '').getPropertyValue('grid-template-rows') is &quot;none&quot;
</span><span class="cx"> PASS window.getComputedStyle(gridWithAutoFlowString1, '').getPropertyValue('grid-template-areas') is &quot;none&quot;
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssgridlayoutgridshorthandgetsethtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layout/grid-shorthand-get-set.html (203715 => 203716)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/grid-shorthand-get-set.html        2016-07-26 08:06:28 UTC (rev 203715)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-shorthand-get-set.html        2016-07-26 09:37:41 UTC (rev 203716)
</span><span class="lines">@@ -33,6 +33,9 @@
</span><span class="cx"> #gridWithAutoFlowAndRowsAndColumns {
</span><span class="cx">     grid: column 10px / 20px;
</span><span class="cx"> }
</span><ins>+#gridWithAutoFlowAndMultipleAutoTracks {
+    grid: row 20px 10px / 100px 10%;
+}
</ins><span class="cx"> 
</span><span class="cx"> /* Bad values. */
</span><span class="cx"> 
</span><span class="lines">@@ -58,17 +61,11 @@
</span><span class="cx">     grid: column / 10px;
</span><span class="cx"> }
</span><span class="cx"> #gridWithWrongSlash2 {
</span><del>-    grid: column 10px 20px;
-}
-#gridWithWrongSlash3 {
</del><span class="cx">     grid: 5x / 10px / 20px;
</span><span class="cx"> }
</span><span class="cx"> #gridWithAutoFlowRowAndColumn {
</span><span class="cx">     grid: row column 10px;
</span><span class="cx"> }
</span><del>-#gridWithoutAutoFlowAndExtraBreath {
-    grid: row 10px / 20px 30px;
-}
</del><span class="cx"> #gridWithAutoFlowString1 {
</span><span class="cx">     grid: row 10px &quot;a&quot;;
</span><span class="cx"> }
</span><span class="lines">@@ -109,9 +106,7 @@
</span><span class="cx"> &lt;div class=&quot;grid&quot; id=&quot;gridWithMisplacedNone2&quot;&gt;&lt;/div&gt;
</span><span class="cx"> &lt;div class=&quot;grid&quot; id=&quot;gridWithWrongSlash1&quot;&gt;&lt;/div&gt;
</span><span class="cx"> &lt;div class=&quot;grid&quot; id=&quot;gridWithWrongSlash2&quot;&gt;&lt;/div&gt;
</span><del>-&lt;div class=&quot;grid&quot; id=&quot;gridWithWrongSlash3&quot;&gt;&lt;/div&gt;
</del><span class="cx"> &lt;div class=&quot;grid&quot; id=&quot;gridWithAutoFlowRowAndColumn&quot;&gt;&lt;/div&gt;
</span><del>-&lt;div class=&quot;grid&quot; id=&quot;gridWithoutAutoFlowAndExtraBreath&quot;&gt;&lt;/div&gt;
</del><span class="cx"> &lt;div class=&quot;grid&quot; id=&quot;gridWithAutoFlowString1&quot;&gt;&lt;/div&gt;
</span><span class="cx"> &lt;div class=&quot;grid&quot; id=&quot;gridWithAutoFlowString2&quot;&gt;&lt;/div&gt;
</span><span class="cx"> &lt;div class=&quot;grid&quot; id=&quot;gridWithAutoFlowString3&quot;&gt;&lt;/div&gt;
</span><span class="lines">@@ -118,6 +113,7 @@
</span><span class="cx"> &lt;div class=&quot;grid&quot; id=&quot;gridWithTemplateAndAutoFlow&quot;&gt;&lt;/div&gt;
</span><span class="cx"> &lt;div class=&quot;grid&quot; id=&quot;gridWithTemplateAndMisplacedString1&quot;&gt;&lt;/div&gt;
</span><span class="cx"> &lt;div class=&quot;grid&quot; id=&quot;gridWithMisplacedDense&quot;&gt;&lt;/div&gt;
</span><ins>+&lt;div class=&quot;grid&quot; id=&quot;gridWithAutoFlowAndMultipleAutoTracks&quot;&gt;&lt;/div&gt;
</ins><span class="cx"> &lt;script src=&quot;resources/grid-shorthand-parsing-utils.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script&gt;
</span><span class="cx">     description(&quot;This test checks that the 'grid' shorthand is properly parsed and the longhand properties correctly assigned.&quot;);
</span><span class="lines">@@ -133,6 +129,7 @@
</span><span class="cx">     testGridDefinitionsValues(document.getElementById(&quot;gridWithAutoFlowColumnDense&quot;), &quot;none&quot;, &quot;none&quot;, &quot;none&quot;, &quot;column dense&quot;, &quot;10px&quot;, &quot;10px&quot;);
</span><span class="cx">     testGridDefinitionsValues(document.getElementById(&quot;gridWithAutoFlowDenseRow&quot;), &quot;none&quot;, &quot;none&quot;, &quot;none&quot;, &quot;row dense&quot;, &quot;10px&quot;, &quot;10px&quot;);
</span><span class="cx">     testGridDefinitionsValues(document.getElementById(&quot;gridWithAutoFlowAndRowsAndColumns&quot;), &quot;none&quot;, &quot;none&quot;, &quot;none&quot;, &quot;column&quot;, &quot;20px&quot;, &quot;10px&quot;);
</span><ins>+    testGridDefinitionsValues(document.getElementById(&quot;gridWithAutoFlowAndMultipleAutoTracks&quot;), &quot;none&quot;, &quot;none&quot;, &quot;none&quot;, &quot;row&quot;, &quot;100px 10%&quot;, &quot;20px 10px&quot;);
</ins><span class="cx"> 
</span><span class="cx">     debug(&quot;&quot;);
</span><span class="cx">     debug(&quot;Test setting wrong values for 'grid' shorthand through CSS (they should resolve to the default: 'row')&quot;);
</span><span class="lines">@@ -145,9 +142,7 @@
</span><span class="cx">     testGridDefinitionsValues(document.getElementById(&quot;gridWithMisplacedDense&quot;), &quot;none&quot;, &quot;none&quot;, &quot;none&quot;, &quot;row&quot;, &quot;auto&quot;, &quot;auto&quot;);
</span><span class="cx">     testGridDefinitionsValues(document.getElementById(&quot;gridWithWrongSlash1&quot;), &quot;none&quot;, &quot;none&quot;, &quot;none&quot;, &quot;row&quot;, &quot;auto&quot;, &quot;auto&quot;);
</span><span class="cx">     testGridDefinitionsValues(document.getElementById(&quot;gridWithWrongSlash2&quot;), &quot;none&quot;, &quot;none&quot;, &quot;none&quot;, &quot;row&quot;, &quot;auto&quot;, &quot;auto&quot;);
</span><del>-    testGridDefinitionsValues(document.getElementById(&quot;gridWithWrongSlash3&quot;), &quot;none&quot;, &quot;none&quot;, &quot;none&quot;, &quot;row&quot;, &quot;auto&quot;, &quot;auto&quot;);
</del><span class="cx">     testGridDefinitionsValues(document.getElementById(&quot;gridWithAutoFlowRowAndColumn&quot;), &quot;none&quot;, &quot;none&quot;, &quot;none&quot;, &quot;row&quot;, &quot;auto&quot;, &quot;auto&quot;);
</span><del>-    testGridDefinitionsValues(document.getElementById(&quot;gridWithoutAutoFlowAndExtraBreath&quot;), &quot;none&quot;, &quot;none&quot;, &quot;none&quot;, &quot;row&quot;, &quot;auto&quot;, &quot;auto&quot;);
</del><span class="cx">     testGridDefinitionsValues(document.getElementById(&quot;gridWithAutoFlowString1&quot;), &quot;none&quot;, &quot;none&quot;, &quot;none&quot;, &quot;row&quot;, &quot;auto&quot;, &quot;auto&quot;);
</span><span class="cx">     testGridDefinitionsValues(document.getElementById(&quot;gridWithAutoFlowString2&quot;), &quot;none&quot;, &quot;none&quot;, &quot;none&quot;, &quot;row&quot;, &quot;auto&quot;, &quot;auto&quot;);
</span><span class="cx">     testGridDefinitionsValues(document.getElementById(&quot;gridWithAutoFlowString3&quot;), &quot;none&quot;, &quot;none&quot;, &quot;none&quot;, &quot;row&quot;, &quot;auto&quot;, &quot;auto&quot;);
</span></span></pre></div>
<a id="trunkLayoutTestssvgcssgetComputedStylebasicexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/svg/css/getComputedStyle-basic-expected.txt (203715 => 203716)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/css/getComputedStyle-basic-expected.txt        2016-07-26 08:06:28 UTC (rev 203715)
+++ trunk/LayoutTests/svg/css/getComputedStyle-basic-expected.txt        2016-07-26 09:37:41 UTC (rev 203716)
</span><span class="lines">@@ -329,11 +329,11 @@
</span><span class="cx"> rect: style.getPropertyValue(font-variant-east-asian) : normal
</span><span class="cx"> rect: style.getPropertyCSSValue(font-variant-east-asian) : [object CSSPrimitiveValue]
</span><span class="cx"> rect: style.getPropertyValue(grid-auto-columns) : auto
</span><del>-rect: style.getPropertyCSSValue(grid-auto-columns) : [object CSSPrimitiveValue]
</del><ins>+rect: style.getPropertyCSSValue(grid-auto-columns) : [object CSSValueList]
</ins><span class="cx"> rect: style.getPropertyValue(grid-auto-flow) : row
</span><span class="cx"> rect: style.getPropertyCSSValue(grid-auto-flow) : [object CSSValueList]
</span><span class="cx"> rect: style.getPropertyValue(grid-auto-rows) : auto
</span><del>-rect: style.getPropertyCSSValue(grid-auto-rows) : [object CSSPrimitiveValue]
</del><ins>+rect: style.getPropertyCSSValue(grid-auto-rows) : [object CSSValueList]
</ins><span class="cx"> rect: style.getPropertyValue(grid-column-end) : auto
</span><span class="cx"> rect: style.getPropertyCSSValue(grid-column-end) : [object CSSPrimitiveValue]
</span><span class="cx"> rect: style.getPropertyValue(grid-column-start) : auto
</span><span class="lines">@@ -863,11 +863,11 @@
</span><span class="cx"> g: style.getPropertyValue(font-variant-east-asian) : normal
</span><span class="cx"> g: style.getPropertyCSSValue(font-variant-east-asian) : [object CSSPrimitiveValue]
</span><span class="cx"> g: style.getPropertyValue(grid-auto-columns) : auto
</span><del>-g: style.getPropertyCSSValue(grid-auto-columns) : [object CSSPrimitiveValue]
</del><ins>+g: style.getPropertyCSSValue(grid-auto-columns) : [object CSSValueList]
</ins><span class="cx"> g: style.getPropertyValue(grid-auto-flow) : row
</span><span class="cx"> g: style.getPropertyCSSValue(grid-auto-flow) : [object CSSValueList]
</span><span class="cx"> g: style.getPropertyValue(grid-auto-rows) : auto
</span><del>-g: style.getPropertyCSSValue(grid-auto-rows) : [object CSSPrimitiveValue]
</del><ins>+g: style.getPropertyCSSValue(grid-auto-rows) : [object CSSValueList]
</ins><span class="cx"> g: style.getPropertyValue(grid-column-end) : auto
</span><span class="cx"> g: style.getPropertyCSSValue(grid-column-end) : [object CSSPrimitiveValue]
</span><span class="cx"> g: style.getPropertyValue(grid-column-start) : auto
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (203715 => 203716)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-07-26 08:06:28 UTC (rev 203715)
+++ trunk/Source/WebCore/ChangeLog        2016-07-26 09:37:41 UTC (rev 203716)
</span><span class="lines">@@ -1,3 +1,37 @@
</span><ins>+2016-07-25  Sergio Villar Senin  &lt;svillar@igalia.com&gt;
+
+        [css-grid] grid-auto-flow|row should take a &lt;track-size&gt;+
+        https://bugs.webkit.org/show_bug.cgi?id=160158
+
+        Reviewed by Darin Adler.
+
+        * css/CSSComputedStyleDeclaration.cpp:
+        (WebCore::valueForGridTrackSizeList):
+        (WebCore::ComputedStyleExtractor::propertyValue): Return a list of &lt;track-size&gt; instead of
+        just one.
+        * css/CSSParser.cpp:
+        (WebCore::CSSParser::parseValue): Use the new values of TrackListType;
+        (WebCore::CSSParser::parseGridTemplateRowsAndAreasAndColumns): Ditto.
+        (WebCore::CSSParser::parseGridTemplateShorthand): Ditto.
+        (WebCore::CSSParser::parseGridShorthand): Ditto.
+        (WebCore::CSSParser::parseGridTrackList): Changed behavior depending on the value of
+        TrackSizeList.
+        * css/CSSParser.h: TrackListType has now 3 different values which determine the behavior of
+        parseGridTrackList.
+        * css/CSSPropertyNames.in: Use a new converter for lists.
+        * css/StyleBuilderConverter.h:
+        (WebCore::StyleBuilderConverter::convertGridTrackSizeList):
+        * rendering/RenderGrid.cpp:
+        (WebCore::RenderGrid::rawGridTrackSize): Resolve the size of the auto track.
+        * rendering/style/RenderStyle.h:
+        (WebCore::RenderStyle::gridAutoColumns): Return a Vector.
+        (WebCore::RenderStyle::gridAutoRows): Ditto.
+        (WebCore::RenderStyle::setGridAutoColumns): Store a Vector.
+        (WebCore::RenderStyle::setGridAutoRows): Ditto.
+        (WebCore::RenderStyle::initialGridAutoColumns): Return a Vector with one auto track.
+        (WebCore::RenderStyle::initialGridAutoRows): Ditto.
+        * rendering/style/StyleGridData.h: Store a Vector of GridTrackSize instead of just one.
+
</ins><span class="cx"> 2016-07-25  Frederic Wang  &lt;fwang@igalia.com&gt;
</span><span class="cx"> 
</span><span class="cx">         MathOperator: Add a mapping from combining to non-combining equivalents
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSComputedStyleDeclarationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp (203715 => 203716)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp        2016-07-26 08:06:28 UTC (rev 203715)
+++ trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp        2016-07-26 09:37:41 UTC (rev 203716)
</span><span class="lines">@@ -1111,6 +1111,16 @@
</span><span class="cx">         list.append(WTFMove(lineNames));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+static Ref&lt;CSSValueList&gt; valueForGridTrackSizeList(GridTrackSizingDirection direction, const RenderStyle&amp; style)
+{
+    auto&amp; autoTrackSizes = direction == ForColumns ? style.gridAutoColumns() : style.gridAutoRows();
+
+    auto list = CSSValueList::createSpaceSeparated();
+    for (auto&amp; trackSize : autoTrackSizes)
+        list-&gt;append(specifiedValueForGridTrackSize(trackSize, style));
+    return list;
+}
+
</ins><span class="cx"> static Ref&lt;CSSValue&gt; valueForGridTrackList(GridTrackSizingDirection direction, RenderObject* renderer, const RenderStyle&amp; style)
</span><span class="cx"> {
</span><span class="cx">     bool isRowAxis = direction == ForColumns;
</span><span class="lines">@@ -2881,14 +2891,14 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         // Specs mention that getComputedStyle() should return the used value of the property instead of the computed
</span><del>-        // one for grid-definition-{rows|columns} but not for the grid-auto-{rows|columns} as things like
</del><ins>+        // one for grid-template-{rows|columns} but not for the grid-auto-{rows|columns} as things like
</ins><span class="cx">         // grid-auto-columns: 2fr; cannot be resolved to a value in pixels as the '2fr' means very different things
</span><span class="cx">         // depending on the size of the explicit grid or the number of implicit tracks added to the grid. See
</span><span class="cx">         // http://lists.w3.org/Archives/Public/www-style/2013Nov/0014.html
</span><span class="cx">         case CSSPropertyGridAutoColumns:
</span><del>-            return specifiedValueForGridTrackSize(style-&gt;gridAutoColumns(), *style);
</del><ins>+            return valueForGridTrackSizeList(ForColumns, *style);
</ins><span class="cx">         case CSSPropertyGridAutoRows:
</span><del>-            return specifiedValueForGridTrackSize(style-&gt;gridAutoRows(), *style);
</del><ins>+            return valueForGridTrackSizeList(ForRows, *style);
</ins><span class="cx"> 
</span><span class="cx">         case CSSPropertyGridTemplateColumns:
</span><span class="cx">             return valueForGridTrackList(ForColumns, renderer, *style);
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSParser.cpp (203715 => 203716)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSParser.cpp        2016-07-26 08:06:28 UTC (rev 203715)
+++ trunk/Source/WebCore/css/CSSParser.cpp        2016-07-26 09:37:41 UTC (rev 203716)
</span><span class="lines">@@ -2759,7 +2759,7 @@
</span><span class="cx">     case CSSPropertyGridAutoRows:
</span><span class="cx">         if (!isCSSGridLayoutEnabled())
</span><span class="cx">             return false;
</span><del>-        parsedValue = parseGridTrackSize(*m_valueList);
</del><ins>+        parsedValue = parseGridTrackList(GridAuto);
</ins><span class="cx">         break;
</span><span class="cx"> 
</span><span class="cx">     case CSSPropertyGridTemplateColumns:
</span><span class="lines">@@ -2766,7 +2766,7 @@
</span><span class="cx">     case CSSPropertyGridTemplateRows:
</span><span class="cx">         if (!isCSSGridLayoutEnabled())
</span><span class="cx">             return false;
</span><del>-        parsedValue = parseGridTrackList();
</del><ins>+        parsedValue = parseGridTrackList(GridTemplate);
</ins><span class="cx">         break;
</span><span class="cx"> 
</span><span class="cx">     case CSSPropertyGridColumnStart:
</span><span class="lines">@@ -5689,7 +5689,7 @@
</span><span class="cx">     RefPtr&lt;CSSValue&gt; templateColumns;
</span><span class="cx">     if (m_valueList-&gt;current()) {
</span><span class="cx">         ASSERT(isForwardSlashOperator(*m_valueList-&gt;current()));
</span><del>-        templateColumns = parseGridTemplateColumns(DisallowRepeat);
</del><ins>+        templateColumns = parseGridTemplateColumns(GridTemplateNoRepeat);
</ins><span class="cx">         if (!templateColumns)
</span><span class="cx">             return false;
</span><span class="cx">         // The template-columns &lt;track-list&gt; can't be 'none'.
</span><span class="lines">@@ -5733,7 +5733,7 @@
</span><span class="cx">     if (firstValueIsNone)
</span><span class="cx">         rowsValue = CSSValuePool::singleton().createIdentifierValue(CSSValueNone);
</span><span class="cx">     else
</span><del>-        rowsValue = parseGridTrackList();
</del><ins>+        rowsValue = parseGridTrackList(GridTemplate);
</ins><span class="cx"> 
</span><span class="cx">     if (rowsValue) {
</span><span class="cx">         auto columnsValue = parseGridTemplateColumns();
</span><span class="lines">@@ -5783,13 +5783,13 @@
</span><span class="cx">     RefPtr&lt;CSSValue&gt; autoRowsValue;
</span><span class="cx"> 
</span><span class="cx">     if (m_valueList-&gt;current()) {
</span><del>-        autoRowsValue = parseGridTrackSize(*m_valueList);
</del><ins>+        autoRowsValue = parseGridTrackList(GridAuto);
</ins><span class="cx">         if (!autoRowsValue)
</span><span class="cx">             return false;
</span><span class="cx">         if (m_valueList-&gt;current()) {
</span><span class="cx">             if (!isForwardSlashOperator(*m_valueList-&gt;current()) || !m_valueList-&gt;next())
</span><span class="cx">                 return false;
</span><del>-            autoColumnsValue = parseGridTrackSize(*m_valueList);
</del><ins>+            autoColumnsValue = parseGridTrackList(GridAuto);
</ins><span class="cx">             if (!autoColumnsValue)
</span><span class="cx">                 return false;
</span><span class="cx">         }
</span><span class="lines">@@ -5931,6 +5931,8 @@
</span><span class="cx"> 
</span><span class="cx">     CSSParserValue* value = m_valueList-&gt;current();
</span><span class="cx">     if (value-&gt;id == CSSValueNone) {
</span><ins>+        if (trackListType == GridAuto)
+            return nullptr;
</ins><span class="cx">         m_valueList-&gt;next();
</span><span class="cx">         return CSSValuePool::singleton().createIdentifierValue(CSSValueNone);
</span><span class="cx">     }
</span><span class="lines">@@ -5938,17 +5940,22 @@
</span><span class="cx">     auto values = CSSValueList::createSpaceSeparated();
</span><span class="cx">     // Handle leading  &lt;custom-ident&gt;*.
</span><span class="cx">     value = m_valueList-&gt;current();
</span><del>-    if (value &amp;&amp; value-&gt;unit == CSSParserValue::ValueList)
</del><ins>+    bool allowGridLineNames = trackListType != GridAuto;
+    if (value &amp;&amp; value-&gt;unit == CSSParserValue::ValueList) {
+        if (!allowGridLineNames)
+            return nullptr;
</ins><span class="cx">         parseGridLineNames(*m_valueList, values);
</span><ins>+    }
</ins><span class="cx"> 
</span><span class="cx">     bool seenTrackSizeOrRepeatFunction = false;
</span><span class="cx">     bool seenAutoRepeat = false;
</span><span class="cx">     bool allTracksAreFixedSized = true;
</span><ins>+    bool repeatAllowed = trackListType == GridTemplate;
</ins><span class="cx">     while (CSSParserValue* currentValue = m_valueList-&gt;current()) {
</span><span class="cx">         if (isForwardSlashOperator(*currentValue))
</span><span class="cx">             break;
</span><span class="cx">         if (currentValue-&gt;unit == CSSParserValue::Function &amp;&amp; equalLettersIgnoringASCIICase(currentValue-&gt;function-&gt;name, &quot;repeat(&quot;)) {
</span><del>-            if (trackListType == DisallowRepeat)
</del><ins>+            if (!repeatAllowed)
</ins><span class="cx">                 return nullptr;
</span><span class="cx">             bool isAutoRepeat;
</span><span class="cx">             if (!parseGridTrackRepeatFunction(values, isAutoRepeat, allTracksAreFixedSized))
</span><span class="lines">@@ -5971,8 +5978,11 @@
</span><span class="cx"> 
</span><span class="cx">         // This will handle the trailing &lt;custom-ident&gt;* in the grammar.
</span><span class="cx">         value = m_valueList-&gt;current();
</span><del>-        if (value &amp;&amp; value-&gt;unit == CSSParserValue::ValueList)
</del><ins>+        if (value &amp;&amp; value-&gt;unit == CSSParserValue::ValueList) {
+            if (!allowGridLineNames)
+                return nullptr;
</ins><span class="cx">             parseGridLineNames(*m_valueList, values);
</span><ins>+        }
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (!seenTrackSizeOrRepeatFunction)
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSParserh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSParser.h (203715 => 203716)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSParser.h        2016-07-26 08:06:28 UTC (rev 203715)
+++ trunk/Source/WebCore/css/CSSParser.h        2016-07-26 09:37:41 UTC (rev 203716)
</span><span class="lines">@@ -235,8 +235,8 @@
</span><span class="cx">     bool isCSSGridLayoutEnabled() const;
</span><span class="cx">     RefPtr&lt;CSSValue&gt; parseGridPosition();
</span><span class="cx">     bool parseGridItemPositionShorthand(CSSPropertyID, bool important);
</span><del>-    enum TrackListType { AllowRepeat, DisallowRepeat };
-    RefPtr&lt;CSSValue&gt; parseGridTemplateColumns(TrackListType = AllowRepeat);
</del><ins>+    enum TrackListType { GridTemplate, GridTemplateNoRepeat, GridAuto };
+    RefPtr&lt;CSSValue&gt; parseGridTemplateColumns(TrackListType = GridTemplate);
</ins><span class="cx">     bool parseGridTemplateRowsAndAreasAndColumns(bool important);
</span><span class="cx">     bool parseGridTemplateShorthand(bool important);
</span><span class="cx">     bool parseGridShorthand(bool important);
</span><span class="lines">@@ -243,7 +243,7 @@
</span><span class="cx">     bool parseGridAreaShorthand(bool important);
</span><span class="cx">     bool parseGridGapShorthand(bool important);
</span><span class="cx">     bool parseSingleGridAreaLonghand(RefPtr&lt;CSSValue&gt;&amp;);
</span><del>-    RefPtr&lt;CSSValue&gt; parseGridTrackList(TrackListType = AllowRepeat);
</del><ins>+    RefPtr&lt;CSSValue&gt; parseGridTrackList(TrackListType);
</ins><span class="cx">     bool parseGridTrackRepeatFunction(CSSValueList&amp;, bool&amp; isAutoRepeat, bool&amp; allTracksAreFixedSized);
</span><span class="cx">     RefPtr&lt;CSSValue&gt; parseGridTrackSize(CSSParserValueList&amp; inputList);
</span><span class="cx">     RefPtr&lt;CSSPrimitiveValue&gt; parseGridBreadth(CSSParserValue&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSPropertyNamesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSPropertyNames.in (203715 => 203716)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSPropertyNames.in        2016-07-26 08:06:28 UTC (rev 203715)
+++ trunk/Source/WebCore/css/CSSPropertyNames.in        2016-07-26 09:37:41 UTC (rev 203716)
</span><span class="lines">@@ -498,8 +498,8 @@
</span><span class="cx"> #if defined(ENABLE_CSS_GRID_LAYOUT) &amp;&amp; ENABLE_CSS_GRID_LAYOUT
</span><span class="cx"> grid [Longhands=grid-template-rows|grid-template-columns|grid-template-areas|grid-auto-flow|grid-auto-rows|grid-auto-columns|grid-column-gap|grid-row-gap]
</span><span class="cx"> grid-area [Longhands=grid-row-start|grid-column-start|grid-row-end|grid-column-end]
</span><del>-grid-auto-columns [Converter=GridTrackSize]
-grid-auto-rows [Converter=GridTrackSize]
</del><ins>+grid-auto-columns [Converter=GridTrackSizeList]
+grid-auto-rows [Converter=GridTrackSizeList]
</ins><span class="cx"> grid-column-end [ConditionalConverter=GridPosition, NameForMethods=GridItemColumnEnd]
</span><span class="cx"> grid-column-gap [Initial=initialZeroLength, Converter=Length]
</span><span class="cx"> grid-column-start [ConditionalConverter=GridPosition, NameForMethods=GridItemColumnStart]
</span></span></pre></div>
<a id="trunkSourceWebCorecssStyleBuilderConverterh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleBuilderConverter.h (203715 => 203716)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleBuilderConverter.h        2016-07-26 08:06:28 UTC (rev 203715)
+++ trunk/Source/WebCore/css/StyleBuilderConverter.h        2016-07-26 09:37:41 UTC (rev 203716)
</span><span class="lines">@@ -101,6 +101,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(CSS_GRID_LAYOUT)
</span><span class="cx">     static GridTrackSize convertGridTrackSize(StyleResolver&amp;, CSSValue&amp;);
</span><ins>+    static Vector&lt;GridTrackSize&gt; convertGridTrackSizeList(StyleResolver&amp;, CSSValue&amp;);
</ins><span class="cx">     static Optional&lt;GridPosition&gt; convertGridPosition(StyleResolver&amp;, CSSValue&amp;);
</span><span class="cx">     static GridAutoFlow convertGridAutoFlow(StyleResolver&amp;, CSSValue&amp;);
</span><span class="cx"> #endif // ENABLE(CSS_GRID_LAYOUT)
</span><span class="lines">@@ -992,6 +993,20 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+inline Vector&lt;GridTrackSize&gt; StyleBuilderConverter::convertGridTrackSizeList(StyleResolver&amp; styleResolver, CSSValue&amp; value)
+{
+    ASSERT(value.isValueList());
+    auto&amp; valueList = downcast&lt;CSSValueList&gt;(value);
+    Vector&lt;GridTrackSize&gt; trackSizes;
+    trackSizes.reserveInitialCapacity(valueList.length());
+    for (auto&amp; currValue : valueList) {
+        ASSERT(!currValue-&gt;isGridLineNamesValue());
+        ASSERT(!currValue-&gt;isGridAutoRepeatValue());
+        trackSizes.uncheckedAppend(convertGridTrackSize(styleResolver, currValue));
+    }
+    return trackSizes;
+}
+
</ins><span class="cx"> inline GridTrackSize StyleBuilderConverter::convertGridTrackSize(StyleResolver&amp; styleResolver, CSSValue&amp; value)
</span><span class="cx"> {
</span><span class="cx">     return createGridTrackSize(value, styleResolver);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderGridcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderGrid.cpp (203715 => 203716)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderGrid.cpp        2016-07-26 08:06:28 UTC (rev 203715)
+++ trunk/Source/WebCore/rendering/RenderGrid.cpp        2016-07-26 09:37:41 UTC (rev 203716)
</span><span class="lines">@@ -875,7 +875,7 @@
</span><span class="cx">     bool isRowAxis = direction == ForColumns;
</span><span class="cx">     auto&amp; trackStyles = isRowAxis ? style().gridColumns() : style().gridRows();
</span><span class="cx">     auto&amp; autoRepeatTrackStyles = isRowAxis ? style().gridAutoRepeatColumns() : style().gridAutoRepeatRows();
</span><del>-    auto&amp; autoTrackSize = isRowAxis ? style().gridAutoColumns() : style().gridAutoRows();
</del><ins>+    auto&amp; autoTrackStyles = isRowAxis ? style().gridAutoColumns() : style().gridAutoRows();
</ins><span class="cx">     unsigned insertionPoint = isRowAxis ? style().gridAutoRepeatColumnsInsertionPoint() : style().gridAutoRepeatRowsInsertionPoint();
</span><span class="cx">     unsigned repetitions = autoRepeatCountForDirection(direction);
</span><span class="cx"> 
</span><span class="lines">@@ -885,12 +885,17 @@
</span><span class="cx">     unsigned explicitTracksCount = trackStyles.size() + repetitions;
</span><span class="cx"> 
</span><span class="cx">     int untranslatedIndexAsInt = translatedIndex + (isRowAxis ? m_smallestColumnStart : m_smallestRowStart);
</span><del>-    if (untranslatedIndexAsInt &lt; 0)
-        return autoTrackSize;
</del><ins>+    unsigned autoTrackStylesSize = autoTrackStyles.size();
+    if (untranslatedIndexAsInt &lt; 0) {
+        int index = untranslatedIndexAsInt % static_cast&lt;int&gt;(autoTrackStylesSize);
+        // We need to traspose the index because the first negative implicit line will get the last defined auto track and so on.
+        index += index ? autoTrackStylesSize : 0;
+        return autoTrackStyles[index];
+    }
</ins><span class="cx"> 
</span><span class="cx">     unsigned untranslatedIndex = static_cast&lt;unsigned&gt;(untranslatedIndexAsInt);
</span><span class="cx">     if (untranslatedIndex &gt;= explicitTracksCount)
</span><del>-        return autoTrackSize;
</del><ins>+        return autoTrackStyles[(untranslatedIndex - explicitTracksCount) % autoTrackStylesSize];
</ins><span class="cx"> 
</span><span class="cx">     if (!repetitions || untranslatedIndex &lt; insertionPoint)
</span><span class="cx">         return trackStyles[untranslatedIndex];
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleRenderStyleh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/RenderStyle.h (203715 => 203716)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/RenderStyle.h        2016-07-26 08:06:28 UTC (rev 203715)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.h        2016-07-26 09:37:41 UTC (rev 203716)
</span><span class="lines">@@ -979,8 +979,8 @@
</span><span class="cx">     bool isGridAutoFlowDirectionColumn() const { return (rareNonInheritedData-&gt;m_grid-&gt;m_gridAutoFlow &amp; InternalAutoFlowDirectionColumn); }
</span><span class="cx">     bool isGridAutoFlowAlgorithmSparse() const { return (rareNonInheritedData-&gt;m_grid-&gt;m_gridAutoFlow &amp; InternalAutoFlowAlgorithmSparse); }
</span><span class="cx">     bool isGridAutoFlowAlgorithmDense() const { return (rareNonInheritedData-&gt;m_grid-&gt;m_gridAutoFlow &amp; InternalAutoFlowAlgorithmDense); }
</span><del>-    const GridTrackSize&amp; gridAutoColumns() const { return rareNonInheritedData-&gt;m_grid-&gt;m_gridAutoColumns; }
-    const GridTrackSize&amp; gridAutoRows() const { return rareNonInheritedData-&gt;m_grid-&gt;m_gridAutoRows; }
</del><ins>+    const Vector&lt;GridTrackSize&gt;&amp; gridAutoColumns() const { return rareNonInheritedData-&gt;m_grid-&gt;m_gridAutoColumns; }
+    const Vector&lt;GridTrackSize&gt;&amp; gridAutoRows() const { return rareNonInheritedData-&gt;m_grid-&gt;m_gridAutoRows; }
</ins><span class="cx">     const Length&amp; gridColumnGap() const { return rareNonInheritedData-&gt;m_grid-&gt;m_gridColumnGap; }
</span><span class="cx">     const Length&amp; gridRowGap() const { return rareNonInheritedData-&gt;m_grid-&gt;m_gridRowGap; }
</span><span class="cx"> 
</span><span class="lines">@@ -1560,8 +1560,8 @@
</span><span class="cx">     void setJustifySelfPosition(ItemPosition position) { rareNonInheritedData.access()-&gt;m_justifySelf.setPosition(position); }
</span><span class="cx">     void setJustifySelfOverflow(OverflowAlignment overflow) { rareNonInheritedData.access()-&gt;m_justifySelf.setOverflow(overflow); }
</span><span class="cx"> #if ENABLE(CSS_GRID_LAYOUT)
</span><del>-    void setGridAutoColumns(const GridTrackSize&amp; length) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_gridAutoColumns, length); }
-    void setGridAutoRows(const GridTrackSize&amp; length) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_gridAutoRows, length); }
</del><ins>+    void setGridAutoColumns(const Vector&lt;GridTrackSize&gt;&amp; trackSizeList) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_gridAutoColumns, trackSizeList); }
+    void setGridAutoRows(const Vector&lt;GridTrackSize&gt;&amp; trackSizeList) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_gridAutoRows, trackSizeList); }
</ins><span class="cx">     void setGridColumns(const Vector&lt;GridTrackSize&gt;&amp; lengths) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_gridColumns, lengths); }
</span><span class="cx">     void setGridRows(const Vector&lt;GridTrackSize&gt;&amp; lengths) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_gridRows, lengths); }
</span><span class="cx">     void setGridAutoRepeatColumns(const Vector&lt;GridTrackSize&gt;&amp; lengths) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_gridAutoRepeatColumns, lengths); }
</span><span class="lines">@@ -2096,8 +2096,8 @@
</span><span class="cx"> 
</span><span class="cx">     static GridAutoFlow initialGridAutoFlow() { return AutoFlowRow; }
</span><span class="cx"> 
</span><del>-    static GridTrackSize initialGridAutoColumns() { return GridTrackSize(Length(Auto)); }
-    static GridTrackSize initialGridAutoRows() { return GridTrackSize(Length(Auto)); }
</del><ins>+    static Vector&lt;GridTrackSize&gt; initialGridAutoColumns() { return { GridTrackSize(Length(Auto)) }; }
+    static Vector&lt;GridTrackSize&gt; initialGridAutoRows() { return { GridTrackSize(Length(Auto)) }; }
</ins><span class="cx"> 
</span><span class="cx">     static NamedGridAreaMap initialNamedGridArea() { return NamedGridAreaMap(); }
</span><span class="cx">     static size_t initialNamedGridAreaCount() { return 0; }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleGridDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleGridData.h (203715 => 203716)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleGridData.h        2016-07-26 08:06:28 UTC (rev 203715)
+++ trunk/Source/WebCore/rendering/style/StyleGridData.h        2016-07-26 09:37:41 UTC (rev 203716)
</span><span class="lines">@@ -85,8 +85,8 @@
</span><span class="cx"> 
</span><span class="cx">     unsigned m_gridAutoFlow : GridAutoFlowBits;
</span><span class="cx"> 
</span><del>-    GridTrackSize m_gridAutoRows;
-    GridTrackSize m_gridAutoColumns;
</del><ins>+    Vector&lt;GridTrackSize&gt; m_gridAutoRows;
+    Vector&lt;GridTrackSize&gt; m_gridAutoColumns;
</ins><span class="cx"> 
</span><span class="cx">     NamedGridAreaMap m_namedGridArea;
</span><span class="cx">     // Because m_namedGridArea doesn't store the unnamed grid areas, we need to keep track
</span></span></pre>
</div>
</div>

</body>
</html>