No subject


Fri Mar 7 15:32:22 PST 2014


4685">r164685</a> by &lt;jchaffraix at chromium.org&gt;

Source/WebCore:
Test: fast/css/parse-justify-self.html

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue):
(WebCore::CSSParser::parseValue):
(WebCore::isItemPositionKeyword):
(WebCore::CSSParser::parseJustifySelf):
* css/CSSParser.h:
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator EJustifySelf):
(WebCore::CSSPrimitiveValue::operator EJustifySelfOverflowAlignment):
* css/CSSPropertyNames.in:
* css/CSSValueKeywords.in:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
* rendering/style/RenderStyle.h:
* rendering/style/RenderStyleConstants.h:
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator=3D=3D):
* rendering/style/StyleRareNonInheritedData.h:

LayoutTests:
* fast/css/parse-justify-self-expected.txt: Added.
* fast/css/parse-justify-self.html: Added.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href=3D"#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a=
></li>
<li><a href=3D"#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeL=
og</a></li>
<li><a href=3D"#trunkSourceWebCorecssCSSComputedStyleDeclarationcpp">trun=
k/Source/WebCore/css/CSSComputedStyleDeclaration.cpp</a></li>
<li><a href=3D"#trunkSourceWebCorecssCSSParsercpp">trunk/Source/WebCore/c=
ss/CSSParser.cpp</a></li>
<li><a href=3D"#trunkSourceWebCorecssCSSParserh">trunk/Source/WebCore/css=
/CSSParser.h</a></li>
<li><a href=3D"#trunkSourceWebCorecssCSSPrimitiveValueMappingsh">trunk/So=
urce/WebCore/css/CSSPrimitiveValueMappings.h</a></li>
<li><a href=3D"#trunkSourceWebCorecssCSSPropertyNamesin">trunk/Source/Web=
Core/css/CSSPropertyNames.in</a></li>
<li><a href=3D"#trunkSourceWebCorecssCSSValueKeywordsin">trunk/Source/Web=
Core/css/CSSValueKeywords.in</a></li>
<li><a href=3D"#trunkSourceWebCorecssStyleResolvercpp">trunk/Source/WebCo=
re/css/StyleResolver.cpp</a></li>
<li><a href=3D"#trunkSourceWebCorerenderingstyleRenderStyleh">trunk/Sourc=
e/WebCore/rendering/style/RenderStyle.h</a></li>
<li><a href=3D"#trunkSourceWebCorerenderingstyleRenderStyleConstantsh">tr=
unk/Source/WebCore/rendering/style/RenderStyleConstants.h</a></li>
<li><a href=3D"#trunkSourceWebCorerenderingstyleStyleRareNonInheritedData=
cpp">trunk/Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp</=
a></li>
<li><a href=3D"#trunkSourceWebCorerenderingstyleStyleRareNonInheritedData=
h">trunk/Source/WebCore/rendering/style/StyleRareNonInheritedData.h</a></=
li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href=3D"#trunkLayoutTestsfastcssparsejustifyselfexpectedtxt">trunk=
/LayoutTests/fast/css/parse-justify-self-expected.txt</a></li>
<li><a href=3D"#trunkLayoutTestsfastcssparsejustifyselfhtml">trunk/Layout=
Tests/fast/css/parse-justify-self.html</a></li>
</ul>

</div>
<div id=3D"patch">
<h3>Diff</h3>
<a id=3D"trunkLayoutTestsChangeLog"></a>
<div class=3D"modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (171009 =
=3D> 171010)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/LayoutTests/ChangeLog	2014-07-11 19:47:40 =
UTC (rev 171009)
+++ trunk/LayoutTests/ChangeLog	2014-07-11 20:26:00 UTC (rev 171010)
</span><span class=3D"lines">@@ -1,3 +1,18 @@
</span><ins>+2014-07-11  Javier Fernandez  &lt;jfernandez at igalia.com&gt;
+
+        [CSS Grid Layout] Implement justify-self css property
+        https://bugs.webkit.org/show_bug.cgi?id=3D134419
+
+        Reviewed by Dean Jackson.
+
+        This change adds the justify-self property from CSS 3 Box Alignm=
ent
+        and implements the parsing.
+
+        From Blink r164685 by &lt;jchaffraix at chromium.org&gt;
+
+        * fast/css/parse-justify-self-expected.txt: Added.
+        * fast/css/parse-justify-self.html: Added.
+
</ins><span class=3D"cx"> 2014-07-11  Brent Fulgham  &lt;bfulgham at apple.c=
om&gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx">         Use a separate backdrop element to all=
ow cues to have highlight and background color
</span></span></pre></div>
<a id=3D"trunkLayoutTestsfastcssparsejustifyselfexpectedtxt"></a>
<div class=3D"addfile"><h4>Added: trunk/LayoutTests/fast/css/parse-justif=
y-self-expected.txt (0 =3D> 171010)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/LayoutTests/fast/css/parse-justify-self-ex=
pected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/css/parse-justify-self-expected.txt	2014-07-11=
 20:26:00 UTC (rev 171010)
</span><span class=3D"lines">@@ -0,0 +1,61 @@
</span><ins>+Test that setting and getting justify-self works as expected
+
+On success, you will see a series of &quot;PASS&quot; messages, followed=
 by &quot;TEST COMPLETE&quot;.
