No subject


Fri Mar 7 15:32:22 PST 2014


Broaden justify-self's parsing name and upgrade align-self and
align-items parsing to CSS 3.

* css3/flexbox/css-properties-expected.txt:
* css3/flexbox/css-properties.html:
* css3/parse-align-items-expected.txt: Added.
* css3/parse-align-items.html: Added.
* css3/parse-align-self-expected.txt: Added.
* css3/parse-align-self.html: Added.
* css3/resources/alignment-parsing-utils.js: Added.
(checkValues):
(checkBadValues):
(checkInitialValues):
(checkInheritValues):
(checkLegacyValues):
* fast/css/getComputedStyle/computed-style-expected.txt:
* fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
* fast/css/getComputedStyle/resources/property-names.js:
* svg/css/getComputedStyle-basic-expected.txt:
* platform/gtk/TestExpectations: Report new failures and update expectations.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsTestExpectations">trunk/LayoutTests/TestExpectations</a></li>
<li><a href="#trunkLayoutTestscss3flexboxcsspropertiesexpectedtxt">trunk/LayoutTests/css3/flexbox/css-properties-expected.txt</a></li>
<li><a href="#trunkLayoutTestscss3flexboxcsspropertieshtml">trunk/LayoutTests/css3/flexbox/css-properties.html</a></li>
<li><a href="#trunkLayoutTestsfastcssgetComputedStylecomputedstyleexpectedtxt">trunk/LayoutTests/fast/css/getComputedStyle/computed-style-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastcssgetComputedStylecomputedstylewithoutrendererexpectedtxt">trunk/LayoutTests/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastcssgetComputedStyleresourcespropertynamesjs">trunk/LayoutTests/fast/css/getComputedStyle/resources/property-names.js</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="#trunkSourceWebCorecssCSSPrimitiveValueMappingsh">trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h</a></li>
<li><a href="#trunkSourceWebCorecssCSSPropertyNamesin">trunk/Source/WebCore/css/CSSPropertyNames.in</a></li>
<li><a href="#trunkSourceWebCorecssCSSValueKeywordsin">trunk/Source/WebCore/css/CSSValueKeywords.in</a></li>
<li><a href="#trunkSourceWebCorecssStyleResolvercpp">trunk/Source/WebCore/css/StyleResolver.cpp</a></li>
<li><a href="#trunkSourceWebCorecssStyleResolverh">trunk/Source/WebCore/css/StyleResolver.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBoxcpp">trunk/Source/WebCore/rendering/RenderBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderFlexibleBoxcpp">trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderFlexibleBoxh">trunk/Source/WebCore/rendering/RenderFlexibleBox.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderFullScreencpp">trunk/Source/WebCore/rendering/RenderFullScreen.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderMenuListcpp">trunk/Source/WebCore/rendering/RenderMenuList.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLRootcpp">trunk/Source/WebCore/rendering/mathml/RenderMathMLRoot.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLScriptscpp">trunk/Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleRenderStyleh">trunk/Source/WebCore/rendering/style/RenderStyle.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleRenderStyleConstantsh">trunk/Source/WebCore/rendering/style/RenderStyleConstants.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleStyleRareNonInheritedDatacpp">trunk/Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleStyleRareNonInheritedDatah">trunk/Source/WebCore/rendering/style/StyleRareNonInheritedData.h</a></li>
<li><a href="#trunkSourceWebCorestyleStyleResolveTreecpp">trunk/Source/WebCore/style/StyleResolveTree.cpp</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestscss3parsealignitemsexpectedtxt">trunk/LayoutTests/css3/parse-align-items-expected.txt</a></li>
<li><a href="#trunkLayoutTestscss3parsealignitemshtml">trunk/LayoutTests/css3/parse-align-items.html</a></li>
<li><a href="#trunkLayoutTestscss3parsealignselfexpectedtxt">trunk/LayoutTests/css3/parse-align-self-expected.txt</a></li>
<li><a href="#trunkLayoutTestscss3parsealignselfhtml">trunk/LayoutTests/css3/parse-align-self.html</a></li>
<li><a href="#trunkLayoutTestscss3resourcesalignmentparsingutilsjs">trunk/LayoutTests/css3/resources/alignment-parsing-utils.js</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (176217 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog	2014-11-17 19:48:47 UTC (rev 176217)
+++ trunk/LayoutTests/ChangeLog	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -1,3 +1,33 @@
</span><ins>+2014-11-17  Javier Fernandez  &lt;jfernandez at igalia.com&gt;
+
+        [CSS Grid Layout] Upgrade align-self and align-items parsing to CSS 3
+        https://bugs.webkit.org/show_bug.cgi?id=133359
+
+        Reviewed by David Hyatt.
+
+        From Blink r164817 and r165264 by &lt;jchaffraix at chromium.org&gt;
+
+        Broaden justify-self's parsing name and upgrade align-self and
+        align-items parsing to CSS 3.
+
+        * css3/flexbox/css-properties-expected.txt:
+        * css3/flexbox/css-properties.html:
+        * css3/parse-align-items-expected.txt: Added.
+        * css3/parse-align-items.html: Added.
+        * css3/parse-align-self-expected.txt: Added.
+        * css3/parse-align-self.html: Added.
+        * css3/resources/alignment-parsing-utils.js: Added.
+        (checkValues):
+        (checkBadValues):
+        (checkInitialValues):
+        (checkInheritValues):
+        (checkLegacyValues):
+        * fast/css/getComputedStyle/computed-style-expected.txt:
+        * fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
+        * fast/css/getComputedStyle/resources/property-names.js:
+        * svg/css/getComputedStyle-basic-expected.txt:
+        * platform/gtk/TestExpectations: Report new failures and update expectations.
+
</ins><span class="cx"> 2014-11-17  Shivakumar JM  &lt;shiva.jm at samsung.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Attribute text in HTMLAnchorElement should behave as per specification.
</span></span></pre></div>
<a id="trunkLayoutTestsTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/TestExpectations (176217 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/TestExpectations	2014-11-17 19:48:47 UTC (rev 176217)
+++ trunk/LayoutTests/TestExpectations	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -67,6 +67,10 @@
</span><span class="cx"> # This test verifies dynamic manipulation of the mroot and msqrt elements.
</span><span class="cx"> mathml/roots-removeChild.html [ ImageOnlyFailure ]
</span><span class="cx"> 
</span><ins>+webkit.org/b/133359 mathml/presentation/style-changed.html [ ImageOnlyFailure ]
+webkit.org/b/136291 platform/mac/accessibility/webkit-alt-for-css-content.html [ Failure ]
+webkit.org/b/136291 platform/mac/accessibility/alt-for-css-content.html [ Failure ]
+
</ins><span class="cx"> # This test verifies that a mismatch reftest will fail as intended if both results are same. (introduced in r93187)
</span><span class="cx"> fast/harness/sample-fail-mismatch-reftest.html [ WontFix ImageOnlyFailure ]
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestscss3flexboxcsspropertiesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/css3/flexbox/css-properties-expected.txt (176217 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/flexbox/css-properties-expected.txt	2014-11-17 19:48:47 UTC (rev 176217)
+++ trunk/LayoutTests/css3/flexbox/css-properties-expected.txt	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -29,11 +29,12 @@
</span><span class="cx"> PASS flexbox.style.webkitJustifyContent is &quot;&quot;
</span><span class="cx"> PASS window.getComputedStyle(flexbox, null).webkitJustifyContent is &quot;flex-start&quot;
</span><span class="cx"> PASS flexbox.style.webkitAlignSelf is &quot;&quot;
</span><del>-PASS window.getComputedStyle(flexbox, null).webkitAlignSelf is &quot;stretch&quot;
-PASS window.getComputedStyle(document.documentElement, null).webkitAlignSelf is &quot;stretch&quot;
</del><ins>+PASS window.getComputedStyle(flexbox, null).webkitAlignSelf is &quot;start&quot;
+PASS window.getComputedStyle(document.documentElement, null).webkitAlignSelf is &quot;auto&quot;
</ins><span class="cx"> PASS flexbox.style.webkitAlignSelf is &quot;&quot;
</span><ins>+PASS window.getComputedStyle(flexbox, null).webkitAlignSelf is &quot;start&quot;
</ins><span class="cx"> PASS flexbox.style.webkitAlignSelf is &quot;auto&quot;
</span><del>-PASS window.getComputedStyle(flexbox, null).webkitAlignSelf is &quot;stretch&quot;
</del><ins>+PASS window.getComputedStyle(flexbox, null).webkitAlignSelf is &quot;start&quot;
</ins><span class="cx"> PASS flexbox.style.webkitAlignSelf is &quot;flex-start&quot;
</span><span class="cx"> PASS window.getComputedStyle(flexbox, null).webkitAlignSelf is &quot;flex-start&quot;
</span><span class="cx"> PASS flexbox.style.webkitAlignSelf is &quot;flex-end&quot;
</span><span class="lines">@@ -45,15 +46,21 @@
</span><span class="cx"> PASS flexbox.style.webkitAlignSelf is &quot;baseline&quot;
</span><span class="cx"> PASS window.getComputedStyle(flexbox, null).webkitAlignSelf is &quot;baseline&quot;
</span><span class="cx"> PASS flexbox.style.webkitAlignSelf is &quot;&quot;
</span><del>-PASS window.getComputedStyle(flexbox, null).webkitAlignSelf is &quot;stretch&quot;
</del><ins>+PASS window.getComputedStyle(flexbox, null).webkitAlignSelf is &quot;start&quot;
</ins><span class="cx"> PASS flexbox.style.webkitAlignItems is &quot;&quot;
</span><ins>+PASS flexitem.style.webkitAlignSelf is &quot;&quot;
</ins><span class="cx"> PASS window.getComputedStyle(flexbox, null).webkitAlignItems is &quot;stretch&quot;
</span><span class="cx"> PASS window.getComputedStyle(flexitem, null).webkitAlignSelf is &quot;stretch&quot;
</span><span class="cx"> PASS flexbox.style.webkitAlignItems is &quot;&quot;
</span><del>-PASS flexbox.style.webkitAlignItems is &quot;&quot;
</del><ins>+PASS flexitem.style.webkitAlignSelf is &quot;&quot;
</ins><span class="cx"> PASS window.getComputedStyle(flexbox, null).webkitAlignItems is &quot;stretch&quot;
</span><span class="cx"> PASS window.getComputedStyle(flexitem, null).webkitAlignSelf is &quot;stretch&quot;
</span><ins>+PASS flexbox.style.webkitAlignItems is &quot;auto&quot;
+PASS flexitem.style.webkitAlignSelf is &quot;&quot;
+PASS window.getComputedStyle(flexbox, null).webkitAlignItems is &quot;stretch&quot;
+PASS window.getComputedStyle(flexitem, null).webkitAlignSelf is &quot;stretch&quot;
</ins><span class="cx"> PASS flexbox.style.webkitAlignItems is &quot;flex-start&quot;
</span><ins>+PASS flexitem.style.webkitAlignSelf is &quot;&quot;
</ins><span class="cx"> PASS window.getComputedStyle(flexbox, null).webkitAlignItems is &quot;flex-start&quot;
</span><span class="cx"> PASS window.getComputedStyle(flexitem, null).webkitAlignSelf is &quot;flex-start&quot;
</span><span class="cx"> PASS flexbox.style.webkitAlignItems is &quot;flex-end&quot;
</span><span class="lines">@@ -72,8 +79,8 @@
</span><span class="cx"> PASS window.getComputedStyle(flexbox, null).webkitAlignItems is &quot;stretch&quot;
</span><span class="cx"> PASS window.getComputedStyle(flexitem, null).webkitAlignSelf is &quot;stretch&quot;
</span><span class="cx"> PASS flexbox.style.webkitAlignItems is &quot;&quot;
</span><del>-PASS window.getComputedStyle(flexbox, null).webkitAlignItems is &quot;stretch&quot;
-PASS window.getComputedStyle(flexitem, null).webkitAlignSelf is &quot;stretch&quot;
</del><ins>+PASS window.getComputedStyle(flexbox, null).webkitAlignItems is &quot;start&quot;
+PASS window.getComputedStyle(flexitem, null).webkitAlignSelf is &quot;start&quot;
</ins><span class="cx"> PASS window.getComputedStyle(detachedFlexbox, null).webkitAlignSelf is &quot;&quot;
</span><span class="cx"> PASS window.getComputedStyle(detachedFlexItem, null).webkitAlignSelf is &quot;&quot;
</span><span class="cx"> PASS flexbox.style.webkitFlexDirection is &quot;&quot;
</span></span></pre></div>
<a id="trunkLayoutTestscss3flexboxcsspropertieshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/css3/flexbox/css-properties.html (176217 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/flexbox/css-properties.html	2014-11-17 19:48:47 UTC (rev 176217)
+++ trunk/LayoutTests/css3/flexbox/css-properties.html	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -78,18 +78,20 @@
</span><span class="cx"> shouldBeEqualToString('flexbox.style.webkitJustifyContent', '');
</span><span class="cx"> shouldBeEqualToString('window.getComputedStyle(flexbox, null).webkitJustifyContent', 'flex-start');
</span><span class="cx"> 
</span><ins>+flexbox.style.display = '-webkit-flex';
</ins><span class="cx"> 
</span><span class="cx"> shouldBeEqualToString('flexbox.style.webkitAlignSelf', '');
</span><del>-// The initial value is 'stretch'.
-shouldBeEqualToString('window.getComputedStyle(flexbox, null).webkitAlignSelf', 'stretch');
-shouldBeEqualToString('window.getComputedStyle(document.documentElement, null).webkitAlignSelf', 'stretch');
</del><ins>+// The initial value is 'auto', which will be resolved depending on parent's style (except for the 'document' element).
+shouldBeEqualToString('window.getComputedStyle(flexbox, null).webkitAlignSelf', 'start');
+shouldBeEqualToString('window.getComputedStyle(document.documentElement, null).webkitAlignSelf', 'auto');
</ins><span class="cx"> 
</span><span class="cx"> flexbox.style.webkitAlignSelf = 'foo';
</span><span class="cx"> shouldBeEqualToString('flexbox.style.webkitAlignSelf', '');
</span><ins>+shouldBeEqualToString('window.getComputedStyle(flexbox, null).webkitAlignSelf', 'start');
</ins><span class="cx"> 
</span><span class="cx"> flexbox.style.webkitAlignSelf = 'auto';
</span><span class="cx"> shouldBeEqualToString('flexbox.style.webkitAlignSelf', 'auto');
</span><del>-shouldBeEqualToString('window.getComputedStyle(flexbox, null).webkitAlignSelf', 'stretch');
</del><ins>+shouldBeEqualToString('window.getComputedStyle(flexbox, null).webkitAlignSelf', 'start');
</ins><span class="cx"> 
</span><span class="cx"> flexbox.style.webkitAlignSelf = 'flex-start';
</span><span class="cx"> shouldBeEqualToString('flexbox.style.webkitAlignSelf', 'flex-start');
</span><span class="lines">@@ -113,23 +115,29 @@
</span><span class="cx"> 
</span><span class="cx"> flexbox.style.webkitAlignSelf = '';
</span><span class="cx"> shouldBeEqualToString('flexbox.style.webkitAlignSelf', '');
</span><del>-shouldBeEqualToString('window.getComputedStyle(flexbox, null).webkitAlignSelf', 'stretch');
</del><ins>+shouldBeEqualToString('window.getComputedStyle(flexbox, null).webkitAlignSelf', 'start');
</ins><span class="cx"> 
</span><span class="cx"> shouldBeEqualToString('flexbox.style.webkitAlignItems', '');
</span><del>-// The initial value is 'stretch'.
</del><ins>+shouldBeEqualToString('flexitem.style.webkitAlignSelf', '');
+// The initial value is 'auto', which will be resolved to 'stretch' in case of flexbox containers.
</ins><span class="cx"> shouldBeEqualToString('window.getComputedStyle(flexbox, null).webkitAlignItems', 'stretch');
</span><span class="cx"> shouldBeEqualToString('window.getComputedStyle(flexitem, null).webkitAlignSelf', 'stretch');
</span><span class="cx"> 
</span><span class="cx"> flexbox.style.webkitAlignItems = 'foo';
</span><span class="cx"> shouldBeEqualToString('flexbox.style.webkitAlignItems', '');
</span><ins>+shouldBeEqualToString('flexitem.style.webkitAlignSelf', '');
+shouldBeEqualToString('window.getComputedStyle(flexbox, null).webkitAlignItems', 'stretch');
+shouldBeEqualToString('window.getComputedStyle(flexitem, null).webkitAlignSelf', 'stretch');
</ins><span class="cx"> 
</span><span class="cx"> flexbox.style.webkitAlignItems = 'auto';
</span><del>-shouldBeEqualToString('flexbox.style.webkitAlignItems', '');
</del><ins>+shouldBeEqualToString('flexbox.style.webkitAlignItems', 'auto');
+shouldBeEqualToString('flexitem.style.webkitAlignSelf', '');
</ins><span class="cx"> shouldBeEqualToString('window.getComputedStyle(flexbox, null).webkitAlignItems', 'stretch');
</span><span class="cx"> shouldBeEqualToString('window.getComputedStyle(flexitem, null).webkitAlignSelf', 'stretch');
</span><span class="cx"> 
</span><span class="cx"> flexbox.style.webkitAlignItems = 'flex-start';
</span><span class="cx"> shouldBeEqualToString('flexbox.style.webkitAlignItems', 'flex-start');
</span><ins>+shouldBeEqualToString('flexitem.style.webkitAlignSelf', '');
</ins><span class="cx"> shouldBeEqualToString('window.getComputedStyle(flexbox, null).webkitAlignItems', 'flex-start');
</span><span class="cx"> shouldBeEqualToString('window.getComputedStyle(flexitem, null).webkitAlignSelf', 'flex-start');
</span><span class="cx"> 
</span><span class="lines">@@ -160,8 +168,8 @@
</span><span class="cx"> 
</span><span class="cx"> flexbox.style.display = 'none';
</span><span class="cx"> shouldBeEqualToString('flexbox.style.webkitAlignItems', '');
</span><del>-shouldBeEqualToString('window.getComputedStyle(flexbox, null).webkitAlignItems', 'stretch');
-shouldBeEqualToString('window.getComputedStyle(flexitem, null).webkitAlignSelf', 'stretch');
</del><ins>+shouldBeEqualToString('window.getComputedStyle(flexbox, null).webkitAlignItems', 'start');
+shouldBeEqualToString('window.getComputedStyle(flexitem, null).webkitAlignSelf', 'start');
</ins><span class="cx"> flexbox.style.display = '';
</span><span class="cx"> 
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestscss3parsealignitemsexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/css3/parse-align-items-expected.txt (0 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/parse-align-items-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/css3/parse-align-items-expected.txt	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -0,0 +1,137 @@
</span><ins>+Test that setting and getting align-items works as expected
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+Test getting align-items set through CSS
+PASS getComputedStyle(alignItemsBaseline, '').getPropertyValue('-webkit-align-items') is 'baseline'
+PASS getComputedStyle(alignItemsLastBaseline, '').getPropertyValue('-webkit-align-items') is 'last-baseline'
+PASS getComputedStyle(alignItemsStretch, '').getPropertyValue('-webkit-align-items') is 'stretch'
+PASS getComputedStyle(alignItemsStart, '').getPropertyValue('-webkit-align-items') is 'start'
+PASS getComputedStyle(alignItemsEnd, '').getPropertyValue('-webkit-align-items') is 'end'
+PASS getComputedStyle(alignItemsCenter, '').getPropertyValue('-webkit-align-items') is 'center'
+PASS getComputedStyle(alignItemsSelfEnd, '').getPropertyValue('-webkit-align-items') is 'self-end'
+PASS getComputedStyle(alignItemsSelfStart, '').getPropertyValue('-webkit-align-items') is 'self-start'
+PASS getComputedStyle(alignItemsLeft, '').getPropertyValue('-webkit-align-items') is 'left'
+PASS getComputedStyle(alignItemsRight, '').getPropertyValue('-webkit-align-items') is 'right'
+PASS getComputedStyle(alignItemsFlexStart, '').getPropertyValue('-webkit-align-items') is 'flex-start'
+PASS getComputedStyle(alignItemsFlexEnd, '').getPropertyValue('-webkit-align-items') is 'flex-end'
+PASS getComputedStyle(alignItemsEndTrue, '').getPropertyValue('-webkit-align-items') is 'end true'
+PASS getComputedStyle(alignItemsCenterTrue, '').getPropertyValue('-webkit-align-items') is 'center true'
+PASS getComputedStyle(alignItemsSelfEndSafe, '').getPropertyValue('-webkit-align-items') is 'self-end safe'
+PASS getComputedStyle(alignItemsSelfStartSafe, '').getPropertyValue('-webkit-align-items') is 'self-start safe'
+PASS getComputedStyle(alignItemsRightSafe, '').getPropertyValue('-webkit-align-items') is 'right safe'
+PASS getComputedStyle(alignItemsLeftTrue, '').getPropertyValue('-webkit-align-items') is 'left true'
+PASS getComputedStyle(alignItemsFlexStartTrue, '').getPropertyValue('-webkit-align-items') is 'flex-start true'
+PASS getComputedStyle(alignItemsFlexEndSafe, '').getPropertyValue('-webkit-align-items') is 'flex-end safe'
+
+Test initial value of align-items through JS
+PASS getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is 'start'
+
+Test getting and setting align-items through JS
+PASS element.style.webkitAlignItems is &quot;center&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;center&quot;
+PASS element.style.webkitAlignItems is &quot;start true&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;start true&quot;
+PASS element.style.webkitAlignItems is &quot;flex-end safe&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;flex-end safe&quot;
+PASS element.style.webkitAlignItems is &quot;right&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;right&quot;
+PASS element.style.webkitAlignItems is &quot;center&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;center&quot;
+PASS element.style.webkitAlignItems is &quot;self-start&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;self-start&quot;
+PASS element.style.webkitAlignItems is &quot;auto&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;start&quot;
+PASS element.style.webkitAlignItems is &quot;auto&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;stretch&quot;
+PASS element.style.webkitAlignItems is &quot;auto&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;stretch&quot;
+PASS element.style.webkitAlignItems is &quot;self-end&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;self-end&quot;
+
+Test bad combinations of align-items
+PASS element.style.webkitAlignItems is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;start&quot;
+PASS element.style.webkitAlignItems is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;start&quot;
+PASS element.style.webkitAlignItems is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;start&quot;
+PASS element.style.webkitAlignItems is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;start&quot;
+PASS element.style.webkitAlignItems is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;start&quot;
+PASS element.style.webkitAlignItems is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;start&quot;
+PASS element.style.webkitAlignItems is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;start&quot;
+PASS element.style.webkitAlignItems is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;start&quot;
+PASS element.style.webkitAlignItems is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;start&quot;
+PASS element.style.webkitAlignItems is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;start&quot;
+PASS element.style.webkitAlignItems is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;start&quot;
+PASS element.style.webkitAlignItems is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;start&quot;
+PASS element.style.webkitAlignItems is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;start&quot;
+PASS element.style.webkitAlignItems is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;start&quot;
+PASS element.style.webkitAlignItems is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;start&quot;
+PASS element.style.webkitAlignItems is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;start&quot;
+PASS element.style.webkitAlignItems is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;start&quot;
+PASS element.style.webkitAlignItems is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;start&quot;
+PASS element.style.webkitAlignItems is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;start&quot;
+PASS element.style.webkitAlignItems is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;start&quot;
+PASS element.style.webkitAlignItems is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;start&quot;
+PASS element.style.webkitAlignItems is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;start&quot;
+PASS element.style.webkitAlignItems is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;start&quot;
+PASS element.style.webkitAlignItems is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;start&quot;
+
+Test the value 'initial'
+PASS element.style.webkitAlignItems is &quot;center&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;center&quot;
+PASS element.style.webkitAlignItems is &quot;initial&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;start&quot;
+
+Test the value 'initial' for grid containers
+PASS element.style.webkitAlignItems is &quot;left safe&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;left safe&quot;
+PASS element.style.webkitAlignItems is &quot;initial&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;stretch&quot;
+
+Test the value 'initial' for flex containers
+PASS element.style.webkitAlignItems is &quot;right true&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;right true&quot;
+PASS element.style.webkitAlignItems is &quot;initial&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;stretch&quot;
+
+Test the value 'inherit'
+PASS element.style.webkitAlignItems is &quot;end&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;end&quot;
+PASS element.style.webkitAlignItems is &quot;inherit&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;end&quot;
+PASS element.style.webkitAlignItems is &quot;left safe&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;left safe&quot;
+PASS element.style.webkitAlignItems is &quot;inherit&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;left safe&quot;
+PASS element.style.webkitAlignItems is &quot;center true&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;center true&quot;
+PASS element.style.webkitAlignItems is &quot;inherit&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-items') is &quot;center true&quot;
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscss3parsealignitemshtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/css3/parse-align-items.html (0 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/parse-align-items.html	                        (rev 0)
+++ trunk/LayoutTests/css3/parse-align-items.html	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -0,0 +1,270 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;style&gt;
+#alignItemsBaseline {
+    -webkit-align-items: baseline;
+}
+
+#alignItemsLastBaseline {
+    -webkit-align-items: last-baseline;
+}
+
+#alignItemsStretch {
+    -webkit-align-items: stretch;
+}
+
+#alignItemsStart {
+    -webkit-align-items: start;
+}
+
+#alignItemsEnd {
+    -webkit-align-items: end;
+}
+
+#alignItemsCenter {
+    -webkit-align-items: center;
+}
+
+#alignItemsSelfStart {
+    -webkit-align-items: self-start;
+}
+
+#alignItemsSelfEnd {
+    -webkit-align-items: self-end;
+}
+
+#alignItemsLeft {
+    -webkit-align-items: left;
+}
+
+#alignItemsRight {
+    -webkit-align-items: right;
+}
+
+#alignItemsFlexStart {
+    -webkit-align-items: flex-start;
+}
+
+#alignItemsFlexEnd {
+    -webkit-align-items: flex-end;
+}
+
+#alignItemsEndTrue {
+    -webkit-align-items: end true;
+}
+
+#alignItemsCenterTrue {
+    -webkit-align-items: center true;
+}
+
+#alignItemsSelfEndSafe {
+    -webkit-align-items: self-end safe;
+}
+
+#alignItemsSelfStartSafe {
+    -webkit-align-items: self-start safe;
+}
+
+#alignItemsRightSafe {
+    -webkit-align-items: right safe;
+}
+
+#alignItemsLeftTrue {
+    -webkit-align-items: left true;
+}
+
+#alignItemsFlexStartTrue {
+    -webkit-align-items: flex-start true;
+}
+
+#alignItemsFlexEndSafe {
+    -webkit-align-items: flex-end safe;
+}
+
+&lt;/style&gt;
+&lt;script src=&quot;../resources/js-test.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;div id=&quot;alignItemsBaseline&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignItemsLastBaseline&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignItemsStretch&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignItemsStart&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignItemsEnd&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignItemsCenter&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignItemsSelfStart&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignItemsSelfEnd&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignItemsLeft&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignItemsRight&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignItemsFlexStart&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignItemsFlexEnd&quot;&gt;&lt;/div&gt;
+
+&lt;div id=&quot;alignItemsEndTrue&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignItemsCenterTrue&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignItemsSelfEndSafe&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignItemsSelfStartSafe&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignItemsRightSafe&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignItemsLeftTrue&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignItemsFlexStartTrue&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignItemsFlexEndSafe&quot;&gt;&lt;/div&gt;
+&lt;script src=&quot;resources/alignment-parsing-utils.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+description('Test that setting and getting align-items works as expected');
+
+debug(&quot;Test getting align-items set through CSS&quot;);
+var alignItemsBaseline = document.getElementById(&quot;alignItemsBaseline&quot;);
+shouldBe(&quot;getComputedStyle(alignItemsBaseline, '').getPropertyValue('-webkit-align-items')&quot;, &quot;'baseline'&quot;);
+
+var alignItemsLastBaseline = document.getElementById(&quot;alignItemsLastBaseline&quot;);
+shouldBe(&quot;getComputedStyle(alignItemsLastBaseline, '').getPropertyValue('-webkit-align-items')&quot;, &quot;'last-baseline'&quot;);
+
+var alignItemsStretch = document.getElementById(&quot;alignItemsStretch&quot;);
+shouldBe(&quot;getComputedStyle(alignItemsStretch, '').getPropertyValue('-webkit-align-items')&quot;, &quot;'stretch'&quot;);
+
+var alignItemsStart = document.getElementById(&quot;alignItemsStart&quot;);
+shouldBe(&quot;getComputedStyle(alignItemsStart, '').getPropertyValue('-webkit-align-items')&quot;, &quot;'start'&quot;);
+
+var alignItemsEnd = document.getElementById(&quot;alignItemsEnd&quot;);
+shouldBe(&quot;getComputedStyle(alignItemsEnd, '').getPropertyValue('-webkit-align-items')&quot;, &quot;'end'&quot;);
+
+var alignItemsCenter = document.getElementById(&quot;alignItemsCenter&quot;);
+shouldBe(&quot;getComputedStyle(alignItemsCenter, '').getPropertyValue('-webkit-align-items')&quot;, &quot;'center'&quot;);
+
+var alignItemsSelfEnd = document.getElementById(&quot;alignItemsSelfEnd&quot;);
+shouldBe(&quot;getComputedStyle(alignItemsSelfEnd, '').getPropertyValue('-webkit-align-items')&quot;, &quot;'self-end'&quot;);
+
+var alignItemsSelfStart = document.getElementById(&quot;alignItemsSelfStart&quot;);
+shouldBe(&quot;getComputedStyle(alignItemsSelfStart, '').getPropertyValue('-webkit-align-items')&quot;, &quot;'self-start'&quot;);
+
+var alignItemsLeft = document.getElementById(&quot;alignItemsLeft&quot;);
+shouldBe(&quot;getComputedStyle(alignItemsLeft, '').getPropertyValue('-webkit-align-items')&quot;, &quot;'left'&quot;);
+
+var alignItemsRight = document.getElementById(&quot;alignItemsRight&quot;);
+shouldBe(&quot;getComputedStyle(alignItemsRight, '').getPropertyValue('-webkit-align-items')&quot;, &quot;'right'&quot;);
+
+var alignItemsFlexStart = document.getElementById(&quot;alignItemsFlexStart&quot;);
+shouldBe(&quot;getComputedStyle(alignItemsFlexStart, '').getPropertyValue('-webkit-align-items')&quot;, &quot;'flex-start'&quot;);
+
+var alignItemsFlexEnd = document.getElementById(&quot;alignItemsFlexEnd&quot;);
+shouldBe(&quot;getComputedStyle(alignItemsFlexEnd, '').getPropertyValue('-webkit-align-items')&quot;, &quot;'flex-end'&quot;);
+
+var alignItemsEndTrue = document.getElementById(&quot;alignItemsEndTrue&quot;);
+shouldBe(&quot;getComputedStyle(alignItemsEndTrue, '').getPropertyValue('-webkit-align-items')&quot;, &quot;'end true'&quot;);
+
+var alignItemsCenterTrue = document.getElementById(&quot;alignItemsCenterTrue&quot;);
+shouldBe(&quot;getComputedStyle(alignItemsCenterTrue, '').getPropertyValue('-webkit-align-items')&quot;, &quot;'center true'&quot;);
+
+var alignItemsSelfEndSafe = document.getElementById(&quot;alignItemsSelfEndSafe&quot;);
+shouldBe(&quot;getComputedStyle(alignItemsSelfEndSafe, '').getPropertyValue('-webkit-align-items')&quot;, &quot;'self-end safe'&quot;);
+
+var alignItemsSelfStartSafe = document.getElementById(&quot;alignItemsSelfStartSafe&quot;);
+shouldBe(&quot;getComputedStyle(alignItemsSelfStartSafe, '').getPropertyValue('-webkit-align-items')&quot;, &quot;'self-start safe'&quot;);
+
+var alignItemsRightSafe = document.getElementById(&quot;alignItemsRightSafe&quot;);
+shouldBe(&quot;getComputedStyle(alignItemsRightSafe, '').getPropertyValue('-webkit-align-items')&quot;, &quot;'right safe'&quot;);
+
+var alignItemsLeftTrue = document.getElementById(&quot;alignItemsLeftTrue&quot;);
+shouldBe(&quot;getComputedStyle(alignItemsLeftTrue, '').getPropertyValue('-webkit-align-items')&quot;, &quot;'left true'&quot;);
+
+var alignItemsFlexStartTrue = document.getElementById(&quot;alignItemsFlexStartTrue&quot;);
+shouldBe(&quot;getComputedStyle(alignItemsFlexStartTrue, '').getPropertyValue('-webkit-align-items')&quot;, &quot;'flex-start true'&quot;);
+
+var alignItemsFlexEndSafe = document.getElementById(&quot;alignItemsFlexEndSafe&quot;);
+shouldBe(&quot;getComputedStyle(alignItemsFlexEndSafe, '').getPropertyValue('-webkit-align-items')&quot;, &quot;'flex-end safe'&quot;);
+
+debug(&quot;&quot;);
+debug(&quot;Test initial value of align-items through JS&quot;);
+element = document.createElement(&quot;div&quot;);
+document.body.appendChild(element);
+shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('-webkit-align-items')&quot;, &quot;'start'&quot;);
+
+debug(&quot;&quot;);
+debug(&quot;Test getting and setting align-items through JS&quot;);
+element = document.createElement(&quot;div&quot;);
+document.body.appendChild(element);
+element.style.webkitAlignItems = &quot;center&quot;;
+checkValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;center&quot;, &quot;center&quot;);
+
+element.style.webkitAlignItems = &quot;true start&quot;;
+checkValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;start true&quot;, &quot;start true&quot;);
+
+element.style.webkitAlignItems = &quot;flex-end safe&quot;;
+checkValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;flex-end safe&quot;, &quot;flex-end safe&quot;);
+
+element.style.webkitAlignItems = &quot;right&quot;;
+checkValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;right&quot;, &quot;right&quot;);
+
+element.style.webkitAlignItems = &quot;center&quot;;
+checkValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;center&quot;, &quot;center&quot;);
+
+element.style.webkitAlignItems = &quot;self-start&quot;;
+checkValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;self-start&quot;, &quot;self-start&quot;);
+
+element.style.webkitAlignItems = &quot;auto&quot;;
+checkValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;auto&quot;, &quot;start&quot;);
+
+element.style.display = &quot;-webkit-flex&quot;;
+element.style.webkitAlignItems = &quot;auto&quot;;
+checkValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;auto&quot;, &quot;stretch&quot;);
+
+element.style.display = &quot;-webkit-grid&quot;;
+element.style.webkitAlignItems = &quot;auto&quot;;
+checkValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;auto&quot;, &quot;stretch&quot;);
+
+element.style.webkitAlignItems = &quot;self-end&quot;;
+checkValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;self-end&quot;, &quot;self-end&quot;);
+
+debug(&quot;&quot;);
+debug(&quot;Test bad combinations of align-items&quot;);
+element = document.createElement(&quot;div&quot;);
+document.body.appendChild(element);
+
+checkBadValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;true auto&quot;);
+checkBadValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;auto safe&quot;);
+checkBadValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;auto left&quot;);
+checkBadValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;baseline safe&quot;);
+checkBadValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;baseline center&quot;);
+checkBadValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;stretch true&quot;);
+checkBadValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;stretch right&quot;);
+checkBadValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;true true&quot;);
+checkBadValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;true safe&quot;);
+checkBadValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;center start&quot;);
+checkBadValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;stretch true&quot;);
+checkBadValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;safe stretch&quot;);
+checkBadValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;baseline safe&quot;);
+checkBadValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;true baseline&quot;);
+checkBadValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;true safe left&quot;);
+checkBadValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;true left safe&quot;);
+checkBadValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;left safe true safe&quot;);
+checkBadValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;legacy start&quot;);
+checkBadValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;legacy end&quot;);
+checkBadValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;legacy right true&quot;);
+checkBadValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;legacy auto&quot;);
+checkBadValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;legacy stretch&quot;);
+checkBadValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;legacy&quot;);
+checkBadValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;,  &quot;legacy left right&quot;);
+
+debug(&quot;&quot;);
+debug(&quot;Test the value 'initial'&quot;);
+element.style.display = &quot;&quot;;
+checkInitialValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;, &quot;center&quot;, &quot;start&quot;);
+
+debug(&quot;&quot;);
+debug(&quot;Test the value 'initial' for grid containers&quot;);
+element.style.display = &quot;-webkit-grid&quot;;
+checkInitialValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;, &quot;left safe&quot;, &quot;stretch&quot;);
+
+debug(&quot;&quot;);
+debug(&quot;Test the value 'initial' for flex containers&quot;);
+element.style.display = &quot;-webkit-flex&quot;;
+checkInitialValues(element, &quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;, &quot;right true&quot;, &quot;stretch&quot;);
+
+debug(&quot;&quot;);
+debug(&quot;Test the value 'inherit'&quot;);
+checkInheritValues(&quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;, &quot;end&quot;);
+checkInheritValues(&quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;, &quot;left safe&quot;);
+checkInheritValues(&quot;webkitAlignItems&quot;, &quot;-webkit-align-items&quot;, &quot;center true&quot;);
+
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscss3parsealignselfexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/css3/parse-align-self-expected.txt (0 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/parse-align-self-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/css3/parse-align-self-expected.txt	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -0,0 +1,155 @@
</span><ins>+Test that setting and getting align-self works as expected
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+Test getting align-self set through CSS
+PASS getComputedStyle(alignSelfBaseline, '').getPropertyValue('-webkit-align-self') is 'baseline'
+PASS getComputedStyle(alignSelfLastBaseline, '').getPropertyValue('-webkit-align-self') is 'last-baseline'
+PASS getComputedStyle(alignSelfStretch, '').getPropertyValue('-webkit-align-self') is 'stretch'
+PASS getComputedStyle(alignSelfStart, '').getPropertyValue('-webkit-align-self') is 'start'
+PASS getComputedStyle(alignSelfEnd, '').getPropertyValue('-webkit-align-self') is 'end'
+PASS getComputedStyle(alignSelfCenter, '').getPropertyValue('-webkit-align-self') is 'center'
+PASS getComputedStyle(alignSelfSelfEnd, '').getPropertyValue('-webkit-align-self') is 'self-end'
+PASS getComputedStyle(alignSelfSelfStart, '').getPropertyValue('-webkit-align-self') is 'self-start'
+PASS getComputedStyle(alignSelfLeft, '').getPropertyValue('-webkit-align-self') is 'left'
+PASS getComputedStyle(alignSelfRight, '').getPropertyValue('-webkit-align-self') is 'right'
+PASS getComputedStyle(alignSelfFlexStart, '').getPropertyValue('-webkit-align-self') is 'flex-start'
+PASS getComputedStyle(alignSelfFlexEnd, '').getPropertyValue('-webkit-align-self') is 'flex-end'
+PASS getComputedStyle(alignSelfEndTrue, '').getPropertyValue('-webkit-align-self') is 'end true'
+PASS getComputedStyle(alignSelfCenterTrue, '').getPropertyValue('-webkit-align-self') is 'center true'
+PASS getComputedStyle(alignSelfSelfEndSafe, '').getPropertyValue('-webkit-align-self') is 'self-end safe'
+PASS getComputedStyle(alignSelfSelfStartSafe, '').getPropertyValue('-webkit-align-self') is 'self-start safe'
+PASS getComputedStyle(alignSelfRightSafe, '').getPropertyValue('-webkit-align-self') is 'right safe'
+PASS getComputedStyle(alignSelfLeftTrue, '').getPropertyValue('-webkit-align-self') is 'left true'
+PASS getComputedStyle(alignSelfFlexStartTrue, '').getPropertyValue('-webkit-align-self') is 'flex-start true'
+PASS getComputedStyle(alignSelfFlexEndSafe, '').getPropertyValue('-webkit-align-self') is 'flex-end safe'
+
+Test initial value of align-self through JS
+PASS getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is 'start'
+
+Test getting and setting align-self through JS
+PASS element.style.webkitAlignSelf is &quot;center&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;center&quot;
+PASS element.style.webkitAlignSelf is &quot;start true&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;start true&quot;
+PASS element.style.webkitAlignSelf is &quot;flex-end safe&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;flex-end safe&quot;
+PASS element.style.webkitAlignSelf is &quot;right&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;right&quot;
+PASS element.style.webkitAlignSelf is &quot;center&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;center&quot;
+PASS element.style.webkitAlignSelf is &quot;self-start&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;self-start&quot;
+PASS element.style.webkitAlignSelf is &quot;auto&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;start&quot;
+PASS element.style.webkitAlignSelf is &quot;auto&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;stretch&quot;
+PASS element.style.webkitAlignSelf is &quot;auto&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;stretch&quot;
+PASS element.style.webkitAlignSelf is &quot;self-end&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;self-end&quot;
+
+Test bad combinations of align-self
+PASS element.style.webkitAlignSelf is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;start&quot;
+PASS element.style.webkitAlignSelf is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;start&quot;
+PASS element.style.webkitAlignSelf is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;start&quot;
+PASS element.style.webkitAlignSelf is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;start&quot;
+PASS element.style.webkitAlignSelf is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;start&quot;
+PASS element.style.webkitAlignSelf is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;start&quot;
+PASS element.style.webkitAlignSelf is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;start&quot;
+PASS element.style.webkitAlignSelf is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;start&quot;
+PASS element.style.webkitAlignSelf is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;start&quot;
+PASS element.style.webkitAlignSelf is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;start&quot;
+PASS element.style.webkitAlignSelf is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;start&quot;
+PASS element.style.webkitAlignSelf is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;start&quot;
+PASS element.style.webkitAlignSelf is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;start&quot;
+PASS element.style.webkitAlignSelf is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;start&quot;
+PASS element.style.webkitAlignSelf is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;start&quot;
+PASS element.style.webkitAlignSelf is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;start&quot;
+PASS element.style.webkitAlignSelf is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;start&quot;
+PASS element.style.webkitAlignSelf is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;start&quot;
+PASS element.style.webkitAlignSelf is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;start&quot;
+PASS element.style.webkitAlignSelf is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;start&quot;
+PASS element.style.webkitAlignSelf is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;start&quot;
+PASS element.style.webkitAlignSelf is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;start&quot;
+PASS element.style.webkitAlignSelf is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;start&quot;
+PASS element.style.webkitAlignSelf is &quot;&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;start&quot;
+
+Test the value 'initial'
+PASS element.style.webkitAlignSelf is &quot;center&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;center&quot;
+PASS element.style.webkitAlignSelf is &quot;initial&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;start&quot;
+
+Test the value 'initial' for grid containers
+PASS element.style.webkitAlignSelf is &quot;left safe&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;left safe&quot;
+PASS element.style.webkitAlignSelf is &quot;initial&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;stretch&quot;
+
+Test the value 'initial' for flex containers
+PASS element.style.webkitAlignSelf is &quot;right true&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;right true&quot;
+PASS element.style.webkitAlignSelf is &quot;initial&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;stretch&quot;
+
+Test the value 'initial' for positioned elements
+PASS element.style.webkitAlignSelf is &quot;left&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;left&quot;
+PASS element.style.webkitAlignSelf is &quot;initial&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;stretch&quot;
+
+Test the value 'initial' for positioned elements in grid containers
+PASS element.style.webkitAlignSelf is &quot;right&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;right&quot;
+PASS element.style.webkitAlignSelf is &quot;initial&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;stretch&quot;
+
+Test the value 'initial' for positioned elements in grid containers
+PASS element.style.webkitAlignSelf is &quot;end&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;end&quot;
+PASS element.style.webkitAlignSelf is &quot;initial&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;stretch&quot;
+
+Test the value 'inherit'
+PASS element.style.webkitAlignSelf is &quot;end&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;end&quot;
+PASS element.style.webkitAlignSelf is &quot;inherit&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;end&quot;
+PASS element.style.webkitAlignSelf is &quot;left safe&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;left safe&quot;
+PASS element.style.webkitAlignSelf is &quot;inherit&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;left safe&quot;
+PASS element.style.webkitAlignSelf is &quot;center true&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;center true&quot;
+PASS element.style.webkitAlignSelf is &quot;inherit&quot;
+PASS window.getComputedStyle(element, '').getPropertyValue('-webkit-align-self') is &quot;center true&quot;
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscss3parsealignselfhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/css3/parse-align-self.html (0 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/parse-align-self.html	                        (rev 0)
+++ trunk/LayoutTests/css3/parse-align-self.html	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -0,0 +1,291 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;style&gt;
+#alignSelfBaseline {
+    -webkit-align-self: baseline;
+}
+
+#alignSelfLastBaseline {
+    -webkit-align-self: last-baseline;
+}
+
+#alignSelfStretch {
+    -webkit-align-self: stretch;
+}
+
+#alignSelfStart {
+    -webkit-align-self: start;
+}
+
+#alignSelfEnd {
+    -webkit-align-self: end;
+}
+
+#alignSelfCenter {
+    -webkit-align-self: center;
+}
+
+#alignSelfSelfStart {
+    -webkit-align-self: self-start;
+}
+
+#alignSelfSelfEnd {
+    -webkit-align-self: self-end;
+}
+
+#alignSelfLeft {
+    -webkit-align-self: left;
+}
+
+#alignSelfRight {
+    -webkit-align-self: right;
+}
+
+#alignSelfFlexStart {
+    -webkit-align-self: flex-start;
+}
+
+#alignSelfFlexEnd {
+    -webkit-align-self: flex-end;
+}
+
+#alignSelfEndTrue {
+    -webkit-align-self: end true;
+}
+
+#alignSelfCenterTrue {
+    -webkit-align-self: center true;
+}
+
+#alignSelfSelfEndSafe {
+    -webkit-align-self: self-end safe;
+}
+
+#alignSelfSelfStartSafe {
+    -webkit-align-self: self-start safe;
+}
+
+#alignSelfRightSafe {
+    -webkit-align-self: right safe;
+}
+
+#alignSelfLeftTrue {
+    -webkit-align-self: left true;
+}
+
+#alignSelfFlexStartTrue {
+    -webkit-align-self: flex-start true;
+}
+
+#alignSelfFlexEndSafe {
+    -webkit-align-self: flex-end safe;
+}
+&lt;/style&gt;
+&lt;script src=&quot;../resources/js-test.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;div id=&quot;alignSelfBaseline&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignSelfLastBaseline&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignSelfStretch&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignSelfStart&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignSelfEnd&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignSelfCenter&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignSelfSelfStart&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignSelfSelfEnd&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignSelfLeft&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignSelfRight&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignSelfFlexStart&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignSelfFlexEnd&quot;&gt;&lt;/div&gt;
+
+&lt;div id=&quot;alignSelfEndTrue&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignSelfCenterTrue&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignSelfSelfEndSafe&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignSelfSelfStartSafe&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignSelfRightSafe&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignSelfLeftTrue&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignSelfFlexStartTrue&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;alignSelfFlexEndSafe&quot;&gt;&lt;/div&gt;
+&lt;script src=&quot;resources/alignment-parsing-utils.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+description('Test that setting and getting align-self works as expected');
+
+debug(&quot;Test getting align-self set through CSS&quot;);
+var alignSelfBaseline = document.getElementById(&quot;alignSelfBaseline&quot;);
+shouldBe(&quot;getComputedStyle(alignSelfBaseline, '').getPropertyValue('-webkit-align-self')&quot;, &quot;'baseline'&quot;);
+
+var alignSelfLastBaseline = document.getElementById(&quot;alignSelfLastBaseline&quot;);
+shouldBe(&quot;getComputedStyle(alignSelfLastBaseline, '').getPropertyValue('-webkit-align-self')&quot;, &quot;'last-baseline'&quot;);
+
+var alignSelfStretch = document.getElementById(&quot;alignSelfStretch&quot;);
+shouldBe(&quot;getComputedStyle(alignSelfStretch, '').getPropertyValue('-webkit-align-self')&quot;, &quot;'stretch'&quot;);
+
+var alignSelfStart = document.getElementById(&quot;alignSelfStart&quot;);
+shouldBe(&quot;getComputedStyle(alignSelfStart, '').getPropertyValue('-webkit-align-self')&quot;, &quot;'start'&quot;);
+
+var alignSelfEnd = document.getElementById(&quot;alignSelfEnd&quot;);
+shouldBe(&quot;getComputedStyle(alignSelfEnd, '').getPropertyValue('-webkit-align-self')&quot;, &quot;'end'&quot;);
+
+var alignSelfCenter = document.getElementById(&quot;alignSelfCenter&quot;);
+shouldBe(&quot;getComputedStyle(alignSelfCenter, '').getPropertyValue('-webkit-align-self')&quot;, &quot;'center'&quot;);
+
+var alignSelfSelfEnd = document.getElementById(&quot;alignSelfSelfEnd&quot;);
+shouldBe(&quot;getComputedStyle(alignSelfSelfEnd, '').getPropertyValue('-webkit-align-self')&quot;, &quot;'self-end'&quot;);
+
+var alignSelfSelfStart = document.getElementById(&quot;alignSelfSelfStart&quot;);
+shouldBe(&quot;getComputedStyle(alignSelfSelfStart, '').getPropertyValue('-webkit-align-self')&quot;, &quot;'self-start'&quot;);
+
+var alignSelfLeft = document.getElementById(&quot;alignSelfLeft&quot;);
+shouldBe(&quot;getComputedStyle(alignSelfLeft, '').getPropertyValue('-webkit-align-self')&quot;, &quot;'left'&quot;);
+
+var alignSelfRight = document.getElementById(&quot;alignSelfRight&quot;);
+shouldBe(&quot;getComputedStyle(alignSelfRight, '').getPropertyValue('-webkit-align-self')&quot;, &quot;'right'&quot;);
+
+var alignSelfFlexStart = document.getElementById(&quot;alignSelfFlexStart&quot;);
+shouldBe(&quot;getComputedStyle(alignSelfFlexStart, '').getPropertyValue('-webkit-align-self')&quot;, &quot;'flex-start'&quot;);
+
+var alignSelfFlexEnd = document.getElementById(&quot;alignSelfFlexEnd&quot;);
+shouldBe(&quot;getComputedStyle(alignSelfFlexEnd, '').getPropertyValue('-webkit-align-self')&quot;, &quot;'flex-end'&quot;);
+
+var alignSelfEndTrue = document.getElementById(&quot;alignSelfEndTrue&quot;);
+shouldBe(&quot;getComputedStyle(alignSelfEndTrue, '').getPropertyValue('-webkit-align-self')&quot;, &quot;'end true'&quot;);
+
+var alignSelfCenterTrue = document.getElementById(&quot;alignSelfCenterTrue&quot;);
+shouldBe(&quot;getComputedStyle(alignSelfCenterTrue, '').getPropertyValue('-webkit-align-self')&quot;, &quot;'center true'&quot;);
+
+var alignSelfSelfEndSafe = document.getElementById(&quot;alignSelfSelfEndSafe&quot;);
+shouldBe(&quot;getComputedStyle(alignSelfSelfEndSafe, '').getPropertyValue('-webkit-align-self')&quot;, &quot;'self-end safe'&quot;);
+
+var alignSelfSelfStartSafe = document.getElementById(&quot;alignSelfSelfStartSafe&quot;);
+shouldBe(&quot;getComputedStyle(alignSelfSelfStartSafe, '').getPropertyValue('-webkit-align-self')&quot;, &quot;'self-start safe'&quot;);
+
+var alignSelfRightSafe = document.getElementById(&quot;alignSelfRightSafe&quot;);
+shouldBe(&quot;getComputedStyle(alignSelfRightSafe, '').getPropertyValue('-webkit-align-self')&quot;, &quot;'right safe'&quot;);
+
+var alignSelfLeftTrue = document.getElementById(&quot;alignSelfLeftTrue&quot;);
+shouldBe(&quot;getComputedStyle(alignSelfLeftTrue, '').getPropertyValue('-webkit-align-self')&quot;, &quot;'left true'&quot;);
+
+var alignSelfFlexStartTrue = document.getElementById(&quot;alignSelfFlexStartTrue&quot;);
+shouldBe(&quot;getComputedStyle(alignSelfFlexStartTrue, '').getPropertyValue('-webkit-align-self')&quot;, &quot;'flex-start true'&quot;);
+
+var alignSelfFlexEndSafe = document.getElementById(&quot;alignSelfFlexEndSafe&quot;);
+shouldBe(&quot;getComputedStyle(alignSelfFlexEndSafe, '').getPropertyValue('-webkit-align-self')&quot;, &quot;'flex-end safe'&quot;);
+
+debug(&quot;&quot;);
+debug(&quot;Test initial value of align-self through JS&quot;);
+element = document.createElement(&quot;div&quot;);
+document.body.appendChild(element);
+shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('-webkit-align-self')&quot;, &quot;'start'&quot;);
+
+debug(&quot;&quot;);
+debug(&quot;Test getting and setting align-self through JS&quot;);
+container = document.createElement(&quot;div&quot;);
+element = document.createElement(&quot;div&quot;);
+container.appendChild(element);
+document.body.appendChild(container);
+element.style.webkitAlignSelf = &quot;center&quot;;
+checkValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;center&quot;, &quot;center&quot;);
+
+element.style.webkitAlignSelf = &quot;true start&quot;;
+checkValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;start true&quot;, &quot;start true&quot;);
+
+element.style.webkitAlignSelf = &quot;flex-end safe&quot;;
+checkValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;flex-end safe&quot;, &quot;flex-end safe&quot;);
+
+element.style.webkitAlignSelf = &quot;right&quot;;
+checkValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;right&quot;, &quot;right&quot;);
+
+element.style.webkitAlignSelf = &quot;center&quot;;
+checkValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;center&quot;, &quot;center&quot;);
+
+element.style.webkitAlignSelf = &quot;self-start&quot;;
+checkValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;self-start&quot;, &quot;self-start&quot;);
+
+element.style.webkitAlignSelf = &quot;auto&quot;;
+checkValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;auto&quot;, &quot;start&quot;);
+
+container.style.display = &quot;-webkit-flex&quot;;
+element.style.webkitAlignSelf = &quot;auto&quot;;
+checkValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;auto&quot;, &quot;stretch&quot;);
+
+container.style.display = &quot;-webkit-grid&quot;;
+element.style.webkitAlignSelf = &quot;auto&quot;;
+checkValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;auto&quot;, &quot;stretch&quot;);
+
+element.style.webkitAlignSelf = &quot;self-end&quot;;
+checkValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;self-end&quot;, &quot;self-end&quot;);
+
+debug(&quot;&quot;);
+debug(&quot;Test bad combinations of align-self&quot;);
+container = document.createElement(&quot;div&quot;);
+element = document.createElement(&quot;div&quot;);
+container.appendChild(element);
+document.body.appendChild(container);
+
+checkBadValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;true auto&quot;);
+checkBadValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;auto safe&quot;);
+checkBadValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;auto left&quot;);
+checkBadValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;baseline safe&quot;);
+checkBadValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;baseline center&quot;);
+checkBadValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;stretch true&quot;);
+checkBadValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;stretch right&quot;);
+checkBadValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;true true&quot;);
+checkBadValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;true safe&quot;);
+checkBadValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;center start&quot;);
+checkBadValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;stretch true&quot;);
+checkBadValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;safe stretch&quot;);
+checkBadValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;baseline safe&quot;);
+checkBadValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;true baseline&quot;);
+checkBadValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;true safe left&quot;);
+checkBadValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;true left safe&quot;);
+checkBadValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;left safe true safe&quot;);
+checkBadValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;legacy start&quot;);
+checkBadValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;legacy end&quot;);
+checkBadValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;legacy right true&quot;);
+checkBadValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;legacy auto&quot;);
+checkBadValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;legacy stretch&quot;);
+checkBadValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;legacy&quot;);
+checkBadValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;,  &quot;legacy left right&quot;);
+
+debug(&quot;&quot;);
+debug(&quot;Test the value 'initial'&quot;);
+container.style.display = &quot;&quot;;
+checkInitialValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;, &quot;center&quot;, &quot;start&quot;);
+
+debug(&quot;&quot;);
+debug(&quot;Test the value 'initial' for grid containers&quot;);
+container.style.display = &quot;-webkit-grid&quot;;
+checkInitialValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;, &quot;left safe&quot;, &quot;stretch&quot;);
+
+debug(&quot;&quot;);
+debug(&quot;Test the value 'initial' for flex containers&quot;);
+container.style.display = &quot;-webkit-flex&quot;;
+checkInitialValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;, &quot;right true&quot;, &quot;stretch&quot;);
+
+debug(&quot;&quot;);
+debug(&quot;Test the value 'initial' for positioned elements&quot;);
+container.style.display = &quot;&quot;;
+element.style.position = &quot;absolute&quot;;
+checkInitialValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;, &quot;left&quot;, &quot;stretch&quot;);
+
+debug(&quot;&quot;);
+debug(&quot;Test the value 'initial' for positioned elements in grid containers&quot;);
+container.style.display = &quot;-webkit-grid&quot;;
+element.style.position = &quot;absolute&quot;;
+checkInitialValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;, &quot;right&quot;, &quot;stretch&quot;);
+
+debug(&quot;&quot;);
+debug(&quot;Test the value 'initial' for positioned elements in grid containers&quot;);
+container.style.display = &quot;-webkit-flex&quot;;
+element.style.position = &quot;absolute&quot;;
+checkInitialValues(element, &quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;, &quot;end&quot;, &quot;stretch&quot;);
+
+debug(&quot;&quot;);
+debug(&quot;Test the value 'inherit'&quot;);
+checkInheritValues(&quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;, &quot;end&quot;);
+checkInheritValues(&quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;, &quot;left safe&quot;);
+checkInheritValues(&quot;webkitAlignSelf&quot;, &quot;-webkit-align-self&quot;, &quot;center true&quot;);
+
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscss3resourcesalignmentparsingutilsjs"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/css3/resources/alignment-parsing-utils.js (0 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/resources/alignment-parsing-utils.js	                        (rev 0)
+++ trunk/LayoutTests/css3/resources/alignment-parsing-utils.js	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -0,0 +1,46 @@
</span><ins>+function checkValues(element, property, propertyID, value, computedValue)
+{
+    window.element = element;
+    var elementID = element.id || &quot;element&quot;;
+    shouldBeEqualToString(&quot;element.style.&quot; + property, value);
+    shouldBeEqualToString(&quot;window.getComputedStyle(&quot; + elementID + &quot;, '').getPropertyValue('&quot; + propertyID + &quot;')&quot;, computedValue);
+}
+
+function checkBadValues(element, property, propertyID, value)
+{
+    element.style[property] = value;
+    checkValues(element, property, propertyID, &quot;&quot;, &quot;start&quot;);
+}
+
+function checkInitialValues(element, property, propertyID, value, initial)
+{
+    element.style[property] = value;
+    checkValues(element, property, propertyID, value, value);
+    element.style[property] = &quot;initial&quot;;
+    checkValues(element, property, propertyID, &quot;initial&quot;, initial);
+}
+
+function checkInheritValues(property, propertyID, value)
+{
+    var parentElement = document.createElement(&quot;div&quot;);
+    document.body.appendChild(parentElement);
+    parentElement.style[property] = value;
+    checkValues(parentElement, property, propertyID, value, value);
+
+    var element = document.createElement(&quot;div&quot;);
+    parentElement.appendChild(element);
+    element.style[property] = &quot;inherit&quot;;
+    checkValues(element, property, propertyID, &quot;inherit&quot;, value);
+}
+
+function checkLegacyValues(property, propertyID, value)
+{
+    var parentElement = document.createElement(&quot;div&quot;);
+    document.body.appendChild(parentElement);
+    parentElement.style[property] = value;
+    checkValues(parentElement, property, propertyID, value, value);
+
+    var element = document.createElement(&quot;div&quot;);
+    parentElement.appendChild(element);
+    checkValues(element, property, propertyID, &quot;&quot;, value);
+}
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcssgetComputedStylecomputedstyleexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css/getComputedStyle/computed-style-expected.txt (176217 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/getComputedStyle/computed-style-expected.txt	2014-11-17 19:48:47 UTC (rev 176217)
+++ trunk/LayoutTests/fast/css/getComputedStyle/computed-style-expected.txt	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -144,11 +144,12 @@
</span><span class="cx"> column-span: none;
</span><span class="cx"> column-width: auto;
</span><span class="cx"> align-content: stretch;
</span><del>-align-items: stretch;
-align-self: stretch;
</del><ins>+align-items: start;
+align-self: start;
</ins><span class="cx"> flex-direction: row;
</span><span class="cx"> flex-wrap: nowrap;
</span><span class="cx"> justify-content: flex-start;
</span><ins>+justify-self: auto;
</ins><span class="cx"> -webkit-font-kerning: auto;
</span><span class="cx"> -webkit-font-smoothing: auto;
</span><span class="cx"> -webkit-font-variant-ligatures: normal;
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssgetComputedStylecomputedstylewithoutrendererexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt (176217 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt	2014-11-17 19:48:47 UTC (rev 176217)
+++ trunk/LayoutTests/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -143,11 +143,12 @@
</span><span class="cx"> column-span: none
</span><span class="cx"> column-width: auto
</span><span class="cx"> align-content: stretch
</span><del>-align-items: stretch
-align-self: stretch
</del><ins>+align-items: start
+align-self: start
</ins><span class="cx"> flex-direction: row
</span><span class="cx"> flex-wrap: nowrap
</span><span class="cx"> justify-content: flex-start
</span><ins>+justify-self: auto
</ins><span class="cx"> -webkit-font-kerning: auto
</span><span class="cx"> -webkit-font-smoothing: auto
</span><span class="cx"> -webkit-font-variant-ligatures: normal
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssgetComputedStyleresourcespropertynamesjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css/getComputedStyle/resources/property-names.js (176217 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/getComputedStyle/resources/property-names.js	2014-11-17 19:48:47 UTC (rev 176217)
+++ trunk/LayoutTests/fast/css/getComputedStyle/resources/property-names.js	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -65,6 +65,7 @@
</span><span class="cx">     &quot;-webkit-hyphenate-limit-lines&quot;: true,
</span><span class="cx">     &quot;-webkit-hyphens&quot;: true,
</span><span class="cx">     &quot;justify-content&quot;: true,
</span><ins>+    &quot;justify-self&quot;: true,
</ins><span class="cx">     &quot;-webkit-line-align&quot;: true,
</span><span class="cx">     &quot;-webkit-line-box-contain&quot;: true,
</span><span class="cx">     &quot;-webkit-line-break&quot;: true,
</span></span></pre></div>
<a id="trunkLayoutTestssvgcssgetComputedStylebasicexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/svg/css/getComputedStyle-basic-expected.txt (176217 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/css/getComputedStyle-basic-expected.txt	2014-11-17 19:48:47 UTC (rev 176217)
+++ trunk/LayoutTests/svg/css/getComputedStyle-basic-expected.txt	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -286,16 +286,18 @@
</span><span class="cx"> rect: style.getPropertyCSSValue(column-width) : [object CSSPrimitiveValue]
</span><span class="cx"> rect: style.getPropertyValue(align-content) : stretch
</span><span class="cx"> rect: style.getPropertyCSSValue(align-content) : [object CSSPrimitiveValue]
</span><del>-rect: style.getPropertyValue(align-items) : stretch
-rect: style.getPropertyCSSValue(align-items) : [object CSSPrimitiveValue]
-rect: style.getPropertyValue(align-self) : stretch
-rect: style.getPropertyCSSValue(align-self) : [object CSSPrimitiveValue]
</del><ins>+rect: style.getPropertyValue(align-items) : start
+rect: style.getPropertyCSSValue(align-items) : [object CSSValueList]
+rect: style.getPropertyValue(align-self) : start
+rect: style.getPropertyCSSValue(align-self) : [object CSSValueList]
</ins><span class="cx"> rect: style.getPropertyValue(flex-direction) : row
</span><span class="cx"> rect: style.getPropertyCSSValue(flex-direction) : [object CSSPrimitiveValue]
</span><span class="cx"> rect: style.getPropertyValue(flex-wrap) : nowrap
</span><span class="cx"> rect: style.getPropertyCSSValue(flex-wrap) : [object CSSPrimitiveValue]
</span><span class="cx"> rect: style.getPropertyValue(justify-content) : flex-start
</span><span class="cx"> rect: style.getPropertyCSSValue(justify-content) : [object CSSPrimitiveValue]
</span><ins>+rect: style.getPropertyValue(justify-self) : auto
+rect: style.getPropertyCSSValue(justify-self) : [object CSSValueList]
</ins><span class="cx"> rect: style.getPropertyValue(-webkit-font-kerning) : auto
</span><span class="cx"> rect: style.getPropertyCSSValue(-webkit-font-kerning) : [object CSSPrimitiveValue]
</span><span class="cx"> rect: style.getPropertyValue(-webkit-font-smoothing) : auto
</span><span class="lines">@@ -798,16 +800,18 @@
</span><span class="cx"> g: style.getPropertyCSSValue(column-width) : [object CSSPrimitiveValue]
</span><span class="cx"> g: style.getPropertyValue(align-content) : stretch
</span><span class="cx"> g: style.getPropertyCSSValue(align-content) : [object CSSPrimitiveValue]
</span><del>-g: style.getPropertyValue(align-items) : stretch
-g: style.getPropertyCSSValue(align-items) : [object CSSPrimitiveValue]
-g: style.getPropertyValue(align-self) : stretch
-g: style.getPropertyCSSValue(align-self) : [object CSSPrimitiveValue]
</del><ins>+g: style.getPropertyValue(align-items) : start
+g: style.getPropertyCSSValue(align-items) : [object CSSValueList]
+g: style.getPropertyValue(align-self) : start
+g: style.getPropertyCSSValue(align-self) : [object CSSValueList]
</ins><span class="cx"> g: style.getPropertyValue(flex-direction) : row
</span><span class="cx"> g: style.getPropertyCSSValue(flex-direction) : [object CSSPrimitiveValue]
</span><span class="cx"> g: style.getPropertyValue(flex-wrap) : nowrap
</span><span class="cx"> g: style.getPropertyCSSValue(flex-wrap) : [object CSSPrimitiveValue]
</span><span class="cx"> g: style.getPropertyValue(justify-content) : flex-start
</span><span class="cx"> g: style.getPropertyCSSValue(justify-content) : [object CSSPrimitiveValue]
</span><ins>+g: style.getPropertyValue(justify-self) : auto
+g: style.getPropertyCSSValue(justify-self) : [object CSSValueList]
</ins><span class="cx"> g: style.getPropertyValue(-webkit-font-kerning) : auto
</span><span class="cx"> g: style.getPropertyCSSValue(-webkit-font-kerning) : [object CSSPrimitiveValue]
</span><span class="cx"> g: style.getPropertyValue(-webkit-font-smoothing) : auto
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (176217 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog	2014-11-17 19:48:47 UTC (rev 176217)
+++ trunk/Source/WebCore/ChangeLog	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -1,3 +1,86 @@
</span><ins>+2014-11-17  Javier Fernandez  &lt;jfernandez at igalia.com&gt;
+
+        [CSS Grid Layout] Upgrade align-self and align-items parsing to CSS 3
+        https://bugs.webkit.org/show_bug.cgi?id=133359
+
+        Reviewed by David Hyatt.
+
+        Broaden justify-self's parsing name as a preparation of migrating
+        align-self, align-items and justify-items to the CSS 3 Alignment syntax.
+
+        The current naming was too tied to justify-self and needs to
+        be broadened. This will reduce the follow-up implementations'
+        patches.
+
+        Upgrade align-self and align-items parsing to CSS 3
+
+        This change migrates the 2 properties to the CSS 3 Alignment
+        parsing. The new parsing is identical to how we parse
+        'justify-self'. The 2 properties need to be migrated together
+        as they are used in tandem in CSSComputedStyleDeclaration.
+
+        This change also removes EAlignItems as it is now unused.
+
+        Tests: css3/parse-align-items.html
+               css3/parse-align-self.html
+
+        * css/CSSComputedStyleDeclaration.cpp:
+        (WebCore::valueForItemPositionWithOverflowAlignment): Added. Builds the CSSValue for the for the alignment properties.
+        (WebCore::ComputedStyleExtractor::propertyValue):
+        * css/CSSParser.cpp:
+        (WebCore::isKeywordPropertyID): Removed align-items and align-self from the list.
+        (WebCore::isValidKeywordPropertyAndValue): Removed align-items and align-self from the list.
+        (WebCore::CSSParser::parseValue): Added align-items and align-self to the list and call to the generic parsing fuction for the alignment properties.
+        (WebCore::isBaselinePositionKeyword): Utility function added to identify Baseline keyword values.
+        (WebCore::CSSParser::parseItemPositionOverflowPosition): Generic parsing fuction for the alignment properties.
+        (WebCore::CSSParser::parseJustifySelf): Deleted.
+        * css/CSSParser.h:
+        * css/CSSPrimitiveValueMappings.h:
+        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Refactoring some mapping functions.
+       (WebCore::CSSPrimitiveValue::operator ItemPosition): Added. Replace the old EAlignItems enumeration.
+        (WebCore::CSSPrimitiveValue::operator OverflowAlignment): Added.
+        (WebCore::CSSPrimitiveValue::operator EAlignItems): Deleted.
+        (WebCore::CSSPrimitiveValue::operator EJustifySelf): Deleted.
+        (WebCore::CSSPrimitiveValue::operator EJustifySelfOverflowAlignment): Deleted.
+        * css/CSSPropertyNames.in:
+        * css/CSSValueKeywords.in:
+        * css/StyleResolver.cpp:
+        (WebCore::StyleResolver::adjustRenderStyle): Added a new adjustment to resolve the &quot;auto&quot; vale on the alignment properties.
+        (WebCore::StyleResolver::adjustStyleForAlignment): Added. Function to resolve the &quot;auto&quot; vale on the alignment properties. 
+        (WebCore::StyleResolver::applyProperty):
+        (WebCore::isDisplayFlexibleBox): Deleted. Moved to the RenderStyle.
+        (WebCore::isDisplayGridBox): Deleted. Moved to the RenderStyle.
+        (WebCore::isDisplayFlexibleOrGridBox): Deleted. Moved to the RenderStyle.
+        * css/StyleResolver.h:
+        * rendering/RenderBox.cpp:
+        (WebCore::flexItemHasStretchAlignment): Adapted to the new ItemPosition enum.
+        * rendering/RenderFlexibleBox.cpp:
+        (WebCore::RenderFlexibleBox::firstLineBaseline): Adapted to the new ItemPosition enum.
+        (WebCore::resolveAlignment): Consider also that align-items could be &quot;auto&quot;, since it's the default now.
+        (WebCore::RenderFlexibleBox::styleDidChange): Adapted to the new ItemPosition enum.
+        (WebCore::RenderFlexibleBox::alignmentForChild): Adapted to the new ItemPosition enum.
+        (WebCore::RenderFlexibleBox::needToStretchChild): Adapted to the new ItemPosition enum.
+        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): Adapted to the new ItemPosition enum.
+        (WebCore::RenderFlexibleBox::alignChildren): Adapted to the new ItemPosition enum.
+        * rendering/RenderFlexibleBox.h:
+        * rendering/RenderFullScreen.cpp:
+        (WebCore::createFullScreenStyle): Adapted to the new ItemPosition enum.
+        * rendering/RenderMenuList.cpp:
+        (WebCore::RenderMenuList::adjustInnerStyle): Adapted to the new ItemPosition enum.
+        * rendering/mathml/RenderMathMLRoot.cpp:
+        (WebCore::RenderMathMLRoot::updateStyle): Adapted to the new ItemPosition enum.
+        * rendering/mathml/RenderMathMLScripts.cpp:
+        (WebCore::RenderMathMLScripts::fixAnonymousStyleForSubSupPair): Adapted to the new ItemPosition enum.
+        (WebCore::RenderMathMLScripts::fixAnonymousStyles): Adapted to the new ItemPosition enum.
+        * rendering/style/RenderStyle.h: Adapted to the new ItemPosition enum.
+        * rendering/style/RenderStyleConstants.h: Adapted to the new ItemPosition enum.
+        * rendering/style/StyleRareNonInheritedData.cpp: Adapted to the new ItemPosition enum.
+        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData): Adapted to the new ItemPosition enum.
+        (WebCore::StyleRareNonInheritedData::operator==): Adapted to the new ItemPosition enum.
+        * rendering/style/StyleRareNonInheritedData.h: Adapted to the new ItemPosition enum.
+        * style/StyleResolveTree.cpp:
+        (WebCore::Style::determineChange): Changes in the alignItems property will cause a Detach.
+
</ins><span class="cx"> 2014-11-17  Shivakumar JM  &lt;shiva.jm at samsung.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Attribute text in HTMLAnchorElement should behave as per specification.
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSComputedStyleDeclarationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp (176217 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp	2014-11-17 19:48:47 UTC (rev 176217)
+++ trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -296,7 +296,7 @@
</span><span class="cx">     CSSPropertyFlexDirection,
</span><span class="cx">     CSSPropertyFlexWrap,
</span><span class="cx">     CSSPropertyJustifyContent,
</span><del>-    CSSPropertyWebkitJustifySelf,
</del><ins>+    CSSPropertyJustifySelf,
</ins><span class="cx">     CSSPropertyWebkitFilter,
</span><span class="cx"> #if ENABLE(FILTERS_LEVEL_2)
</span><span class="cx">     CSSPropertyWebkitBackdropFilter,
</span><span class="lines">@@ -1713,6 +1713,15 @@
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+static PassRefPtr&lt;CSSValueList&gt; valueForItemPositionWithOverflowAlignment(ItemPosition itemPosition, OverflowAlignment overflowAlignment)
+{
+    RefPtr&lt;CSSValueList&gt; result = CSSValueList::createSpaceSeparated();
+    result-&gt;append(cssValuePool().createValue(itemPosition));
+    if (itemPosition &gt;= ItemPositionCenter &amp;&amp; overflowAlignment != OverflowAlignmentDefault)
+        result-&gt;append(cssValuePool().createValue(overflowAlignment));
+    return result.release();
+}
+
</ins><span class="cx"> PassRefPtr&lt;CSSValue&gt; ComputedStyleExtractor::propertyValue(CSSPropertyID propertyID, EUpdateLayout updateLayout) const
</span><span class="cx"> {
</span><span class="cx">     Node* styledNode = this-&gt;styledNode();
</span><span class="lines">@@ -2056,15 +2065,19 @@
</span><span class="cx">         case CSSPropertyAlignContent:
</span><span class="cx">             return cssValuePool().createValue(style-&gt;alignContent());
</span><span class="cx">         case CSSPropertyAlignItems:
</span><del>-            return cssValuePool().createValue(style-&gt;alignItems());
-        case CSSPropertyAlignSelf:
-            if (style-&gt;alignSelf() == AlignAuto) {
</del><ins>+            return valueForItemPositionWithOverflowAlignment(style-&gt;alignItems(), style-&gt;alignItemsOverflowAlignment());
+        case CSSPropertyAlignSelf: {
+            ItemPosition alignSelf = style-&gt;alignSelf();
+            OverflowAlignment overflow = style-&gt;alignSelfOverflowAlignment();
+            if (alignSelf == ItemPositionAuto) {
</ins><span class="cx">                 Node* parent = styledNode-&gt;parentNode();
</span><del>-                if (parent &amp;&amp; parent-&gt;computedStyle())
-                    return cssValuePool().createValue(parent-&gt;computedStyle()-&gt;alignItems());
-                return cssValuePool().createValue(AlignStretch);
</del><ins>+                if (parent &amp;&amp; parent-&gt;computedStyle()) {
+                    alignSelf = parent-&gt;computedStyle()-&gt;alignItems();
+                    overflow = parent-&gt;computedStyle()-&gt;alignItemsOverflowAlignment();
+                }
</ins><span class="cx">             }
</span><del>-            return cssValuePool().createValue(style-&gt;alignSelf());
</del><ins>+            return valueForItemPositionWithOverflowAlignment(alignSelf, overflow);
+        }
</ins><span class="cx">         case CSSPropertyFlex:
</span><span class="cx">             return getCSSPropertyValuesForShorthandProperties(flexShorthand());
</span><span class="cx">         case CSSPropertyFlexBasis:
</span><span class="lines">@@ -2081,13 +2094,8 @@
</span><span class="cx">             return cssValuePool().createValue(style-&gt;flexWrap());
</span><span class="cx">         case CSSPropertyJustifyContent:
</span><span class="cx">             return cssValuePool().createValue(style-&gt;justifyContent());
</span><del>-        case CSSPropertyWebkitJustifySelf: {
-            RefPtr&lt;CSSValueList&gt; result = CSSValueList::createSpaceSeparated();
-            result-&gt;append(CSSPrimitiveValue::create(style-&gt;justifySelf()));
-            if (style-&gt;justifySelf() &gt;= JustifySelfCenter &amp;&amp; style-&gt;justifySelfOverflowAlignment() != JustifySelfOverflowAlignmentDefault)
-                result-&gt;append(CSSPrimitiveValue::create(style-&gt;justifySelfOverflowAlignment()));
-            return result.release();
-        }
</del><ins>+        case CSSPropertyJustifySelf:
+            return valueForItemPositionWithOverflowAlignment(style-&gt;justifySelf(), style-&gt;justifySelfOverflowAlignment());
</ins><span class="cx">         case CSSPropertyOrder:
</span><span class="cx">             return cssValuePool().createValue(style-&gt;order(), CSSPrimitiveValue::CSS_NUMBER);
</span><span class="cx">         case CSSPropertyFloat:
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSParser.cpp (176217 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSParser.cpp	2014-11-17 19:48:47 UTC (rev 176217)
+++ trunk/Source/WebCore/css/CSSParser.cpp	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -865,6 +865,7 @@
</span><span class="cx">         if (valueID == CSSValueFlexStart || valueID == CSSValueFlexEnd || valueID == CSSValueCenter || valueID == CSSValueSpaceBetween || valueID == CSSValueSpaceAround || valueID == CSSValueStretch)
</span><span class="cx">             return true;
</span><span class="cx">         break;
</span><ins>+#if !ENABLE(CSS_GRID_LAYOUT)
</ins><span class="cx">     case CSSPropertyAlignItems:
</span><span class="cx">         // FIXME: Per CSS alignment, this property should accept the same arguments as 'justify-self' so we should share its parsing code.
</span><span class="cx">         if (valueID == CSSValueFlexStart || valueID == CSSValueFlexEnd || valueID == CSSValueCenter || valueID == CSSValueBaseline || valueID == CSSValueStretch)
</span><span class="lines">@@ -875,6 +876,7 @@
</span><span class="cx">         if (valueID == CSSValueAuto || valueID == CSSValueFlexStart || valueID == CSSValueFlexEnd || valueID == CSSValueCenter || valueID == CSSValueBaseline || valueID == CSSValueStretch)
</span><span class="cx">             return true;
</span><span class="cx">         break;
</span><ins>+#endif
</ins><span class="cx">     case CSSPropertyFlexDirection:
</span><span class="cx">         if (valueID == CSSValueRow || valueID == CSSValueRowReverse || valueID == CSSValueColumn || valueID == CSSValueColumnReverse)
</span><span class="cx">             return true;
</span><span class="lines">@@ -888,10 +890,12 @@
</span><span class="cx">         if (valueID == CSSValueFlexStart || valueID == CSSValueFlexEnd || valueID == CSSValueCenter || valueID == CSSValueSpaceBetween || valueID == CSSValueSpaceAround)
</span><span class="cx">             return true;
</span><span class="cx">         break;
</span><del>-    case CSSPropertyWebkitJustifySelf:
</del><ins>+#if !ENABLE(CSS_GRID_LAYOUT)
+    case CSSPropertyJustifySelf:
</ins><span class="cx">         if (valueID == CSSValueAuto || valueID == CSSValueFlexStart || valueID == CSSValueFlexEnd || valueID == CSSValueCenter || valueID == CSSValueBaseline || valueID == CSSValueStretch)
</span><span class="cx">             return true;
</span><span class="cx">         break;
</span><ins>+#endif
</ins><span class="cx">     case CSSPropertyWebkitFontKerning:
</span><span class="cx">         if (valueID == CSSValueAuto || valueID == CSSValueNormal || valueID == CSSValueNone)
</span><span class="cx">             return true;
</span><span class="lines">@@ -1106,8 +1110,10 @@
</span><span class="cx">     case CSSPropertyColumnFill:
</span><span class="cx">     case CSSPropertyColumnRuleStyle:
</span><span class="cx">     case CSSPropertyAlignContent:
</span><ins>+#if !ENABLE(CSS_GRID_LAYOUT)
</ins><span class="cx">     case CSSPropertyAlignItems:
</span><span class="cx">     case CSSPropertyAlignSelf:
</span><ins>+#endif
</ins><span class="cx">     case CSSPropertyFlexDirection:
</span><span class="cx">     case CSSPropertyFlexWrap:
</span><span class="cx">     case CSSPropertyJustifyContent:
</span><span class="lines">@@ -2630,9 +2636,9 @@
</span><span class="cx">         }
</span><span class="cx">         return false;
</span><span class="cx">     }
</span><del>-    case CSSPropertyWebkitJustifySelf:
-        return parseJustifySelf(propId, important);
</del><span class="cx"> #if ENABLE(CSS_GRID_LAYOUT)
</span><ins>+    case CSSPropertyJustifySelf:
+        return parseItemPositionOverflowPosition(propId, important);
</ins><span class="cx">     case CSSPropertyWebkitGridAutoColumns:
</span><span class="cx">     case CSSPropertyWebkitGridAutoRows:
</span><span class="cx">         parsedValue = parseGridTrackSize(*m_valueList);
</span><span class="lines">@@ -2967,6 +2973,13 @@
</span><span class="cx">         parsedValue = parseImageResolution();
</span><span class="cx">         break;
</span><span class="cx"> #endif
</span><ins>+#if ENABLE(CSS_GRID_LAYOUT)
+    case CSSPropertyAlignSelf:
+        return parseItemPositionOverflowPosition(propId, important);
+
+    case CSSPropertyAlignItems:
+        return parseItemPositionOverflowPosition(propId, important);
+#endif
</ins><span class="cx">     case CSSPropertyBorderBottomStyle:
</span><span class="cx">     case CSSPropertyBorderCollapse:
</span><span class="cx">     case CSSPropertyBorderLeftStyle:
</span><span class="lines">@@ -3028,8 +3041,11 @@
</span><span class="cx">     case CSSPropertyColumnFill:
</span><span class="cx">     case CSSPropertyColumnRuleStyle:
</span><span class="cx">     case CSSPropertyAlignContent:
</span><ins>+#if !ENABLE(CSS_GRID_LAYOUT)
</ins><span class="cx">     case CSSPropertyAlignItems:
</span><span class="cx">     case CSSPropertyAlignSelf:
</span><ins>+    case CSSPropertyJustifySelf:
+#endif
</ins><span class="cx">     case CSSPropertyFlexDirection:
</span><span class="cx">     case CSSPropertyFlexWrap:
</span><span class="cx">     case CSSPropertyJustifyContent:
</span><span class="lines">@@ -3140,6 +3156,11 @@
</span><span class="cx">     lval = WTF::move(list);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+static inline bool isBaselinePositionKeyword(CSSValueID id)
+{
+    return id == CSSValueBaseline || id == CSSValueLastBaseline;
+}
+
</ins><span class="cx"> static bool isItemPositionKeyword(CSSValueID id)
</span><span class="cx"> {
</span><span class="cx">     return id == CSSValueStart || id == CSSValueEnd || id == CSSValueCenter
</span><span class="lines">@@ -3147,7 +3168,7 @@
</span><span class="cx">         || id == CSSValueFlexEnd || id == CSSValueLeft || id == CSSValueRight;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool CSSParser::parseJustifySelf(CSSPropertyID propId, bool important)
</del><ins>+bool CSSParser::parseItemPositionOverflowPosition(CSSPropertyID propId, bool important)
</ins><span class="cx"> {
</span><span class="cx">     // auto | baseline | stretch | [&lt;item-position&gt; &amp;&amp; &lt;overflow-position&gt;? ]
</span><span class="cx">     // &lt;item-position&gt; = center | start | end | self-start | self-end | flex-start | flex-end | left | right;
</span><span class="lines">@@ -3155,7 +3176,7 @@
</span><span class="cx"> 
</span><span class="cx">     CSSParserValue* value = m_valueList-&gt;current();
</span><span class="cx"> 
</span><del>-    if (value-&gt;id == CSSValueAuto || value-&gt;id == CSSValueBaseline || value-&gt;id == CSSValueStretch) {
</del><ins>+    if (value-&gt;id == CSSValueAuto || value-&gt;id == CSSValueStretch || isBaselinePositionKeyword(value-&gt;id)) {
</ins><span class="cx">         if (m_valueList-&gt;next())
</span><span class="cx">             return false;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSParserh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSParser.h (176217 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSParser.h	2014-11-17 19:48:47 UTC (rev 176217)
+++ trunk/Source/WebCore/css/CSSParser.h	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -177,7 +177,7 @@
</span><span class="cx"> 
</span><span class="cx">     bool parseClipShape(CSSPropertyID, bool important);
</span><span class="cx"> 
</span><del>-    bool parseJustifySelf(CSSPropertyID, bool important);
</del><ins>+    bool parseItemPositionOverflowPosition(CSSPropertyID, bool important);
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_SHAPES)
</span><span class="cx">     PassRefPtr&lt;CSSValue&gt; parseShapeProperty(CSSPropertyID);
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSPrimitiveValueMappingsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h (176217 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h	2014-11-17 19:48:47 UTC (rev 176217)
+++ trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -1428,57 +1428,6 @@
</span><span class="cx">     return SHOW;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;&gt; inline CSSPrimitiveValue::CSSPrimitiveValue(EAlignItems e)
-    : CSSValue(PrimitiveClass)
-{
-    m_primitiveUnitType = CSS_VALUE_ID;
-    switch (e) {
-    case AlignAuto:
-        m_value.valueID = CSSValueAuto;
-        break;
-    case AlignFlexStart:
-        m_value.valueID = CSSValueFlexStart;
-        break;
-    case AlignFlexEnd:
-        m_value.valueID = CSSValueFlexEnd;
-        break;
-    case AlignCenter:
-        m_value.valueID = CSSValueCenter;
-        break;
-    case AlignStretch:
-        m_value.valueID = CSSValueStretch;
-        break;
-    case AlignBaseline:
-        m_value.valueID = CSSValueBaseline;
-        break;
-    }
-}
-
-template&lt;&gt; inline CSSPrimitiveValue::operator EAlignItems() const
-{
-    ASSERT(isValueID());
-
-    switch (m_value.valueID) {
-    case CSSValueAuto:
-        return AlignAuto;
-    case CSSValueFlexStart:
-        return AlignFlexStart;
-    case CSSValueFlexEnd:
-        return AlignFlexEnd;
-    case CSSValueCenter:
-        return AlignCenter;
-    case CSSValueStretch:
-        return AlignStretch;
-    case CSSValueBaseline:
-        return AlignBaseline;
-    default:
-        break;
-    }
-
-    ASSERT_NOT_REACHED();
-    return AlignFlexStart;
-}
-
</del><span class="cx"> template&lt;&gt; inline CSSPrimitiveValue::CSSPrimitiveValue(EJustifyContent e)
</span><span class="cx">     : CSSValue(PrimitiveClass)
</span><span class="cx"> {
</span><span class="lines">@@ -5082,116 +5031,118 @@
</span><span class="cx">     return BoxMissing;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;&gt; inline CSSPrimitiveValue::CSSPrimitiveValue(EJustifySelf justifySelf)
</del><ins>+template&lt;&gt; inline CSSPrimitiveValue::CSSPrimitiveValue(ItemPosition itemPosition)
</ins><span class="cx">     : CSSValue(PrimitiveClass)
</span><span class="cx"> {
</span><span class="cx">     m_primitiveUnitType = CSS_VALUE_ID;
</span><del>-    switch (justifySelf) {
-    case JustifySelfAuto:
</del><ins>+    switch (itemPosition) {
+    case ItemPositionAuto:
</ins><span class="cx">         m_value.valueID = CSSValueAuto;
</span><span class="cx">         break;
</span><del>-    case JustifySelfStretch:
</del><ins>+    case ItemPositionStretch:
</ins><span class="cx">         m_value.valueID = CSSValueStretch;
</span><span class="cx">         break;
</span><del>-    case JustifySelfBaseline:
</del><ins>+    case ItemPositionBaseline:
</ins><span class="cx">         m_value.valueID = CSSValueBaseline;
</span><span class="cx">         break;
</span><del>-    case JustifySelfCenter:
</del><ins>+    case ItemPositionLastBaseline:
+        m_value.valueID = CSSValueLastBaseline;
+        break;
+    case ItemPositionCenter:
</ins><span class="cx">         m_value.valueID = CSSValueCenter;
</span><span class="cx">         break;
</span><del>-    case JustifySelfStart:
</del><ins>+    case ItemPositionStart:
</ins><span class="cx">         m_value.valueID = CSSValueStart;
</span><span class="cx">         break;
</span><del>-    case JustifySelfEnd:
</del><ins>+    case ItemPositionEnd:
</ins><span class="cx">         m_value.valueID = CSSValueEnd;
</span><span class="cx">         break;
</span><del>-    case JustifySelfSelfStart:
</del><ins>+    case ItemPositionSelfStart:
</ins><span class="cx">         m_value.valueID = CSSValueSelfStart;
</span><span class="cx">         break;
</span><del>-    case JustifySelfSelfEnd:
</del><ins>+    case ItemPositionSelfEnd:
</ins><span class="cx">         m_value.valueID = CSSValueSelfEnd;
</span><span class="cx">         break;
</span><del>-    case JustifySelfFlexStart:
</del><ins>+    case ItemPositionFlexStart:
</ins><span class="cx">         m_value.valueID = CSSValueFlexStart;
</span><span class="cx">         break;
</span><del>-    case JustifySelfFlexEnd:
</del><ins>+    case ItemPositionFlexEnd:
</ins><span class="cx">         m_value.valueID = CSSValueFlexEnd;
</span><span class="cx">         break;
</span><del>-    case JustifySelfLeft:
</del><ins>+    case ItemPositionLeft:
</ins><span class="cx">         m_value.valueID = CSSValueLeft;
</span><span class="cx">         break;
</span><del>-    case JustifySelfRight:
</del><ins>+    case ItemPositionRight:
</ins><span class="cx">         m_value.valueID = CSSValueRight;
</span><span class="cx">         break;
</span><del>-    default:
-        m_value.valueID = CSSValueAuto;
-        break;
</del><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;&gt; inline CSSPrimitiveValue::operator EJustifySelf() const
</del><ins>+template&lt;&gt; inline CSSPrimitiveValue::operator ItemPosition() const
</ins><span class="cx"> {
</span><span class="cx">     switch (m_value.valueID) {
</span><span class="cx">     case CSSValueAuto:
</span><del>-        return JustifySelfAuto;
</del><ins>+        return ItemPositionAuto;
</ins><span class="cx">     case CSSValueStretch:
</span><del>-        return JustifySelfStretch;
</del><ins>+        return ItemPositionStretch;
</ins><span class="cx">     case CSSValueBaseline:
</span><del>-        return JustifySelfBaseline;
</del><ins>+        return ItemPositionBaseline;
+    case CSSValueLastBaseline:
+        return ItemPositionLastBaseline;
</ins><span class="cx">     case CSSValueCenter:
</span><del>-        return JustifySelfCenter;
</del><ins>+        return ItemPositionCenter;
</ins><span class="cx">     case CSSValueStart:
</span><del>-        return JustifySelfStart;
</del><ins>+        return ItemPositionStart;
</ins><span class="cx">     case CSSValueEnd:
</span><del>-        return JustifySelfEnd;
</del><ins>+        return ItemPositionEnd;
</ins><span class="cx">     case CSSValueSelfStart:
</span><del>-        return JustifySelfSelfStart;
</del><ins>+        return ItemPositionSelfStart;
</ins><span class="cx">     case CSSValueSelfEnd:
</span><del>-        return JustifySelfSelfEnd;
</del><ins>+        return ItemPositionSelfEnd;
</ins><span class="cx">     case CSSValueFlexStart:
</span><del>-        return JustifySelfFlexStart;
</del><ins>+        return ItemPositionFlexStart;
</ins><span class="cx">     case CSSValueFlexEnd:
</span><del>-        return JustifySelfFlexEnd;
</del><ins>+        return ItemPositionFlexEnd;
</ins><span class="cx">     case CSSValueLeft:
</span><del>-        return JustifySelfLeft;
</del><ins>+        return ItemPositionLeft;
</ins><span class="cx">     case CSSValueRight:
</span><del>-        return JustifySelfRight;
</del><ins>+        return ItemPositionRight;
</ins><span class="cx">     default:
</span><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx">     ASSERT_NOT_REACHED();
</span><del>-    return JustifySelfAuto;
</del><ins>+    return ItemPositionAuto;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;&gt; inline CSSPrimitiveValue::CSSPrimitiveValue(EJustifySelfOverflowAlignment overflowAlignment)
</del><ins>+template&lt;&gt; inline CSSPrimitiveValue::CSSPrimitiveValue(OverflowAlignment overflowAlignment)
</ins><span class="cx">     : CSSValue(PrimitiveClass)
</span><span class="cx"> {
</span><span class="cx">     m_primitiveUnitType = CSS_VALUE_ID;
</span><span class="cx">     switch (overflowAlignment) {
</span><del>-    case JustifySelfOverflowAlignmentDefault:
</del><ins>+    case OverflowAlignmentDefault:
</ins><span class="cx">         m_value.valueID = CSSValueDefault;
</span><span class="cx">         break;
</span><del>-    case JustifySelfOverflowAlignmentTrue:
</del><ins>+    case OverflowAlignmentTrue:
</ins><span class="cx">         m_value.valueID = CSSValueTrue;
</span><span class="cx">         break;
</span><del>-    case JustifySelfOverflowAlignmentSafe:
</del><ins>+    case OverflowAlignmentSafe:
</ins><span class="cx">         m_value.valueID = CSSValueSafe;
</span><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;&gt; inline CSSPrimitiveValue::operator EJustifySelfOverflowAlignment() const
</del><ins>+template&lt;&gt; inline CSSPrimitiveValue::operator OverflowAlignment() const
</ins><span class="cx"> {
</span><span class="cx">     switch (m_value.valueID) {
</span><span class="cx">     case CSSValueTrue:
</span><del>-        return JustifySelfOverflowAlignmentTrue;
</del><ins>+        return OverflowAlignmentTrue;
</ins><span class="cx">     case CSSValueSafe:
</span><del>-        return JustifySelfOverflowAlignmentSafe;
</del><ins>+        return OverflowAlignmentSafe;
</ins><span class="cx">     default:
</span><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx">     ASSERT_NOT_REACHED();
</span><del>-    return JustifySelfOverflowAlignmentTrue;
</del><ins>+    return OverflowAlignmentTrue;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSPropertyNamesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSPropertyNames.in (176217 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSPropertyNames.in	2014-11-17 19:48:47 UTC (rev 176217)
+++ trunk/Source/WebCore/css/CSSPropertyNames.in	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -364,9 +364,9 @@
</span><span class="cx"> -webkit-filter
</span><span class="cx"> align-content [NewStyleBuilder]
</span><span class="cx"> -webkit-align-content = align-content
</span><del>-align-items [NewStyleBuilder]
</del><ins>+align-items
</ins><span class="cx"> -webkit-align-items = align-items
</span><del>-align-self [NewStyleBuilder, TypeName=EAlignItems]
</del><ins>+align-self
</ins><span class="cx"> -webkit-align-self = align-self
</span><span class="cx"> flex
</span><span class="cx"> -webkit-flex = flex
</span><span class="lines">@@ -387,7 +387,8 @@
</span><span class="cx"> #if defined(ENABLE_FILTERS_LEVEL_2) &amp;&amp; ENABLE_FILTERS_LEVEL_2
</span><span class="cx"> -webkit-backdrop-filter
</span><span class="cx"> #endif
</span><del>--webkit-justify-self
</del><ins>+justify-self
+-webkit-justify-self = justify-self
</ins><span class="cx"> -webkit-font-size-delta
</span><span class="cx"> #if defined(ENABLE_CSS_GRID_LAYOUT) &amp;&amp; ENABLE_CSS_GRID_LAYOUT
</span><span class="cx"> -webkit-grid
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSValueKeywordsin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSValueKeywords.in (176217 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSValueKeywords.in	2014-11-17 19:48:47 UTC (rev 176217)
+++ trunk/Source/WebCore/css/CSSValueKeywords.in	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -540,6 +540,7 @@
</span><span class="cx"> // flex-end
</span><span class="cx"> // center
</span><span class="cx"> // baseline
</span><ins>+last-baseline
</ins><span class="cx"> // stretch
</span><span class="cx"> 
</span><span class="cx"> // CSS_PROP_JUSTIFY_CONTENT
</span><span class="lines">@@ -553,6 +554,7 @@
</span><span class="cx"> // auto
</span><span class="cx"> // stretch
</span><span class="cx"> // baseline
</span><ins>+// last-baseline
</ins><span class="cx"> // center
</span><span class="cx"> // start
</span><span class="cx"> // end
</span></span></pre></div>
<a id="trunkSourceWebCorecssStyleResolvercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleResolver.cpp (176217 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleResolver.cpp	2014-11-17 19:48:47 UTC (rev 176217)
+++ trunk/Source/WebCore/css/StyleResolver.cpp	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -1113,26 +1113,6 @@
</span><span class="cx">         || style.isFloating() || style.hasOutOfFlowPosition();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static bool isDisplayFlexibleBox(EDisplay display)
-{
-    return display == FLEX || display == INLINE_FLEX;
-}
-
-static inline bool isDisplayGridBox(EDisplay display)
-{
-#if ENABLE(CSS_GRID_LAYOUT)
-    return display == GRID || display == INLINE_GRID;
-#else
-    UNUSED_PARAM(display);
-    return false;
-#endif
-}
-
-static bool isDisplayFlexibleOrGridBox(EDisplay display)
-{
-    return isDisplayFlexibleBox(display) || isDisplayGridBox(display);
-}
-
</del><span class="cx"> #if ENABLE(ACCELERATED_OVERFLOW_SCROLLING)
</span><span class="cx"> static bool isScrollableOverflow(EOverflow overflow)
</span><span class="cx"> {
</span><span class="lines">@@ -1235,14 +1215,14 @@
</span><span class="cx">         if (style.writingMode() != TopToBottomWritingMode &amp;&amp; (style.display() == BOX || style.display() == INLINE_BOX))
</span><span class="cx">             style.setWritingMode(TopToBottomWritingMode);
</span><span class="cx"> 
</span><del>-        if (isDisplayFlexibleOrGridBox(parentStyle.display())) {
</del><ins>+        if (parentStyle.isDisplayFlexibleOrGridBox()) {
</ins><span class="cx">             style.setFloating(NoFloat);
</span><span class="cx">             style.setDisplay(equivalentBlockDisplay(style.display(), style.isFloating(), !document().inQuirksMode()));
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // Make sure our z-index value is only applied if the object is positioned.
</span><del>-    if (style.position() == StaticPosition &amp;&amp; !isDisplayFlexibleOrGridBox(parentStyle.display()))
</del><ins>+    if (style.position() == StaticPosition &amp;&amp; !parentStyle.isDisplayFlexibleOrGridBox())
</ins><span class="cx">         style.setHasAutoZIndex();
</span><span class="cx"> 
</span><span class="cx">     // Auto z-index becomes 0 for the root element and transparent objects. This prevents
</span><span class="lines">@@ -1371,8 +1351,32 @@
</span><span class="cx">         if ((e-&gt;hasTagName(SVGNames::foreignObjectTag) || e-&gt;hasTagName(SVGNames::textTag)) &amp;&amp; style.isDisplayInlineType())
</span><span class="cx">             style.setDisplay(BLOCK);
</span><span class="cx">     }
</span><ins>+
+    // CSS Box Alignment specification requires to resolve &quot;auto&quot; (inital/default) values.
+    adjustStyleForAlignment(style);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void StyleResolver::adjustStyleForAlignment(RenderStyle&amp; style)
+{
+    // The 'auto' keyword computes to:
+    //  - 'stretch' for flex containers and grid containers,
+    //  - 'start' for everything else. (to be resolved later, during the layout)
+    if (style.alignItems() == ItemPositionAuto) {
+        if (style.isDisplayFlexibleOrGridBox())
+            style.setAlignItems(ItemPositionStretch);
+        else
+            style.setAlignItems(ItemPositionStart);
+    }
+
+    // The 'auto' keyword computes to 'stretch' on absolutely-positioned elements,
+    // and to the computed value of align-items on the parent (minus
+    // any 'legacy' keywords) on all other boxes (to be resolved during the layout).
+    if (style.alignSelf() == ItemPositionAuto) {
+        if ((style.position() == AbsolutePosition))
+            style.setAlignSelf(ItemPositionStretch);
+    }
+}
+
</ins><span class="cx"> bool StyleResolver::checkRegionStyle(Element* regionElement)
</span><span class="cx"> {
</span><span class="cx">     unsigned rulesSize = m_ruleSets.authorStyle()-&gt;regionSelectorsAndRuleSets().size();
</span><span class="lines">@@ -2900,16 +2904,61 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> #endif /* ENABLE(CSS_GRID_LAYOUT) */
</span><ins>+    case CSSPropertyAlignSelf: {
+        if (isInherit) {
+            state.style()-&gt;setAlignSelf(state.parentStyle()-&gt;alignSelf());
+            state.style()-&gt;setAlignSelfOverflowAlignment(state.parentStyle()-&gt;alignSelfOverflowAlignment());
+            return;
+        }
+        if (isInitial) {
+            state.style()-&gt;setAlignSelf(RenderStyle::initialAlignSelf());
+            state.style()-&gt;setAlignSelfOverflowAlignment(RenderStyle::initialAlignSelfOverflowAlignment());
+            return;
+        }
+        if (Pair* pairValue = primitiveValue-&gt;getPairValue()) {
+            state.style()-&gt;setAlignSelf(*pairValue-&gt;first());
+            state.style()-&gt;setAlignSelfOverflowAlignment(*pairValue-&gt;second());
+        } else
+            state.style()-&gt;setAlignSelf(*primitiveValue);
+        return;
+    }
</ins><span class="cx"> 
</span><del>-    case CSSPropertyWebkitJustifySelf:
-        HANDLE_INHERIT_AND_INITIAL(justifySelf, JustifySelf);
</del><ins>+    case CSSPropertyAlignItems: {
+        if (isInherit) {
+            state.style()-&gt;setAlignItems(state.parentStyle()-&gt;alignItems());
+            state.style()-&gt;setAlignItemsOverflowAlignment(state.parentStyle()-&gt;alignItemsOverflowAlignment());
+            return;
+        }
+        if (isInitial) {
+            state.style()-&gt;setAlignItems(RenderStyle::initialAlignItems());
+            state.style()-&gt;setAlignItemsOverflowAlignment(RenderStyle::initialAlignItemsOverflowAlignment());
+            return;
+        }
</ins><span class="cx">         if (Pair* pairValue = primitiveValue-&gt;getPairValue()) {
</span><ins>+            state.style()-&gt;setAlignItems(*pairValue-&gt;first());
+            state.style()-&gt;setAlignItemsOverflowAlignment(*pairValue-&gt;second());
+        } else
+            state.style()-&gt;setAlignItems(*primitiveValue);
+        return;
+    }
+    case CSSPropertyJustifySelf: {
+        if (isInherit) {
+            state.style()-&gt;setJustifySelf(state.parentStyle()-&gt;justifySelf());
+            state.style()-&gt;setJustifySelfOverflowAlignment(state.parentStyle()-&gt;justifySelfOverflowAlignment());
+            return;
+        }
+        if (isInitial) {
+            state.style()-&gt;setJustifySelf(RenderStyle::initialJustifySelf());
+            state.style()-&gt;setJustifySelfOverflowAlignment(RenderStyle::initialJustifySelfOverflowAlignment());
+            return;
+        }
+        if (Pair* pairValue = primitiveValue-&gt;getPairValue()) {
</ins><span class="cx">             state.style()-&gt;setJustifySelf(*pairValue-&gt;first());
</span><span class="cx">             state.style()-&gt;setJustifySelfOverflowAlignment(*pairValue-&gt;second());
</span><span class="cx">         } else
</span><span class="cx">             state.style()-&gt;setJustifySelf(*primitiveValue);
</span><span class="cx">         return;
</span><del>-
</del><ins>+    }
</ins><span class="cx"> #if ENABLE(CSS_SCROLL_SNAP)
</span><span class="cx">     case CSSPropertyWebkitScrollSnapType:
</span><span class="cx">         HANDLE_INHERIT_AND_INITIAL(scrollSnapType, ScrollSnapType);
</span><span class="lines">@@ -3128,8 +3177,6 @@
</span><span class="cx">     case CSSPropertyWebkitCursorVisibility:
</span><span class="cx"> #endif
</span><span class="cx">     case CSSPropertyAlignContent:
</span><del>-    case CSSPropertyAlignItems:
-    case CSSPropertyAlignSelf:
</del><span class="cx">     case CSSPropertyFlexBasis:
</span><span class="cx">     case CSSPropertyFlexDirection:
</span><span class="cx">     case CSSPropertyFlexGrow:
</span></span></pre></div>
<a id="trunkSourceWebCorecssStyleResolverh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleResolver.h (176217 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleResolver.h	2014-11-17 19:48:47 UTC (rev 176217)
+++ trunk/Source/WebCore/css/StyleResolver.h	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -296,6 +296,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     void adjustRenderStyle(RenderStyle&amp; styleToAdjust, const RenderStyle&amp; parentStyle, Element*);
</span><ins>+    void adjustStyleForAlignment(RenderStyle&amp; styleToAdjust);
</ins><span class="cx"> #if ENABLE(CSS_GRID_LAYOUT)
</span><span class="cx">     std::unique_ptr&lt;GridPosition&gt; adjustNamedGridItemPosition(const NamedGridAreaMap&amp;, const NamedGridLinesMap&amp;, const GridPosition&amp;, GridPositionSide) const;
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (176217 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBox.cpp	2014-11-17 19:48:47 UTC (rev 176217)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -2418,7 +2418,7 @@
</span><span class="cx"> static bool flexItemHasStretchAlignment(const RenderBox&amp; flexitem)
</span><span class="cx"> {
</span><span class="cx">     auto parent = flexitem.parent();
</span><del>-    return flexitem.style().alignSelf() == AlignStretch || (flexitem.style().alignSelf() == AlignAuto &amp;&amp; parent-&gt;style().alignItems() == AlignStretch);
</del><ins>+    return flexitem.style().alignSelf() == ItemPositionStretch || (flexitem.style().alignSelf() == ItemPositionAuto &amp;&amp; parent-&gt;style().alignItems() == ItemPositionStretch);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool isStretchingColumnFlexItem(const RenderBox&amp; flexitem)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderFlexibleBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp (176217 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp	2014-11-17 19:48:47 UTC (rev 176217)
+++ trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -32,6 +32,7 @@
</span><span class="cx"> #include &quot;RenderFlexibleBox.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;LayoutRepainter.h&quot;
</span><ins>+#include &quot;NotImplemented.h&quot;
</ins><span class="cx"> #include &quot;RenderLayer.h&quot;
</span><span class="cx"> #include &quot;RenderView.h&quot;
</span><span class="cx"> #include &lt;limits&gt;
</span><span class="lines">@@ -186,7 +187,7 @@
</span><span class="cx">     for (RenderBox* child = m_orderIterator.first(); child; child = m_orderIterator.next()) {
</span><span class="cx">         if (child-&gt;isOutOfFlowPositioned())
</span><span class="cx">             continue;
</span><del>-        if (alignmentForChild(*child) == AlignBaseline &amp;&amp; !hasAutoMarginsInCrossAxis(*child)) {
</del><ins>+        if (alignmentForChild(*child) == ItemPositionBaseline &amp;&amp; !hasAutoMarginsInCrossAxis(*child)) {
</ins><span class="cx">             baselineChild = child;
</span><span class="cx">             break;
</span><span class="cx">         }
</span><span class="lines">@@ -227,11 +228,11 @@
</span><span class="cx">     return synthesizedBaselineFromContentBox(*this, direction) + marginAscent;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static EAlignItems resolveAlignment(const RenderStyle* parentStyle, const RenderStyle* childStyle)
</del><ins>+static ItemPosition resolveAlignment(const RenderStyle* parentStyle, const RenderStyle* childStyle)
</ins><span class="cx"> {
</span><del>-    EAlignItems align = childStyle-&gt;alignSelf();
-    if (align == AlignAuto)
-        align = parentStyle-&gt;alignItems();
</del><ins>+    ItemPosition align = childStyle-&gt;alignSelf();
+    if (align == ItemPositionAuto)
+        align = (parentStyle-&gt;alignItems() == ItemPositionAuto) ? ItemPositionStretch : parentStyle-&gt;alignItems();
</ins><span class="cx">     return align;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -239,12 +240,12 @@
</span><span class="cx"> {
</span><span class="cx">     RenderBlock::styleDidChange(diff, oldStyle);
</span><span class="cx"> 
</span><del>-    if (oldStyle &amp;&amp; oldStyle-&gt;alignItems() == AlignStretch &amp;&amp; diff == StyleDifferenceLayout) {
</del><ins>+    if (oldStyle &amp;&amp; oldStyle-&gt;alignItems() == ItemPositionStretch &amp;&amp; diff == StyleDifferenceLayout) {
</ins><span class="cx">         // Flex items that were previously stretching need to be relayed out so we can compute new available cross axis space.
</span><span class="cx">         // This is only necessary for stretching since other alignment values don't change the size of the box.
</span><span class="cx">         for (RenderBox* child = firstChildBox(); child; child = child-&gt;nextSiblingBox()) {
</span><del>-            EAlignItems previousAlignment = resolveAlignment(oldStyle, &amp;child-&gt;style());
-            if (previousAlignment == AlignStretch &amp;&amp; previousAlignment != resolveAlignment(&amp;style(), &amp;child-&gt;style()))
</del><ins>+            ItemPosition previousAlignment = resolveAlignment(oldStyle, &amp;child-&gt;style());
+            if (previousAlignment == ItemPositionStretch &amp;&amp; previousAlignment != resolveAlignment(&amp;style(), &amp;child-&gt;style()))
</ins><span class="cx">                 child-&gt;setChildNeedsLayout(MarkOnlyThis);
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="lines">@@ -1023,18 +1024,18 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-EAlignItems RenderFlexibleBox::alignmentForChild(RenderBox&amp; child) const
</del><ins>+ItemPosition RenderFlexibleBox::alignmentForChild(RenderBox&amp; child) const
</ins><span class="cx"> {
</span><del>-    EAlignItems align = resolveAlignment(&amp;style(), &amp;child.style());
</del><ins>+    ItemPosition align = resolveAlignment(&amp;style(), &amp;child.style());
</ins><span class="cx"> 
</span><del>-    if (align == AlignBaseline &amp;&amp; hasOrthogonalFlow(child))
-        align = AlignFlexStart;
</del><ins>+    if (align == ItemPositionBaseline &amp;&amp; hasOrthogonalFlow(child))
+        align = ItemPositionFlexStart;
</ins><span class="cx"> 
</span><span class="cx">     if (style().flexWrap() == FlexWrapReverse) {
</span><del>-        if (align == AlignFlexStart)
-            align = AlignFlexEnd;
-        else if (align == AlignFlexEnd)
-            align = AlignFlexStart;
</del><ins>+        if (align == ItemPositionFlexStart)
+            align = ItemPositionFlexEnd;
+        else if (align == ItemPositionFlexEnd)
+            align = ItemPositionFlexStart;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return align;
</span><span class="lines">@@ -1053,7 +1054,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool RenderFlexibleBox::needToStretchChild(RenderBox&amp; child)
</span><span class="cx"> {
</span><del>-    if (alignmentForChild(child) != AlignStretch)
</del><ins>+    if (alignmentForChild(child) != ItemPositionStretch)
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     Length crossAxisLength = isHorizontalFlow() ? child.style().height() : child.style().width();
</span><span class="lines">@@ -1104,7 +1105,7 @@
</span><span class="cx">         updateAutoMarginsInMainAxis(child, autoMarginOffset);
</span><span class="cx"> 
</span><span class="cx">         LayoutUnit childCrossAxisMarginBoxExtent;
</span><del>-        if (alignmentForChild(child) == AlignBaseline &amp;&amp; !hasAutoMarginsInCrossAxis(child)) {
</del><ins>+        if (alignmentForChild(child) == ItemPositionBaseline &amp;&amp; !hasAutoMarginsInCrossAxis(child)) {
</ins><span class="cx">             LayoutUnit ascent = marginBoxAscentForChild(child);
</span><span class="cx">             LayoutUnit descent = (crossAxisMarginExtentForChild(child) + crossAxisExtentForChild(child)) - ascent;
</span><span class="cx"> 
</span><span class="lines">@@ -1265,25 +1266,32 @@
</span><span class="cx">                 continue;
</span><span class="cx"> 
</span><span class="cx">             switch (alignmentForChild(*child)) {
</span><del>-            case AlignAuto:
</del><ins>+            case ItemPositionAuto:
</ins><span class="cx">                 ASSERT_NOT_REACHED();
</span><span class="cx">                 break;
</span><del>-            case AlignStretch: {
</del><ins>+            case ItemPositionStart:
+                // FIXME: https://webkit.org/b/135460 - The extended grammar is not supported
+                // yet for FlexibleBox.
+                // Defaulting to Stretch for now, as it what most of FlexBox based renders
+                // expect as default.
+                notImplemented();
+                FALLTHROUGH;
+            case ItemPositionStretch: {
</ins><span class="cx">                 applyStretchAlignmentToChild(*child, lineCrossAxisExtent);
</span><span class="cx">                 // Since wrap-reverse flips cross start and cross end, strech children should be aligned with the cross end.
</span><span class="cx">                 if (style().flexWrap() == FlexWrapReverse)
</span><span class="cx">                     adjustAlignmentForChild(*child, availableAlignmentSpaceForChild(lineCrossAxisExtent, *child));
</span><span class="cx">                 break;
</span><span class="cx">             }
</span><del>-            case AlignFlexStart:
</del><ins>+            case ItemPositionFlexStart:
</ins><span class="cx">                 break;
</span><del>-            case AlignFlexEnd:
</del><ins>+            case ItemPositionFlexEnd:
</ins><span class="cx">                 adjustAlignmentForChild(*child, availableAlignmentSpaceForChild(lineCrossAxisExtent, *child));
</span><span class="cx">                 break;
</span><del>-            case AlignCenter:
</del><ins>+            case ItemPositionCenter:
</ins><span class="cx">                 adjustAlignmentForChild(*child, availableAlignmentSpaceForChild(lineCrossAxisExtent, *child) / 2);
</span><span class="cx">                 break;
</span><del>-            case AlignBaseline: {
</del><ins>+            case ItemPositionBaseline: {
</ins><span class="cx">                 // FIXME: If we get here in columns, we want the use the descent, except we currently can't get the ascent/descent of orthogonal children.
</span><span class="cx">                 // https://bugs.webkit.org/show_bug.cgi?id=98076
</span><span class="cx">                 LayoutUnit ascent = marginBoxAscentForChild(*child);
</span><span class="lines">@@ -1294,6 +1302,19 @@
</span><span class="cx">                     minMarginAfterBaseline = std::min(minMarginAfterBaseline, availableAlignmentSpaceForChild(lineCrossAxisExtent, *child) - startOffset);
</span><span class="cx">                 break;
</span><span class="cx">             }
</span><ins>+            case ItemPositionLastBaseline:
+            case ItemPositionSelfStart:
+            case ItemPositionSelfEnd:
+            case ItemPositionEnd:
+            case ItemPositionLeft:
+            case ItemPositionRight:
+                // FIXME: https://webkit.org/b/135460 - The extended grammar is not supported
+                // yet for FlexibleBox.
+                notImplemented();
+                FALLTHROUGH;
+            default:
+                ASSERT_NOT_REACHED();
+                break;
</ins><span class="cx">             }
</span><span class="cx">         }
</span><span class="cx">         minMarginAfterBaselines.append(minMarginAfterBaseline);
</span><span class="lines">@@ -1309,7 +1330,7 @@
</span><span class="cx">         LayoutUnit minMarginAfterBaseline = minMarginAfterBaselines[lineNumber];
</span><span class="cx">         for (size_t childNumber = 0; childNumber &lt; lineContexts[lineNumber].numberOfChildren; ++childNumber, child = m_orderIterator.next()) {
</span><span class="cx">             ASSERT(child);
</span><del>-            if (alignmentForChild(*child) == AlignBaseline &amp;&amp; !hasAutoMarginsInCrossAxis(*child) &amp;&amp; minMarginAfterBaseline)
</del><ins>+            if (alignmentForChild(*child) == ItemPositionBaseline &amp;&amp; !hasAutoMarginsInCrossAxis(*child) &amp;&amp; minMarginAfterBaseline)
</ins><span class="cx">                 adjustAlignmentForChild(*child, minMarginAfterBaseline);
</span><span class="cx">         }
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderFlexibleBoxh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderFlexibleBox.h (176217 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderFlexibleBox.h	2014-11-17 19:48:47 UTC (rev 176217)
+++ trunk/Source/WebCore/rendering/RenderFlexibleBox.h	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -118,7 +118,7 @@
</span><span class="cx">     // FIXME: Supporting layout deltas.
</span><span class="cx">     void setFlowAwareLocationForChild(RenderBox&amp; child, const LayoutPoint&amp;);
</span><span class="cx">     void adjustAlignmentForChild(RenderBox&amp; child, LayoutUnit);
</span><del>-    EAlignItems alignmentForChild(RenderBox&amp; child) const;
</del><ins>+    ItemPosition alignmentForChild(RenderBox&amp; child) const;
</ins><span class="cx">     LayoutUnit mainAxisBorderAndPaddingExtentForChild(RenderBox&amp; child) const;
</span><span class="cx">     LayoutUnit mainAxisScrollbarExtentForChild(RenderBox&amp; child) const;
</span><span class="cx">     LayoutUnit preferredMainAxisContentExtentForChild(RenderBox&amp; child, bool hasInfiniteLineLength);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderFullScreencpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderFullScreen.cpp (176217 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderFullScreen.cpp	2014-11-17 19:48:47 UTC (rev 176217)
+++ trunk/Source/WebCore/rendering/RenderFullScreen.cpp	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -90,7 +90,7 @@
</span><span class="cx"> 
</span><span class="cx">     fullscreenStyle.get().setDisplay(FLEX);
</span><span class="cx">     fullscreenStyle.get().setJustifyContent(JustifyCenter);
</span><del>-    fullscreenStyle.get().setAlignItems(AlignCenter);
</del><ins>+    fullscreenStyle.get().setAlignItems(ItemPositionCenter);
</ins><span class="cx">     fullscreenStyle.get().setFlexDirection(FlowColumn);
</span><span class="cx">     
</span><span class="cx">     fullscreenStyle.get().setPosition(FixedPosition);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderMenuListcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderMenuList.cpp (176217 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderMenuList.cpp	2014-11-17 19:48:47 UTC (rev 176217)
+++ trunk/Source/WebCore/rendering/RenderMenuList.cpp	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -119,10 +119,10 @@
</span><span class="cx">     // Use margin:auto instead of align-items:center to get safe centering, i.e.
</span><span class="cx">     // when the content overflows, treat it the same as align-items: flex-start.
</span><span class="cx">     // But we only do that for the cases where html.css would otherwise use center.
</span><del>-    if (style().alignItems() == AlignCenter) {
</del><ins>+    if (style().alignItems() == ItemPositionCenter) {
</ins><span class="cx">         innerStyle.setMarginTop(Length());
</span><span class="cx">         innerStyle.setMarginBottom(Length());
</span><del>-        innerStyle.setAlignSelf(AlignFlexStart);
</del><ins>+        innerStyle.setAlignSelf(ItemPositionFlexStart);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     innerStyle.setPaddingLeft(Length(theme().popupInternalPaddingLeft(style()), Fixed));
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLRootcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLRoot.cpp (176217 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLRoot.cpp	2014-11-17 19:48:47 UTC (rev 176217)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLRoot.cpp	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -233,7 +233,7 @@
</span><span class="cx">     auto base = baseWrapper();
</span><span class="cx">     auto baseStyle = RenderStyle::createAnonymousStyleWithDisplay(&amp;style(), FLEX);
</span><span class="cx">     baseStyle.get().setMarginTop(Length(0, Fixed)); // This will be updated in RenderMathMLRoot::layout().
</span><del>-    baseStyle.get().setAlignItems(AlignBaseline);
</del><ins>+    baseStyle.get().setAlignItems(ItemPositionBaseline);
</ins><span class="cx">     base-&gt;setStyle(WTF::move(baseStyle));
</span><span class="cx">     base-&gt;setNeedsLayoutAndPrefWidthsRecalc();
</span><span class="cx"> 
</span><span class="lines">@@ -244,7 +244,7 @@
</span><span class="cx">         indexStyle.get().setMarginTop(Length(0, Fixed)); // This will be updated in RenderMathMLRoot::layout().
</span><span class="cx">         indexStyle.get().setMarginStart(Length(kernBeforeDegree, Fixed));
</span><span class="cx">         indexStyle.get().setMarginEnd(Length(kernAfterDegree, Fixed));
</span><del>-        indexStyle.get().setAlignItems(AlignBaseline);
</del><ins>+        indexStyle.get().setAlignItems(ItemPositionBaseline);
</ins><span class="cx">         index-&gt;setStyle(WTF::move(indexStyle));
</span><span class="cx">         index-&gt;setNeedsLayoutAndPrefWidthsRecalc();
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLScriptscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp (176217 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp	2014-11-17 19:48:47 UTC (rev 176217)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -101,7 +101,7 @@
</span><span class="cx">     // The MathML specification does not specify vertical alignment of scripts.
</span><span class="cx">     // Let's right align prescripts and left align postscripts.
</span><span class="cx">     // See http://lists.w3.org/Archives/Public/www-math/2012Aug/0006.html
</span><del>-    scriptsStyle.setAlignItems(isPostScript ? AlignFlexStart : AlignFlexEnd);
</del><ins>+    scriptsStyle.setAlignItems(isPostScript ? ItemPositionFlexStart : ItemPositionFlexEnd);
</ins><span class="cx"> 
</span><span class="cx">     // We set the order property so that the prescripts are drawn before the base.
</span><span class="cx">     scriptsStyle.setOrder(isPostScript ? 0 : -1);
</span><span class="lines">@@ -115,7 +115,7 @@
</span><span class="cx"> {
</span><span class="cx">     // We set the base wrapper's style so that baseHeight in layout() will be an unstretched height.
</span><span class="cx">     ASSERT(m_baseWrapper &amp;&amp; m_baseWrapper-&gt;style().hasOneRef());
</span><del>-    m_baseWrapper-&gt;style().setAlignSelf(AlignFlexStart);
</del><ins>+    m_baseWrapper-&gt;style().setAlignSelf(ItemPositionFlexStart);
</ins><span class="cx"> 
</span><span class="cx">     // This sets the style for postscript pairs.
</span><span class="cx">     RenderObject* subSupPair = m_baseWrapper;
</span><span class="lines">@@ -135,7 +135,7 @@
</span><span class="cx">             RenderStyle&amp; scriptsStyle = subSupPair-&gt;style();
</span><span class="cx">             scriptsStyle.setFlexDirection(FlowRow);
</span><span class="cx">             scriptsStyle.setJustifyContent(JustifyFlexStart);
</span><del>-            scriptsStyle.setAlignItems(AlignCenter);
</del><ins>+            scriptsStyle.setAlignItems(ItemPositionCenter);
</ins><span class="cx">             scriptsStyle.setOrder(0);
</span><span class="cx">             scriptsStyle.setFontSize(style().fontSize());
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleRenderStyleh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/RenderStyle.h (176217 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/RenderStyle.h	2014-11-17 19:48:47 UTC (rev 176217)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.h	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -903,15 +903,17 @@
</span><span class="cx">     float flexShrink() const { return rareNonInheritedData-&gt;m_flexibleBox-&gt;m_flexShrink; }
</span><span class="cx">     const Length&amp; flexBasis() const { return rareNonInheritedData-&gt;m_flexibleBox-&gt;m_flexBasis; }
</span><span class="cx">     EAlignContent alignContent() const { return static_cast&lt;EAlignContent&gt;(rareNonInheritedData-&gt;m_alignContent); }
</span><del>-    EAlignItems alignItems() const { return static_cast&lt;EAlignItems&gt;(rareNonInheritedData-&gt;m_alignItems); }
-    EAlignItems alignSelf() const { return static_cast&lt;EAlignItems&gt;(rareNonInheritedData-&gt;m_alignSelf); }
</del><ins>+    ItemPosition alignItems() const { return static_cast&lt;ItemPosition&gt;(rareNonInheritedData-&gt;m_alignItems); }
+    OverflowAlignment alignItemsOverflowAlignment() const { return static_cast&lt;OverflowAlignment&gt;(rareNonInheritedData-&gt;m_alignItemsOverflowAlignment); }
+    ItemPosition alignSelf() const { return static_cast&lt;ItemPosition&gt;(rareNonInheritedData-&gt;m_alignSelf); }
+    OverflowAlignment alignSelfOverflowAlignment() const { return static_cast&lt;OverflowAlignment&gt;(rareNonInheritedData-&gt;m_alignSelfOverflowAlignment); }
</ins><span class="cx">     EFlexDirection flexDirection() const { return static_cast&lt;EFlexDirection&gt;(rareNonInheritedData-&gt;m_flexibleBox-&gt;m_flexDirection); }
</span><span class="cx">     bool isColumnFlexDirection() const { return flexDirection() == FlowColumn || flexDirection() == FlowColumnReverse; }
</span><span class="cx">     bool isReverseFlexDirection() const { return flexDirection() == FlowRowReverse || flexDirection() == FlowColumnReverse; }
</span><span class="cx">     EFlexWrap flexWrap() const { return static_cast&lt;EFlexWrap&gt;(rareNonInheritedData-&gt;m_flexibleBox-&gt;m_flexWrap); }
</span><span class="cx">     EJustifyContent justifyContent() const { return static_cast&lt;EJustifyContent&gt;(rareNonInheritedData-&gt;m_justifyContent); }
</span><del>-    EJustifySelf justifySelf() const { return static_cast&lt;EJustifySelf&gt;(rareNonInheritedData-&gt;m_justifySelf); }
-    EJustifySelfOverflowAlignment justifySelfOverflowAlignment() const { return static_cast&lt;EJustifySelfOverflowAlignment&gt;(rareNonInheritedData-&gt;m_justifySelfOverflowAlignment); }
</del><ins>+    ItemPosition justifySelf() const { return static_cast&lt;ItemPosition&gt;(rareNonInheritedData-&gt;m_justifySelf); }
+    OverflowAlignment justifySelfOverflowAlignment() const { return static_cast&lt;OverflowAlignment&gt;(rareNonInheritedData-&gt;m_justifySelfOverflowAlignment); }
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_GRID_LAYOUT)
</span><span class="cx">     const Vector&lt;GridTrackSize&gt;&amp; gridColumns() const { return rareNonInheritedData-&gt;m_grid-&gt;m_gridColumns; }
</span><span class="lines">@@ -1475,13 +1477,15 @@
</span><span class="cx">     void setFlexBasis(Length length) { SET_VAR(rareNonInheritedData.access()-&gt;m_flexibleBox, m_flexBasis, WTF::move(length)); }
</span><span class="cx">     void setOrder(int o) { SET_VAR(rareNonInheritedData, m_order, o); }
</span><span class="cx">     void setAlignContent(EAlignContent p) { SET_VAR(rareNonInheritedData, m_alignContent, p); }
</span><del>-    void setAlignItems(EAlignItems a) { SET_VAR(rareNonInheritedData, m_alignItems, a); }
-    void setAlignSelf(EAlignItems a) { SET_VAR(rareNonInheritedData, m_alignSelf, a); }
</del><ins>+    void setAlignItems(ItemPosition a) { SET_VAR(rareNonInheritedData, m_alignItems, a); }
+    void setAlignItemsOverflowAlignment(OverflowAlignment overflowAlignment) { SET_VAR(rareNonInheritedData, m_alignItemsOverflowAlignment, overflowAlignment); }
+    void setAlignSelf(ItemPosition a) { SET_VAR(rareNonInheritedData, m_alignSelf, a); }
+    void setAlignSelfOverflowAlignment(OverflowAlignment overflowAlignment) { SET_VAR(rareNonInheritedData, m_alignSelfOverflowAlignment, overflowAlignment); }
</ins><span class="cx">     void setFlexDirection(EFlexDirection direction) { SET_VAR(rareNonInheritedData.access()-&gt;m_flexibleBox, m_flexDirection, direction); }
</span><span class="cx">     void setFlexWrap(EFlexWrap w) { SET_VAR(rareNonInheritedData.access()-&gt;m_flexibleBox, m_flexWrap, w); }
</span><span class="cx">     void setJustifyContent(EJustifyContent p) { SET_VAR(rareNonInheritedData, m_justifyContent, p); }
</span><del>-    void setJustifySelf(EJustifySelf p) { SET_VAR(rareNonInheritedData, m_justifySelf, p); }
-    void setJustifySelfOverflowAlignment(EJustifySelfOverflowAlignment overflowAlignment) { SET_VAR(rareNonInheritedData, m_justifySelfOverflowAlignment, overflowAlignment); }
</del><ins>+    void setJustifySelf(ItemPosition p) { SET_VAR(rareNonInheritedData, m_justifySelf, p); }
+    void setJustifySelfOverflowAlignment(OverflowAlignment overflowAlignment) { SET_VAR(rareNonInheritedData, m_justifySelfOverflowAlignment, overflowAlignment); }
</ins><span class="cx"> #if ENABLE(CSS_GRID_LAYOUT)
</span><span class="cx">     void setGridAutoColumns(const GridTrackSize&amp; length) { SET_VAR(rareNonInheritedData.access()-&gt;m_grid, m_gridAutoColumns, length); }
</span><span class="cx">     void setGridAutoRows(const GridTrackSize&amp; length) { SET_VAR(rareNonInheritedData.access()-&gt;m_grid, m_gridAutoRows, length); }
</span><span class="lines">@@ -1760,6 +1764,7 @@
</span><span class="cx">     bool isDisplayReplacedType() const { return isDisplayReplacedType(display()); }
</span><span class="cx">     bool isDisplayInlineType() const { return isDisplayInlineType(display()); }
</span><span class="cx">     bool isOriginalDisplayInlineType() const { return isDisplayInlineType(originalDisplay()); }
</span><ins>+    bool isDisplayFlexibleOrGridBox() const { return isDisplayFlexibleOrGridBox(display()); }
</ins><span class="cx">     bool isDisplayRegionType() const
</span><span class="cx">     {
</span><span class="cx">         return display() == BLOCK || display() == INLINE_BLOCK
</span><span class="lines">@@ -1883,13 +1888,15 @@
</span><span class="cx">     static Length initialFlexBasis() { return Length(Auto); }
</span><span class="cx">     static int initialOrder() { return 0; }
</span><span class="cx">     static EAlignContent initialAlignContent() { return AlignContentStretch; }
</span><del>-    static EAlignItems initialAlignItems() { return AlignStretch; }
-    static EAlignItems initialAlignSelf() { return AlignAuto; }
</del><ins>+    static ItemPosition initialAlignItems() { return ItemPositionAuto; }
+    static OverflowAlignment initialAlignItemsOverflowAlignment() { return OverflowAlignmentDefault; }
+    static ItemPosition initialAlignSelf() { return ItemPositionAuto; }
+    static OverflowAlignment initialAlignSelfOverflowAlignment() { return OverflowAlignmentDefault; }
</ins><span class="cx">     static EFlexDirection initialFlexDirection() { return FlowRow; }
</span><span class="cx">     static EFlexWrap initialFlexWrap() { return FlexNoWrap; }
</span><span class="cx">     static EJustifyContent initialJustifyContent() { return JustifyFlexStart; }
</span><del>-    static EJustifySelf initialJustifySelf() { return JustifySelfAuto; }
-    static EJustifySelfOverflowAlignment initialJustifySelfOverflowAlignment() { return JustifySelfOverflowAlignmentDefault; }
</del><ins>+    static ItemPosition initialJustifySelf() { return ItemPositionAuto; }
+    static OverflowAlignment initialJustifySelfOverflowAlignment() { return OverflowAlignmentDefault; }
</ins><span class="cx">     static int initialMarqueeLoopCount() { return -1; }
</span><span class="cx">     static int initialMarqueeSpeed() { return 85; }
</span><span class="cx">     static Length initialMarqueeIncrement() { return Length(6, Fixed); }
</span><span class="lines">@@ -2075,6 +2082,26 @@
</span><span class="cx">         return display == INLINE || isDisplayReplacedType(display);
</span><span class="cx">     }
</span><span class="cx"> 
</span><ins>+    bool isDisplayFlexibleBox(EDisplay display) const
+    {
+        return display == FLEX || display == INLINE_FLEX;
+    }
+
+    bool isDisplayGridBox(EDisplay display) const
+    {
+#if ENABLE(CSS_GRID_LAYOUT)
+        return display == GRID || display == INLINE_GRID;
+#else
+        UNUSED_PARAM(display);
+        return false;
+#endif
+    }
+
+    bool isDisplayFlexibleOrGridBox(EDisplay display) const
+    {
+        return isDisplayFlexibleBox(display) || isDisplayGridBox(display);
+    }
+
</ins><span class="cx">     // Color accessors are all private to make sure callers use visitedDependentColor instead to access them.
</span><span class="cx">     Color invalidColor() const { static Color invalid; return invalid; }
</span><span class="cx">     Color borderLeftColor() const { return surround-&gt;border.left().color(); }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleRenderStyleConstantsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/RenderStyleConstants.h (176217 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/RenderStyleConstants.h	2014-11-17 19:48:47 UTC (rev 176217)
+++ trunk/Source/WebCore/rendering/style/RenderStyleConstants.h	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -244,12 +244,11 @@
</span><span class="cx"> // CSS3 Flexbox Properties
</span><span class="cx"> 
</span><span class="cx"> enum EAlignContent { AlignContentFlexStart, AlignContentFlexEnd, AlignContentCenter, AlignContentSpaceBetween, AlignContentSpaceAround, AlignContentStretch };
</span><del>-enum EAlignItems { AlignAuto, AlignFlexStart, AlignFlexEnd, AlignCenter, AlignStretch, AlignBaseline };
</del><span class="cx"> enum EFlexDirection { FlowRow, FlowRowReverse, FlowColumn, FlowColumnReverse };
</span><span class="cx"> enum EFlexWrap { FlexNoWrap, FlexWrap, FlexWrapReverse };
</span><span class="cx"> enum EJustifyContent { JustifyFlexStart, JustifyFlexEnd, JustifyCenter, JustifySpaceBetween, JustifySpaceAround };
</span><del>-enum EJustifySelf {JustifySelfAuto, JustifySelfStretch, JustifySelfBaseline, JustifySelfCenter, JustifySelfStart, JustifySelfEnd, JustifySelfSelfStart, JustifySelfSelfEnd, JustifySelfFlexStart, JustifySelfFlexEnd, JustifySelfLeft, JustifySelfRight};
-enum EJustifySelfOverflowAlignment {JustifySelfOverflowAlignmentDefault, JustifySelfOverflowAlignmentTrue, JustifySelfOverflowAlignmentSafe};
</del><ins>+enum ItemPosition {ItemPositionAuto, ItemPositionStretch, ItemPositionBaseline, ItemPositionLastBaseline, ItemPositionCenter, ItemPositionStart, ItemPositionEnd, ItemPositionSelfStart, ItemPositionSelfEnd, ItemPositionFlexStart, ItemPositionFlexEnd, ItemPositionLeft, ItemPositionRight};
+enum OverflowAlignment {OverflowAlignmentDefault, OverflowAlignmentTrue, OverflowAlignmentSafe};
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> enum ETextSecurity {
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleRareNonInheritedDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp (176217 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp	2014-11-17 19:48:47 UTC (rev 176217)
+++ trunk/Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -83,7 +83,9 @@
</span><span class="cx">     , m_backfaceVisibility(RenderStyle::initialBackfaceVisibility())
</span><span class="cx">     , m_alignContent(RenderStyle::initialAlignContent())
</span><span class="cx">     , m_alignItems(RenderStyle::initialAlignItems())
</span><ins>+    , m_alignItemsOverflowAlignment(RenderStyle::initialAlignItemsOverflowAlignment())
</ins><span class="cx">     , m_alignSelf(RenderStyle::initialAlignSelf())
</span><ins>+    , m_alignSelfOverflowAlignment(RenderStyle::initialAlignSelfOverflowAlignment())
</ins><span class="cx">     , m_justifyContent(RenderStyle::initialJustifyContent())
</span><span class="cx">     , m_justifySelf(RenderStyle::initialJustifySelf())
</span><span class="cx">     , m_justifySelfOverflowAlignment(RenderStyle::initialJustifySelfOverflowAlignment())
</span><span class="lines">@@ -170,7 +172,9 @@
</span><span class="cx">     , m_backfaceVisibility(o.m_backfaceVisibility)
</span><span class="cx">     , m_alignContent(o.m_alignContent)
</span><span class="cx">     , m_alignItems(o.m_alignItems)
</span><ins>+    , m_alignItemsOverflowAlignment(o.m_alignItemsOverflowAlignment)
</ins><span class="cx">     , m_alignSelf(o.m_alignSelf)
</span><ins>+    , m_alignSelfOverflowAlignment(o.m_alignSelfOverflowAlignment)
</ins><span class="cx">     , m_justifyContent(o.m_justifyContent)
</span><span class="cx">     , m_justifySelf(o.m_justifySelf)
</span><span class="cx">     , m_justifySelfOverflowAlignment(o.m_justifySelfOverflowAlignment)
</span><span class="lines">@@ -265,7 +269,9 @@
</span><span class="cx">         &amp;&amp; m_backfaceVisibility == o.m_backfaceVisibility
</span><span class="cx">         &amp;&amp; m_alignContent == o.m_alignContent
</span><span class="cx">         &amp;&amp; m_alignItems == o.m_alignItems
</span><ins>+        &amp;&amp; m_alignItemsOverflowAlignment == o.m_alignItemsOverflowAlignment
</ins><span class="cx">         &amp;&amp; m_alignSelf == o.m_alignSelf
</span><ins>+        &amp;&amp; m_alignSelfOverflowAlignment == o.m_alignSelfOverflowAlignment
</ins><span class="cx">         &amp;&amp; m_justifyContent == o.m_justifyContent
</span><span class="cx">         &amp;&amp; userDrag == o.userDrag
</span><span class="cx">         &amp;&amp; textOverflow == o.textOverflow
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleRareNonInheritedDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleRareNonInheritedData.h (176217 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleRareNonInheritedData.h	2014-11-17 19:48:47 UTC (rev 176217)
+++ trunk/Source/WebCore/rendering/style/StyleRareNonInheritedData.h	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -188,12 +188,14 @@
</span><span class="cx">     unsigned m_backfaceVisibility : 1; // EBackfaceVisibility
</span><span class="cx"> 
</span><span class="cx">     unsigned m_alignContent : 3; // EAlignContent
</span><del>-    unsigned m_alignItems : 3; // EAlignItems
-    unsigned m_alignSelf : 3; // EAlignItems
</del><ins>+    unsigned m_alignItems : 4; // ItemPosition
+    unsigned m_alignItemsOverflowAlignment : 2; // OverflowAlignment
+    unsigned m_alignSelf : 4; // ItemPosition
+    unsigned m_alignSelfOverflowAlignment : 2; // OverflowAlignment
</ins><span class="cx">     unsigned m_justifyContent : 3; // EJustifyContent
</span><span class="cx"> 
</span><del>-    unsigned m_justifySelf : 4; // EJustifySelf
-    unsigned m_justifySelfOverflowAlignment : 2; // EJustifySelfOverflowAlignment
</del><ins>+    unsigned m_justifySelf : 4; // ItemPosition
+    unsigned m_justifySelfOverflowAlignment : 2; // OverflowAlignment
</ins><span class="cx"> 
</span><span class="cx">     unsigned userDrag : 2; // EUserDrag
</span><span class="cx">     unsigned textOverflow : 1; // Whether or not lines that spill out should be truncated with &quot;...&quot;
</span></span></pre></div>
<a id="trunkSourceWebCorestyleStyleResolveTreecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/style/StyleResolveTree.cpp (176217 => 176218)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/style/StyleResolveTree.cpp	2014-11-17 19:48:47 UTC (rev 176217)
+++ trunk/Source/WebCore/style/StyleResolveTree.cpp	2014-11-17 19:52:42 UTC (rev 176218)
</span><span class="lines">@@ -121,6 +121,8 @@
</span><span class="cx">     // a separate render region object.
</span><span class="cx">     if (s1.hasFlowFrom() &amp;&amp; (s1.specifiesColumns() != s2.specifiesColumns()))
</span><span class="cx">         return Detach;
</span><ins>+    if (s1.alignItems() != s2.alignItems())
+        return Detach;
</ins><span class="cx"> 
</span><span class="cx">     if (s1 != s2) {
</span><span class="cx">         if (s1.inheritedNotEqual(&amp;s2))
</span></span></pre>
</div>
</div>

</body>
</html>


More information about the webkit-changes mailing list