+
+
+Test getting justify-self set through CSS
+PASS getComputedStyle(justifySelfBaseline, '').getPropertyValue('-webkit=
-justify-self') is 'baseline'
+PASS getComputedStyle(justifySelfStretch, '').getPropertyValue('-webkit-=
justify-self') is 'stretch'
+PASS getComputedStyle(justifySelfStart, '').getPropertyValue('-webkit-ju=
stify-self') is 'start'
+PASS getComputedStyle(justifySelfEnd, '').getPropertyValue('-webkit-just=
ify-self') is 'end'
+PASS getComputedStyle(justifySelfCenter, '').getPropertyValue('-webkit-j=
ustify-self') is 'center'
+PASS getComputedStyle(justifySelfSelfEnd, '').getPropertyValue('-webkit-=
justify-self') is 'self-end'
+PASS getComputedStyle(justifySelfSelfStart, '').getPropertyValue('-webki=
t-justify-self') is 'self-start'
+PASS getComputedStyle(justifySelfLeft, '').getPropertyValue('-webkit-jus=
tify-self') is 'left'
+PASS getComputedStyle(justifySelfRight, '').getPropertyValue('-webkit-ju=
stify-self') is 'right'
+PASS getComputedStyle(justifySelfEndTrue, '').getPropertyValue('-webkit-=
justify-self') is 'end true'
+PASS getComputedStyle(justifySelfCenterTrue, '').getPropertyValue('-webk=
it-justify-self') is 'center true'
+PASS getComputedStyle(justifySelfSelfEndSafe, '').getPropertyValue('-web=
kit-justify-self') is 'self-end safe'
+PASS getComputedStyle(justifySelfSelfStartSafe, '').getPropertyValue('-w=
ebkit-justify-self') is 'self-start safe'
+PASS getComputedStyle(justifySelfRightSafe, '').getPropertyValue('-webki=
t-justify-self') is 'right safe'
+PASS getComputedStyle(justifySelfLeftTrue, '').getPropertyValue('-webkit=
-justify-self') is 'left true'
+
+Test initial value of justify-self through JS
+PASS getComputedStyle(element, '').getPropertyValue('-webkit-justify-sel=
f') is 'auto'
+
+Test getting and setting justify-self through JS
+PASS getComputedStyle(element, '').getPropertyValue('-webkit-justify-sel=
f') is 'center'
+PASS getComputedStyle(element, '').getPropertyValue('-webkit-justify-sel=
f') is 'start true'
+PASS getComputedStyle(element, '').getPropertyValue('-webkit-justify-sel=
f') is 'auto'
+
+Test bad combinaisons of justify-self
+PASS getComputedStyle(element, '').getPropertyValue('-webkit-justify-sel=
f') is 'auto'
+PASS getComputedStyle(element, '').getPropertyValue('-webkit-justify-sel=
f') is 'auto'
+PASS getComputedStyle(element, '').getPropertyValue('-webkit-justify-sel=
f') is 'auto'
+PASS getComputedStyle(element, '').getPropertyValue('-webkit-justify-sel=
f') is 'auto'
+PASS getComputedStyle(element, '').getPropertyValue('-webkit-justify-sel=
f') is 'auto'
+PASS getComputedStyle(element, '').getPropertyValue('-webkit-justify-sel=
f') is 'auto'
+PASS getComputedStyle(element, '').getPropertyValue('-webkit-justify-sel=
f') is 'auto'
+PASS getComputedStyle(element, '').getPropertyValue('-webkit-justify-sel=
f') is 'auto'
+PASS getComputedStyle(element, '').getPropertyValue('-webkit-justify-sel=
f') is 'auto'
+PASS getComputedStyle(element, '').getPropertyValue('-webkit-justify-sel=
f') is 'auto'
+PASS getComputedStyle(element, '').getPropertyValue('-webkit-justify-sel=
f') is 'auto'
+PASS getComputedStyle(element, '').getPropertyValue('-webkit-justify-sel=
f') is 'auto'
+PASS getComputedStyle(element, '').getPropertyValue('-webkit-justify-sel=
f') is 'auto'
+PASS getComputedStyle(element, '').getPropertyValue('-webkit-justify-sel=
f') is 'auto'
+PASS getComputedStyle(element, '').getPropertyValue('-webkit-justify-sel=
f') is 'auto'
+PASS getComputedStyle(element, '').getPropertyValue('-webkit-justify-sel=
f') is 'auto'
+PASS getComputedStyle(element, '').getPropertyValue('-webkit-justify-sel=
f') is 'auto'
+PASS getComputedStyle(element, '').getPropertyValue('-webkit-justify-sel=
f') is 'auto'
+
+Test the value 'initial'
+PASS getComputedStyle(element, '').getPropertyValue('-webkit-justify-sel=
f') is 'center'
+PASS getComputedStyle(element, '').getPropertyValue('-webkit-justify-sel=
f') is 'auto'
+
+Test the value 'inherit'
+PASS getComputedStyle(parentElement, '').getPropertyValue('-webkit-justi=
fy-self') is 'end'
+PASS getComputedStyle(element, '').getPropertyValue('-webkit-justify-sel=
f') is 'end'
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id=3D"trunkLayoutTestsfastcssparsejustifyselfhtml"></a>
<div class=3D"addfile"><h4>Added: trunk/LayoutTests/fast/css/parse-justif=
y-self.html (0 =3D> 171010)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/LayoutTests/fast/css/parse-justify-self.ht=
ml	                        (rev 0)
+++ trunk/LayoutTests/fast/css/parse-justify-self.html	2014-07-11 20:26:0=
0 UTC (rev 171010)
</span><span class=3D"lines">@@ -0,0 +1,232 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;style&gt;
+#justifySelfBaseline {
+    -webkit-justify-self: baseline;
+}
+
+#justifySelfStretch {
+    -webkit-justify-self: stretch;
+}
+
+#justifySelfStart {
+    -webkit-justify-self: start;
+}
+
+#justifySelfEnd {
+    -webkit-justify-self: end;
+}
+
+#justifySelfCenter {
+    -webkit-justify-self: center;
+}
+
+#justifySelfSelfStart {
+    -webkit-justify-self: self-start;
+}
+
+#justifySelfSelfEnd {
+    -webkit-justify-self: self-end;
+}
+
+#justifySelfLeft {
+    -webkit-justify-self: left;
+}
+
+#justifySelfRight {
+    -webkit-justify-self: right;
+}
+
+#justifySelfEndTrue {
+    -webkit-justify-self: end true;
+}
+
+#justifySelfCenterTrue {
+    -webkit-justify-self: center true;
+}
+
+#justifySelfSelfEndSafe {
+    -webkit-justify-self: self-end safe;
+}
+
+#justifySelfSelfStartSafe {
+    -webkit-justify-self: self-start safe;
+}
+
+#justifySelfRightSafe {
+    -webkit-justify-self: right safe;
+}
+
+#justifySelfLeftTrue {
+    -webkit-justify-self: left true;
+}
+&lt;/style&gt;
+&lt;script src=3D&quot;../../resources/js-test.js&quot;&gt;&lt;/script&g=
t;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;div id=3D&quot;justifySelfBaseline&quot;&gt;&lt;/div&gt;
+&lt;div id=3D&quot;justifySelfStretch&quot;&gt;&lt;/div&gt;
+&lt;div id=3D&quot;justifySelfStart&quot;&gt;&lt;/div&gt;
+&lt;div id=3D&quot;justifySelfEnd&quot;&gt;&lt;/div&gt;
+&lt;div id=3D&quot;justifySelfCenter&quot;&gt;&lt;/div&gt;
+&lt;div id=3D&quot;justifySelfSelfStart&quot;&gt;&lt;/div&gt;
+&lt;div id=3D&quot;justifySelfSelfEnd&quot;&gt;&lt;/div&gt;
+&lt;div id=3D&quot;justifySelfLeft&quot;&gt;&lt;/div&gt;
+&lt;div id=3D&quot;justifySelfRight&quot;&gt;&lt;/div&gt;
+
+&lt;div id=3D&quot;justifySelfEndTrue&quot;&gt;&lt;/div&gt;
+&lt;div id=3D&quot;justifySelfCenterTrue&quot;&gt;&lt;/div&gt;
+&lt;div id=3D&quot;justifySelfSelfEndSafe&quot;&gt;&lt;/div&gt;
+&lt;div id=3D&quot;justifySelfSelfStartSafe&quot;&gt;&lt;/div&gt;
+&lt;div id=3D&quot;justifySelfRightSafe&quot;&gt;&lt;/div&gt;
+&lt;div id=3D&quot;justifySelfLeftTrue&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+description('Test that setting and getting justify-self works as expecte=
d');
+
+debug(&quot;Test getting justify-self set through CSS&quot;);
+var justifySelfBaseline =3D document.getElementById(&quot;justifySelfBas=
eline&quot;);
+shouldBe(&quot;getComputedStyle(justifySelfBaseline, '').getPropertyValu=
e('-webkit-justify-self')&quot;, &quot;'baseline'&quot;);
+
+var justifySelfStretch =3D document.getElementById(&quot;justifySelfStre=
tch&quot;);
+shouldBe(&quot;getComputedStyle(justifySelfStretch, '').getPropertyValue=
('-webkit-justify-self')&quot;, &quot;'stretch'&quot;);
+
+var justifySelfStart =3D document.getElementById(&quot;justifySelfStart&=
quot;);
+shouldBe(&quot;getComputedStyle(justifySelfStart, '').getPropertyValue('=
-webkit-justify-self')&quot;, &quot;'start'&quot;);
+
+var justifySelfEnd =3D document.getElementById(&quot;justifySelfEnd&quot=
;);
+shouldBe(&quot;getComputedStyle(justifySelfEnd, '').getPropertyValue('-w=
ebkit-justify-self')&quot;, &quot;'end'&quot;);
+
+var justifySelfCenter =3D document.getElementById(&quot;justifySelfCente=
r&quot;);
+shouldBe(&quot;getComputedStyle(justifySelfCenter, '').getPropertyValue(=
'-webkit-justify-self')&quot;, &quot;'center'&quot;);
+
+var justifySelfSelfEnd =3D document.getElementById(&quot;justifySelfSelf=
End&quot;);
+shouldBe(&quot;getComputedStyle(justifySelfSelfEnd, '').getPropertyValue=
('-webkit-justify-self')&quot;, &quot;'self-end'&quot;);
+
+var justifySelfSelfStart =3D document.getElementById(&quot;justifySelfSe=
lfStart&quot;);
+shouldBe(&quot;getComputedStyle(justifySelfSelfStart, '').getPropertyVal=
ue('-webkit-justify-self')&quot;, &quot;'self-start'&quot;);
+
+var justifySelfLeft =3D document.getElementById(&quot;justifySelfLeft&qu=
ot;);
+shouldBe(&quot;getComputedStyle(justifySelfLeft, '').getPropertyValue('-=
webkit-justify-self')&quot;, &quot;'left'&quot;);
+
+var justifySelfRight =3D document.getElementById(&quot;justifySelfRight&=
quot;);
+shouldBe(&quot;getComputedStyle(justifySelfRight, '').getPropertyValue('=
-webkit-justify-self')&quot;, &quot;'right'&quot;);
+
+var justifySelfEndTrue =3D document.getElementById(&quot;justifySelfEndT=
rue&quot;);
+shouldBe(&quot;getComputedStyle(justifySelfEndTrue, '').getPropertyValue=
('-webkit-justify-self')&quot;, &quot;'end true'&quot;);
+
+var justifySelfCenterTrue =3D document.getElementById(&quot;justifySelfC=
enterTrue&quot;);
+shouldBe(&quot;getComputedStyle(justifySelfCenterTrue, '').getPropertyVa=
lue('-webkit-justify-self')&quot;, &quot;'center true'&quot;);
+
+var justifySelfSelfEndSafe =3D document.getElementById(&quot;justifySelf=
SelfEndSafe&quot;);
+shouldBe(&quot;getComputedStyle(justifySelfSelfEndSafe, '').getPropertyV=
alue('-webkit-justify-self')&quot;, &quot;'self-end safe'&quot;);
+
+var justifySelfSelfStartSafe =3D document.getElementById(&quot;justifySe=
lfSelfStartSafe&quot;);
+shouldBe(&quot;getComputedStyle(justifySelfSelfStartSafe, '').getPropert=
yValue('-webkit-justify-self')&quot;, &quot;'self-start safe'&quot;);
+
+var justifySelfRightSafe =3D document.getElementById(&quot;justifySelfRi=
ghtSafe&quot;);
+shouldBe(&quot;getComputedStyle(justifySelfRightSafe, '').getPropertyVal=
ue('-webkit-justify-self')&quot;, &quot;'right safe'&quot;);
+
+var justifySelfLeftTrue =3D document.getElementById(&quot;justifySelfLef=
tTrue&quot;);
+shouldBe(&quot;getComputedStyle(justifySelfLeftTrue, '').getPropertyValu=
e('-webkit-justify-self')&quot;, &quot;'left true'&quot;);
+
+debug(&quot;&quot;);
+debug(&quot;Test initial value of justify-self through JS&quot;);
+element =3D document.createElement(&quot;div&quot;);
+document.body.appendChild(element);
+shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('-webkit-j=
ustify-self')&quot;, &quot;'auto'&quot;);
+
+debug(&quot;&quot;);
+debug(&quot;Test getting and setting justify-self through JS&quot;);
+element =3D document.createElement(&quot;div&quot;);
+document.body.appendChild(element);
+element.style.webkitJustifySelf =3D &quot;center&quot;;
+shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('-webkit-j=
ustify-self')&quot;, &quot;'center'&quot;);
+
+element =3D document.createElement(&quot;div&quot;);
+document.body.appendChild(element);
+element.style.webkitJustifySelf =3D &quot;true start&quot;;
+shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('-webkit-j=
ustify-self')&quot;, &quot;'start true'&quot;);
+
+element.style.webkitJustifySelf =3D &quot;auto&quot;;
+shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('-webkit-j=
ustify-self')&quot;, &quot;'auto'&quot;);
+
+debug(&quot;&quot;);
+debug(&quot;Test bad combinaisons of justify-self&quot;);
+element =3D document.createElement(&quot;div&quot;);
+document.body.appendChild(element);
+element.style.webkitJustifySelf =3D &quot;true auto&quot;;
+shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('-webkit-j=
ustify-self')&quot;, &quot;'auto'&quot;);
+
+element.style.webkitJustifySelf =3D &quot;auto safe&quot;;
+shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('-webkit-j=
ustify-self')&quot;, &quot;'auto'&quot;);
+
+element.style.webkitJustifySelf =3D &quot;auto left&quot;;
+shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('-webkit-j=
ustify-self')&quot;, &quot;'auto'&quot;);
+
+element.style.webkitJustifySelf =3D &quot;baseline safe&quot;;
+shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('-webkit-j=
ustify-self')&quot;, &quot;'auto'&quot;);
+
+element.style.webkitJustifySelf =3D &quot;baseline center&quot;;
+shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('-webkit-j=
ustify-self')&quot;, &quot;'auto'&quot;);
+
+element.style.webkitJustifySelf =3D &quot;stretch true&quot;;
+shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('-webkit-j=
ustify-self')&quot;, &quot;'auto'&quot;);
+
+element.style.webkitJustifySelf =3D &quot;stretch right&quot;;
+shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('-webkit-j=
ustify-self')&quot;, &quot;'auto'&quot;);
+
+element.style.webkitJustifySelf =3D &quot;true true&quot;;
+shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('-webkit-j=
ustify-self')&quot;, &quot;'auto'&quot;);
+
+element.style.webkitJustifySelf =3D &quot;true safe&quot;;
+shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('-webkit-j=
ustify-self')&quot;, &quot;'auto'&quot;);
+
+element.style.webkitJustifySelf =3D &quot;center start&quot;;
+shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('-webkit-j=
ustify-self')&quot;, &quot;'auto'&quot;);
+
+element.style.webkitJustifySelf =3D &quot;stretch true&quot;;
+shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('-webkit-j=
ustify-self')&quot;, &quot;'auto'&quot;);
+
+element.style.webkitJustifySelf =3D &quot;safe stretch&quot;;
+shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('-webkit-j=
ustify-self')&quot;, &quot;'auto'&quot;);
+
+element.style.webkitJustifySelf =3D &quot;baseline safe&quot;;
+shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('-webkit-j=
ustify-self')&quot;, &quot;'auto'&quot;);
+
+element.style.webkitJustifySelf =3D &quot;true baseline&quot;;
+shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('-webkit-j=
ustify-self')&quot;, &quot;'auto'&quot;);
+
+element.style.webkitJustifySelf =3D &quot;true safe&quot;;
+shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('-webkit-j=
ustify-self')&quot;, &quot;'auto'&quot;);
+
+element.style.webkitJustifySelf =3D &quot;true safe left&quot;;
+shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('-webkit-j=
ustify-self')&quot;, &quot;'auto'&quot;);
+
+element.style.webkitJustifySelf =3D &quot;true left safe&quot;;
+shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('-webkit-j=
ustify-self')&quot;, &quot;'auto'&quot;);
+
+element.style.webkitJustifySelf =3D &quot;left safe true safe&quot;;
+shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('-webkit-j=
ustify-self')&quot;, &quot;'auto'&quot;);
+
+debug(&quot;&quot;);
+debug(&quot;Test the value 'initial'&quot;);
+element.style.webkitJustifySelf =3D &quot;center&quot;;
+shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('-webkit-j=
ustify-self')&quot;, &quot;'center'&quot;);
+element.style.webkitJustifySelf =3D &quot;initial&quot;;
+shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('-webkit-j=
ustify-self')&quot;, &quot;'auto'&quot;);
+
+debug(&quot;&quot;);
+debug(&quot;Test the value 'inherit'&quot;);
+parentElement =3D document.createElement(&quot;div&quot;);
+document.body.appendChild(parentElement);
+parentElement.style.webkitJustifySelf =3D &quot;end&quot;;
+shouldBe(&quot;getComputedStyle(parentElement, '').getPropertyValue('-we=
bkit-justify-self')&quot;, &quot;'end'&quot;);
+
+element =3D document.createElement(&quot;div&quot;);
+parentElement.appendChild(element);
+element.style.webkitJustifySelf =3D &quot;inherit&quot;;
+shouldBe(&quot;getComputedStyle(element, '').getPropertyValue('-webkit-j=
ustify-self')&quot;, &quot;'end'&quot;);
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id=3D"trunkSourceWebCoreChangeLog"></a>
<div class=3D"modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (1710=
09 =3D> 171010)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/Source/WebCore/ChangeLog	2014-07-11 19:47:=
40 UTC (rev 171009)
+++ trunk/Source/WebCore/ChangeLog	2014-07-11 20:26:00 UTC (rev 171010)
</span><span class=3D"lines">@@ -1,3 +1,42 @@
</span><ins>+2014-07-11  Javier Fernandez  &lt;jfernandez at igalia.com&gt;
+
+        [CSS Grid Layout] Implement justify-self css property
+        https://bugs.webkit.org/show_bug.cgi?id=3D134419
+
+        Reviewed by Dean Jackson.
+
+        This change adds the justify-self property from CSS 3 Box Alignm=
ent
+        and implements the parsing.
+
+        From Blink r164685 by &lt;jchaffraix at chromium.org&gt;
+
+        Test: fast/css/parse-justify-self.html
+
+        * css/CSSComputedStyleDeclaration.cpp:
+        (WebCore::ComputedStyleExtractor::propertyValue):
+        * css/CSSParser.cpp:
+        (WebCore::isValidKeywordPropertyAndValue):
+        (WebCore::CSSParser::parseValue):
+        (WebCore::isItemPositionKeyword):
+        (WebCore::CSSParser::parseJustifySelf):
+        * css/CSSParser.h:
+        * css/CSSPrimitiveValueMappings.h:
+        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
+        (WebCore::CSSPrimitiveValue::operator EJustifySelf):
+        (WebCore::CSSPrimitiveValue::operator EJustifySelfOverflowAlignm=
ent):
+        * css/CSSPropertyNames.in:
+        * css/CSSValueKeywords.in:
+        * css/DeprecatedStyleBuilder.cpp:
+        (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
+        * css/StyleResolver.cpp:
+        (WebCore::StyleResolver::applyProperty):
+        * rendering/style/RenderStyle.h:
+        * rendering/style/RenderStyleConstants.h:
+        * rendering/style/StyleRareNonInheritedData.cpp:
+        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
+        (WebCore::StyleRareNonInheritedData::operator=3D=3D):
+        * rendering/style/StyleRareNonInheritedData.h:
+
</ins><span class=3D"cx"> 2014-07-11  Bear Travis  &lt;betravis at adobe.com=
&gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx">         [Feature Queries] Feature Query CSS Gr=
ammar Productions Should Return a Value
</span></span></pre></div>
<a id=3D"trunkSourceWebCorecssCSSComputedStyleDeclarationcpp"></a>
<div class=3D"modfile"><h4>Modified: trunk/Source/WebCore/css/CSSComputed=
StyleDeclaration.cpp (171009 =3D> 171010)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/Source/WebCore/css/CSSComputedStyleDeclara=
tion.cpp	2014-07-11 19:47:40 UTC (rev 171009)
+++ trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp	2014-07-11 2=
0:26:00 UTC (rev 171010)
</span><span class=3D"lines">@@ -283,6 +283,7 @@
</span><span class=3D"cx">     CSSPropertyWebkitFlexDirection,
</span><span class=3D"cx">     CSSPropertyWebkitFlexWrap,
</span><span class=3D"cx">     CSSPropertyWebkitJustifyContent,
</span><ins>+    CSSPropertyWebkitJustifySelf,
</ins><span class=3D"cx">     CSSPropertyWebkitFontKerning,
</span><span class=3D"cx">     CSSPropertyWebkitFontSmoothing,
</span><span class=3D"cx">     CSSPropertyWebkitFontVariantLigatures,
</span><span class=3D"lines">@@ -2006,6 +2007,13 @@
</span><span class=3D"cx">             return cssValuePool().createValue(=
style-&gt;flexWrap());
</span><span class=3D"cx">         case CSSPropertyWebkitJustifyContent:
</span><span class=3D"cx">             return cssValuePool().createValue(=
style-&gt;justifyContent());
</span><ins>+        case CSSPropertyWebkitJustifySelf: {
+            RefPtr&lt;CSSValueList&gt; result =3D CSSValueList::createSp=
aceSeparated();
+            result-&gt;append(CSSPrimitiveValue::create(style-&gt;justif=
ySelf()));
+            if (style-&gt;justifySelf() &gt;=3D JustifySelfCenter &amp;&=
amp; style-&gt;justifySelfOverflowAlignment() !=3D JustifySelfOverflowAli=
gnmentDefault)
+                result-&gt;append(CSSPrimitiveValue::create(style-&gt;ju=
stifySelfOverflowAlignment()));
+            return result.release();
+        }
</ins><span class=3D"cx">         case CSSPropertyWebkitOrder:
</span><span class=3D"cx">             return cssValuePool().createValue(=
style-&gt;order(), CSSPrimitiveValue::CSS_NUMBER);
</span><span class=3D"cx">         case CSSPropertyFloat:
</span></span></pre></div>
<a id=3D"trunkSourceWebCorecssCSSParsercpp"></a>
<div class=3D"modfile"><h4>Modified: trunk/Source/WebCore/css/CSSParser.c=
pp (171009 =3D> 171010)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/Source/WebCore/css/CSSParser.cpp	2014-07-1=
1 19:47:40 UTC (rev 171009)
+++ trunk/Source/WebCore/css/CSSParser.cpp	2014-07-11 20:26:00 UTC (rev 1=
71010)
</span><span class=3D"lines">@@ -848,14 +848,17 @@
</span><span class=3D"cx">             return true;
</span><span class=3D"cx">         break;
</span><span class=3D"cx">     case CSSPropertyWebkitAlignContent:
</span><del>-         if (valueID =3D=3D CSSValueFlexStart || valueID =3D=
=3D CSSValueFlexEnd || valueID =3D=3D CSSValueCenter || valueID =3D=3D CS=
SValueSpaceBetween || valueID =3D=3D CSSValueSpaceAround || valueID =3D=3D=
 CSSValueStretch)
-             return true;
-         break;
</del><ins>+        // FIXME: Per CSS alignment, this property should acc=
ept an optional &lt;overflow-position&gt;. We should share this parsing c=
ode with 'justify-self'.
+        if (valueID =3D=3D CSSValueFlexStart || valueID =3D=3D CSSValueF=
lexEnd || valueID =3D=3D CSSValueCenter || valueID =3D=3D CSSValueSpaceBe=
tween || valueID =3D=3D CSSValueSpaceAround || valueID =3D=3D CSSValueStr=
etch)
+            return true;
+        break;
</ins><span class=3D"cx">     case CSSPropertyWebkitAlignItems:
</span><ins>+        // FIXME: Per CSS alignment, this property should ac=
cept the same arguments as 'justify-self' so we should share its parsing =
code.
</ins><span class=3D"cx">         if (valueID =3D=3D CSSValueFlexStart ||=
 valueID =3D=3D CSSValueFlexEnd || valueID =3D=3D CSSValueCenter || value=
ID =3D=3D CSSValueBaseline || valueID =3D=3D CSSValueStretch)
</span><span class=3D"cx">             return true;
</span><span class=3D"cx">         break;
</span><span class=3D"cx">     case CSSPropertyWebkitAlignSelf:
</span><ins>+        // FIXME: Per CSS alignment, this property should ac=
cept the same arguments as 'justify-self' so we should share its parsing =
code.
</ins><span class=3D"cx">         if (valueID =3D=3D CSSValueAuto || valu=
eID =3D=3D CSSValueFlexStart || valueID =3D=3D CSSValueFlexEnd || valueID=
 =3D=3D CSSValueCenter || valueID =3D=3D CSSValueBaseline || valueID =3D=3D=
 CSSValueStretch)
</span><span class=3D"cx">             return true;
</span><span class=3D"cx">         break;
</span><span class=3D"lines">@@ -868,9 +871,14 @@
</span><span class=3D"cx">              return true;
</span><span class=3D"cx">         break;
</span><span class=3D"cx">     case CSSPropertyWebkitJustifyContent:
</span><ins>+        // FIXME: Per CSS alignment, this property should ac=
cept an optional &lt;overflow-position&gt;. We should share this parsing =
code with 'justify-self'.
</ins><span class=3D"cx">         if (valueID =3D=3D CSSValueFlexStart ||=
 valueID =3D=3D CSSValueFlexEnd || valueID =3D=3D CSSValueCenter || value=
ID =3D=3D CSSValueSpaceBetween || valueID =3D=3D CSSValueSpaceAround)
</span><span class=3D"cx">             return true;
</span><span class=3D"cx">         break;
</span><ins>+    case CSSPropertyWebkitJustifySelf:
+        if (valueID =3D=3D CSSValueAuto || valueID =3D=3D CSSValueFlexSt=
art || valueID =3D=3D CSSValueFlexEnd || valueID =3D=3D CSSValueCenter ||=
 valueID =3D=3D CSSValueBaseline || valueID =3D=3D CSSValueStretch)
+            return true;
+        break;
</ins><span class=3D"cx">     case CSSPropertyWebkitFontKerning:
</span><span class=3D"cx">         if (valueID =3D=3D CSSValueAuto || val=
ueID =3D=3D CSSValueNormal || valueID =3D=3D CSSValueNone)
</span><span class=3D"cx">             return true;
</span><span class=3D"lines">@@ -2566,6 +2574,8 @@
</span><span class=3D"cx">         }
</span><span class=3D"cx">         return false;
</span><span class=3D"cx">     }
</span><ins>+    case CSSPropertyWebkitJustifySelf:
+        return parseJustifySelf(propId, important);
</ins><span class=3D"cx"> #if ENABLE(CSS_GRID_LAYOUT)
</span><span class=3D"cx">     case CSSPropertyWebkitGridAutoColumns:
</span><span class=3D"cx">     case CSSPropertyWebkitGridAutoRows:
</span><span class=3D"lines">@@ -3069,6 +3079,63 @@
</span><span class=3D"cx">         lval =3D rval;
</span><span class=3D"cx"> }
</span><span class=3D"cx">=20
</span><ins>+static bool isItemPositionKeyword(CSSValueID id)
+{
+    return id =3D=3D CSSValueStart || id =3D=3D CSSValueEnd || id =3D=3D=
 CSSValueCenter
+        || id =3D=3D CSSValueSelfStart || id =3D=3D CSSValueSelfEnd || i=
d =3D=3D CSSValueFlexStart
+        || id =3D=3D CSSValueFlexEnd || id =3D=3D CSSValueLeft || id =3D=
=3D CSSValueRight;
+}
+
+bool CSSParser::parseJustifySelf(CSSPropertyID propId, bool important)
+{
+    // auto | baseline | stretch | [&lt;item-position&gt; &amp;&amp; &lt=
;overflow-position&gt;? ]
+    // &lt;item-position&gt; =3D center | start | end | self-start | sel=
f-end | flex-start | flex-end | left | right;
+    // &lt;overflow-position&gt; =3D true | safe
+
+    CSSParserValue* value =3D m_valueList-&gt;current();
+
+    if (value-&gt;id =3D=3D CSSValueAuto || value-&gt;id =3D=3D CSSValue=
Baseline || value-&gt;id =3D=3D CSSValueStretch) {
+        if (m_valueList-&gt;next())
+            return false;
+
+        addProperty(propId, cssValuePool().createIdentifierValue(value-&=
gt;id), important);
+        return true;
+    }
+
+    RefPtr&lt;CSSPrimitiveValue&gt; position =3D 0;
+    RefPtr&lt;CSSPrimitiveValue&gt; overflowAlignmentKeyword =3D 0;
+    if (isItemPositionKeyword(value-&gt;id)) {
+        position =3D cssValuePool().createIdentifierValue(value-&gt;id);
+        value =3D m_valueList-&gt;next();
+        if (value) {
+            if (value-&gt;id !=3D CSSValueTrue &amp;&amp; value-&gt;id !=
=3D CSSValueSafe)
+                return false;
+            overflowAlignmentKeyword =3D cssValuePool().createIdentifier=
Value(value-&gt;id);
+        }
+    } else if (value-&gt;id !=3D CSSValueTrue &amp;&amp; value-&gt;id !=3D=
 CSSValueSafe)
+        return false;
+    else {
+        overflowAlignmentKeyword =3D cssValuePool().createIdentifierValu=
e(value-&gt;id);
+        value =3D m_valueList-&gt;next();
+        if (value) {
+            if (!isItemPositionKeyword(value-&gt;id))
+                return false;
+            position =3D cssValuePool().createIdentifierValue(value-&gt;=
id);
+        }
+    }
+
+    if (m_valueList-&gt;next())
+        return false;
+
+    ASSERT(position);
+    if (overflowAlignmentKeyword)
+        addProperty(propId, createPrimitiveValuePair(position.release(),=
 overflowAlignmentKeyword.release()), important);
+    else
+        addProperty(propId, position.release(), important);
+
+    return true;
+}
+
</ins><span class=3D"cx"> static bool parseBackgroundClip(CSSParserValue*=
 parserValue, RefPtr&lt;CSSValue&gt;&amp; cssValue)
</span><span class=3D"cx"> {
</span><span class=3D"cx">     if (parserValue-&gt;id =3D=3D CSSValueBord=
erBox || parserValue-&gt;id =3D=3D CSSValuePaddingBox
</span></span></pre></div>
<a id=3D"trunkSourceWebCorecssCSSParserh"></a>
<div class=3D"modfile"><h4>Modified: trunk/Source/WebCore/css/CSSParser.h=
 (171009 =3D> 171010)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/Source/WebCore/css/CSSParser.h	2014-07-11 =
19:47:40 UTC (rev 171009)
+++ trunk/Source/WebCore/css/CSSParser.h	2014-07-11 20:26:00 UTC (rev 171=
010)
</span><span class=3D"lines">@@ -183,6 +183,8 @@
</span><span class=3D"cx">=20
</span><span class=3D"cx">     bool parseClipShape(CSSPropertyID, bool im=
portant);
</span><span class=3D"cx">=20
</span><ins>+    bool parseJustifySelf(CSSPropertyID, bool important);
+
</ins><span class=3D"cx"> #if ENABLE(CSS_SHAPES)
</span><span class=3D"cx">     PassRefPtr&lt;CSSValue&gt; parseShapePrope=
rty(CSSPropertyID);
</span><span class=3D"cx"> #endif
</span></span></pre></div>
<a id=3D"trunkSourceWebCorecssCSSPrimitiveValueMappingsh"></a>
<div class=3D"modfile"><h4>Modified: trunk/Source/WebCore/css/CSSPrimitiv=
eValueMappings.h (171009 =3D> 171010)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/Source/WebCore/css/CSSPrimitiveValueMappin=
gs.h	2014-07-11 19:47:40 UTC (rev 171009)
+++ trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h	2014-07-11 20:26=
:00 UTC (rev 171010)
</span><span class=3D"lines">@@ -5089,6 +5089,118 @@
</span><span class=3D"cx">     return BoxMissing;
</span><span class=3D"cx"> }
</span><span class=3D"cx">=20
</span><ins>+template&lt;&gt; inline CSSPrimitiveValue::CSSPrimitiveValue=
(EJustifySelf justifySelf)
+    : CSSValue(PrimitiveClass)
+{
+    m_primitiveUnitType =3D CSS_VALUE_ID;
+    switch (justifySelf) {
+    case JustifySelfAuto:
+        m_value.valueID =3D CSSValueAuto;
+        break;
+    case JustifySelfStretch:
+        m_value.valueID =3D CSSValueStretch;
+        break;
+    case JustifySelfBaseline:
+        m_value.valueID =3D CSSValueBaseline;
+        break;
+    case JustifySelfCenter:
+        m_value.valueID =3D CSSValueCenter;
+        break;
+    case JustifySelfStart:
+        m_value.valueID =3D CSSValueStart;
+        break;
+    case JustifySelfEnd:
+        m_value.valueID =3D CSSValueEnd;
+        break;
+    case JustifySelfSelfStart:
+        m_value.valueID =3D CSSValueSelfStart;
+        break;
+    case JustifySelfSelfEnd:
+        m_value.valueID =3D CSSValueSelfEnd;
+        break;
+    case JustifySelfFlexStart:
+        m_value.valueID =3D CSSValueFlexStart;
+        break;
+    case JustifySelfFlexEnd:
+        m_value.valueID =3D CSSValueFlexEnd;
+        break;
+    case JustifySelfLeft:
+        m_value.valueID =3D CSSValueLeft;
+        break;
+    case JustifySelfRight:
+        m_value.valueID =3D CSSValueRight;
+        break;
+    default:
+        m_value.valueID =3D CSSValueAuto;
+        break;
+    }
</ins><span class=3D"cx"> }
</span><span class=3D"cx">=20
</span><ins>+template&lt;&gt; inline CSSPrimitiveValue::operator EJustify=
Self() const
+{
+    switch (m_value.valueID) {
+    case CSSValueAuto:
+        return JustifySelfAuto;
+    case CSSValueStretch:
+        return JustifySelfStretch;
+    case CSSValueBaseline:
+        return JustifySelfBaseline;
+    case CSSValueCenter:
+        return JustifySelfCenter;
+    case CSSValueStart:
+        return JustifySelfStart;
+    case CSSValueEnd:
+        return JustifySelfEnd;
+    case CSSValueSelfStart:
+        return JustifySelfSelfStart;
+    case CSSValueSelfEnd:
+        return JustifySelfSelfEnd;
+    case CSSValueFlexStart:
+        return JustifySelfFlexStart;
+    case CSSValueFlexEnd:
+        return JustifySelfFlexEnd;
+    case CSSValueLeft:
+        return JustifySelfLeft;
+    case CSSValueRight:
+        return JustifySelfRight;
+    default:
+        break;
+    }
+    ASSERT_NOT_REACHED();
+    return JustifySelfAuto;
+}
+
+template&lt;&gt; inline CSSPrimitiveValue::CSSPrimitiveValue(EJustifySel=
fOverflowAlignment overflowAlignment)
+    : CSSValue(PrimitiveClass)
+{
+    m_primitiveUnitType =3D CSS_VALUE_ID;
+    switch (overflowAlignment) {
+    case JustifySelfOverflowAlignmentDefault:
+        m_value.valueID =3D CSSValueDefault;
+        break;
+    case JustifySelfOverflowAlignmentTrue:
+        m_value.valueID =3D CSSValueTrue;
+        break;
+    case JustifySelfOverflowAlignmentSafe:
+        m_value.valueID =3D CSSValueSafe;
+        break;
+    }
+}
+
+template&lt;&gt; inline CSSPrimitiveValue::operator EJustifySelfOverflow=
Alignment() const
+{
+    switch (m_value.valueID) {
+    case CSSValueTrue:
+        return JustifySelfOverflowAlignmentTrue;
+    case CSSValueSafe:
+        return JustifySelfOverflowAlignmentSafe;
+    default:
+        break;
+    }
+    ASSERT_NOT_REACHED();
+    return JustifySelfOverflowAlignmentTrue;
+}
+
+}
+
</ins><span class=3D"cx"> #endif
</span></span></pre></div>
<a id=3D"trunkSourceWebCorecssCSSPropertyNamesin"></a>
<div class=3D"modfile"><h4>Modified: trunk/Source/WebCore/css/CSSProperty=
Names.in (171009 =3D> 171010)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/Source/WebCore/css/CSSPropertyNames.in	201=
4-07-11 19:47:40 UTC (rev 171009)
+++ trunk/Source/WebCore/css/CSSPropertyNames.in	2014-07-11 20:26:00 UTC =
(rev 171010)
</span><span class=3D"lines">@@ -303,6 +303,7 @@
</span><span class=3D"cx"> -webkit-flex-shrink
</span><span class=3D"cx"> -webkit-flex-wrap
</span><span class=3D"cx"> -webkit-justify-content
</span><ins>+-webkit-justify-self
</ins><span class=3D"cx"> -webkit-font-size-delta
</span><span class=3D"cx"> #if defined(ENABLE_CSS_GRID_LAYOUT) &amp;&amp;=
 ENABLE_CSS_GRID_LAYOUT
</span><span class=3D"cx"> -webkit-grid
</span></span></pre></div>
<a id=3D"trunkSourceWebCorecssCSSValueKeywordsin"></a>
<div class=3D"modfile"><h4>Modified: trunk/Source/WebCore/css/CSSValueKey=
words.in (171009 =3D> 171010)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/Source/WebCore/css/CSSValueKeywords.in	201=
4-07-11 19:47:40 UTC (rev 171009)
+++ trunk/Source/WebCore/css/CSSValueKeywords.in	2014-07-11 20:26:00 UTC =
(rev 171010)
</span><span class=3D"lines">@@ -544,6 +544,22 @@
</span><span class=3D"cx"> // space-between
</span><span class=3D"cx"> // space-around
</span><span class=3D"cx">=20
</span><ins>+// CSS_PROP_JUSTIFY_SELF
+// auto
+// stretch
+// baseline
+// center
+// start
+// end
+self-start
+self-end
+// flex-start
+// flex-end
+// left
+// right
+true
+safe
+
</ins><span class=3D"cx"> // CSS_PROP_FLEX_FLOW
</span><span class=3D"cx"> row
</span><span class=3D"cx"> row-reverse
</span></span></pre></div>
<a id=3D"trunkSourceWebCorecssStyleResolvercpp"></a>
<div class=3D"modfile"><h4>Modified: trunk/Source/WebCore/css/StyleResolv=
er.cpp (171009 =3D> 171010)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/Source/WebCore/css/StyleResolver.cpp	2014-=
07-11 19:47:40 UTC (rev 171009)
+++ trunk/Source/WebCore/css/StyleResolver.cpp	2014-07-11 20:26:00 UTC (r=
ev 171010)
</span><span class=3D"lines">@@ -2827,6 +2827,16 @@
</span><span class=3D"cx">         return;
</span><span class=3D"cx">     }
</span><span class=3D"cx"> #endif /* ENABLE(CSS_GRID_LAYOUT) */
</span><ins>+    case CSSPropertyWebkitJustifySelf: {
+        HANDLE_INHERIT_AND_INITIAL(justifySelf, JustifySelf);
+        CSSPrimitiveValue* primitiveValue =3D toCSSPrimitiveValue(value)=
;
+        if (Pair* pairValue =3D primitiveValue-&gt;getPairValue()) {
+            state.style()-&gt;setJustifySelf(*pairValue-&gt;first());
+            state.style()-&gt;setJustifySelfOverflowAlignment(*pairValue=
-&gt;second());
+        } else
+            state.style()-&gt;setJustifySelf(*primitiveValue);
+        return;
+    }
</ins><span class=3D"cx">     // These properties are aliased and Depreca=
tedStyleBuilder already applied the property on the prefixed version.
</span><span class=3D"cx">     case CSSPropertyTransitionDelay:
</span><span class=3D"cx">     case CSSPropertyTransitionDuration:
</span></span></pre></div>
<a id=3D"trunkSourceWebCorerenderingstyleRenderStyleh"></a>
<div class=3D"modfile"><h4>Modified: trunk/Source/WebCore/rendering/style=
/RenderStyle.h (171009 =3D> 171010)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/Source/WebCore/rendering/style/RenderStyle=
.h	2014-07-11 19:47:40 UTC (rev 171009)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.h	2014-07-11 20:26:0=
0 UTC (rev 171010)
</span><span class=3D"lines">@@ -914,6 +914,8 @@
</span><span class=3D"cx">     bool isReverseFlexDirection() const { retu=
rn flexDirection() =3D=3D FlowRowReverse || flexDirection() =3D=3D FlowCo=
lumnReverse; }
</span><span class=3D"cx">     EFlexWrap flexWrap() const { return static=
_cast&lt;EFlexWrap&gt;(rareNonInheritedData-&gt;m_flexibleBox-&gt;m_flexW=
rap); }
</span><span class=3D"cx">     EJustifyContent justifyContent() const { r=
eturn static_cast&lt;EJustifyContent&gt;(rareNonInheritedData-&gt;m_justi=
fyContent); }
</span><ins>+    EJustifySelf justifySelf() const { return static_cast&lt=
;EJustifySelf&gt;(rareNonInheritedData-&gt;m_justifySelf); }
+    EJustifySelfOverflowAlignment justifySelfOverflowAlignment() const {=
 return static_cast&lt;EJustifySelfOverflowAlignment&gt;(rareNonInherited=
Data-&gt;m_justifySelfOverflowAlignment); }
</ins><span class=3D"cx">=20
</span><span class=3D"cx"> #if ENABLE(CSS_GRID_LAYOUT)
</span><span class=3D"cx">     const Vector&lt;GridTrackSize&gt;&amp; gri=
dColumns() const { return rareNonInheritedData-&gt;m_grid-&gt;m_gridColum=
ns; }
</span><span class=3D"lines">@@ -1461,6 +1463,8 @@
</span><span class=3D"cx">     void setFlexDirection(EFlexDirection direc=
tion) { SET_VAR(rareNonInheritedData.access()-&gt;m_flexibleBox, m_flexDi=
rection, direction); }
</span><span class=3D"cx">     void setFlexWrap(EFlexWrap w) { SET_VAR(ra=
reNonInheritedData.access()-&gt;m_flexibleBox, m_flexWrap, w); }
</span><span class=3D"cx">     void setJustifyContent(EJustifyContent p) =
{ SET_VAR(rareNonInheritedData, m_justifyContent, p); }
</span><ins>+    void setJustifySelf(EJustifySelf p) { SET_VAR(rareNonInh=
eritedData, m_justifySelf, p); }
+    void setJustifySelfOverflowAlignment(EJustifySelfOverflowAlignment o=
verflowAlignment) { SET_VAR(rareNonInheritedData, m_justifySelfOverflowAl=
ignment, overflowAlignment); }
</ins><span class=3D"cx"> #if ENABLE(CSS_GRID_LAYOUT)
</span><span class=3D"cx">     void setGridAutoColumns(const GridTrackSiz=
e&amp; length) { SET_VAR(rareNonInheritedData.access()-&gt;m_grid, m_grid=
AutoColumns, length); }
</span><span class=3D"cx">     void setGridAutoRows(const GridTrackSize&a=
mp; length) { SET_VAR(rareNonInheritedData.access()-&gt;m_grid, m_gridAut=
oRows, length); }
</span><span class=3D"lines">@@ -1825,6 +1829,8 @@
</span><span class=3D"cx">     static EFlexDirection initialFlexDirection=
() { return FlowRow; }
</span><span class=3D"cx">     static EFlexWrap initialFlexWrap() { retur=
n FlexNoWrap; }
</span><span class=3D"cx">     static EJustifyContent initialJustifyConte=
nt() { return JustifyFlexStart; }
</span><ins>+    static EJustifySelf initialJustifySelf() { return Justif=
ySelfAuto; }
+    static EJustifySelfOverflowAlignment initialJustifySelfOverflowAlign=
ment() { return JustifySelfOverflowAlignmentDefault; }
</ins><span class=3D"cx">     static int initialMarqueeLoopCount() { retu=
rn -1; }
</span><span class=3D"cx">     static int initialMarqueeSpeed() { return =
85; }
</span><span class=3D"cx">     static Length initialMarqueeIncrement() { =
return Length(6, Fixed); }
</span></span></pre></div>
<a id=3D"trunkSourceWebCorerenderingstyleRenderStyleConstantsh"></a>
<div class=3D"modfile"><h4>Modified: trunk/Source/WebCore/rendering/style=
/RenderStyleConstants.h (171009 =3D> 171010)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/Source/WebCore/rendering/style/RenderStyle=
Constants.h	2014-07-11 19:47:40 UTC (rev 171009)
+++ trunk/Source/WebCore/rendering/style/RenderStyleConstants.h	2014-07-1=
1 20:26:00 UTC (rev 171010)
</span><span class=3D"lines">@@ -184,7 +184,10 @@
</span><span class=3D"cx"> enum EFlexDirection { FlowRow, FlowRowReverse,=
 FlowColumn, FlowColumnReverse };
</span><span class=3D"cx"> enum EFlexWrap { FlexNoWrap, FlexWrap, FlexWra=
pReverse };
</span><span class=3D"cx"> enum EJustifyContent { JustifyFlexStart, Justi=
fyFlexEnd, JustifyCenter, JustifySpaceBetween, JustifySpaceAround };
</span><ins>+enum EJustifySelf {JustifySelfAuto, JustifySelfStretch, Just=
ifySelfBaseline, JustifySelfCenter, JustifySelfStart, JustifySelfEnd, Jus=
tifySelfSelfStart, JustifySelfSelfEnd, JustifySelfFlexStart, JustifySelfF=
lexEnd, JustifySelfLeft, JustifySelfRight};
+enum EJustifySelfOverflowAlignment {JustifySelfOverflowAlignmentDefault,=
 JustifySelfOverflowAlignmentTrue, JustifySelfOverflowAlignmentSafe};
</ins><span class=3D"cx">=20
</span><ins>+
</ins><span class=3D"cx"> enum ETextSecurity {
</span><span class=3D"cx">     TSNONE, TSDISC, TSCIRCLE, TSSQUARE
</span><span class=3D"cx"> };
</span></span></pre></div>
<a id=3D"trunkSourceWebCorerenderingstyleStyleRareNonInheritedDatacpp"></=
a>
<div class=3D"modfile"><h4>Modified: trunk/Source/WebCore/rendering/style=
/StyleRareNonInheritedData.cpp (171009 =3D> 171010)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/Source/WebCore/rendering/style/StyleRareNo=
nInheritedData.cpp	2014-07-11 19:47:40 UTC (rev 171009)
+++ trunk/Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp	20=
14-07-11 20:26:00 UTC (rev 171010)
</span><span class=3D"lines">@@ -76,6 +76,8 @@
</span><span class=3D"cx">     , m_alignItems(RenderStyle::initialAlignIt=
ems())
</span><span class=3D"cx">     , m_alignSelf(RenderStyle::initialAlignSel=
f())
</span><span class=3D"cx">     , m_justifyContent(RenderStyle::initialJus=
tifyContent())
</span><ins>+    , m_justifySelf(RenderStyle::initialJustifySelf())
+    , m_justifySelfOverflowAlignment(RenderStyle::initialJustifySelfOver=
flowAlignment())
</ins><span class=3D"cx">     , userDrag(RenderStyle::initialUserDrag())
</span><span class=3D"cx">     , textOverflow(RenderStyle::initialTextOve=
rflow())
</span><span class=3D"cx">     , marginBeforeCollapse(MCOLLAPSE)
</span><span class=3D"lines">@@ -153,6 +155,8 @@
</span><span class=3D"cx">     , m_alignItems(o.m_alignItems)
</span><span class=3D"cx">     , m_alignSelf(o.m_alignSelf)
</span><span class=3D"cx">     , m_justifyContent(o.m_justifyContent)
</span><ins>+    , m_justifySelf(o.m_justifySelf)
+    , m_justifySelfOverflowAlignment(o.m_justifySelfOverflowAlignment)
</ins><span class=3D"cx">     , userDrag(o.userDrag)
</span><span class=3D"cx">     , textOverflow(o.textOverflow)
</span><span class=3D"cx">     , marginBeforeCollapse(o.marginBeforeColla=
pse)
</span><span class=3D"lines">@@ -255,7 +259,9 @@
</span><span class=3D"cx">         &amp;&amp; m_isolation =3D=3D o.m_isol=
ation
</span><span class=3D"cx"> #endif
</span><span class=3D"cx">         &amp;&amp; m_aspectRatioType =3D=3D o.=
m_aspectRatioType
</span><del>-        &amp;&amp; m_objectFit =3D=3D o.m_objectFit;
</del><ins>+        &amp;&amp; m_objectFit =3D=3D o.m_objectFit
+        &amp;&amp; m_justifySelf =3D=3D o.m_justifySelf
+        &amp;&amp; m_justifySelfOverflowAlignment =3D=3D o.m_justifySelf=
OverflowAlignment;
</ins><span class=3D"cx"> }
</span><span class=3D"cx">=20
</span><span class=3D"cx"> bool StyleRareNonInheritedData::contentDataEqu=
ivalent(const StyleRareNonInheritedData&amp; o) const
</span></span></pre></div>
<a id=3D"trunkSourceWebCorerenderingstyleStyleRareNonInheritedDatah"></a>
<div class=3D"modfile"><h4>Modified: trunk/Source/WebCore/rendering/style=
/StyleRareNonInheritedData.h (171009 =3D> 171010)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/Source/WebCore/rendering/style/StyleRareNo=
nInheritedData.h	2014-07-11 19:47:40 UTC (rev 171009)
+++ trunk/Source/WebCore/rendering/style/StyleRareNonInheritedData.h	2014=
-07-11 20:26:00 UTC (rev 171010)
</span><span class=3D"lines">@@ -176,6 +176,9 @@
</span><span class=3D"cx">     unsigned m_alignSelf : 3; // EAlignItems
</span><span class=3D"cx">     unsigned m_justifyContent : 3; // EJustify=
Content
</span><span class=3D"cx">=20
</span><ins>+    unsigned m_justifySelf : 4; // EJustifySelf
+    unsigned m_justifySelfOverflowAlignment : 2; // EJustifySelfOverflow=
Alignment
+
</ins><span class=3D"cx">     unsigned userDrag : 2; // EUserDrag
</span><span class=3D"cx">     unsigned textOverflow : 1; // Whether or n=
ot lines that spill out should be truncated with &quot;...&quot;
</span><span class=3D"cx">     unsigned marginBeforeCollapse : 2; // EMar=
ginCollapse
</span></span></pre>
</div>
</div>

</body>
</html>


More information about the webkit-changes mailing list