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

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

<h3>Log Message</h3>
<pre>[CSS Box Alignment] Unifying alignment data in a single class
https://bugs.webkit.org/show_bug.cgi?id=144384

Reviewed by David Hyatt.

The new CSS Box Alignment specification introduces more complex
values and syntax for defining alignment properties. Most of the
alignment values were just keyword identifiers, but the new syntax
allows different combinations of identifiers to determine the
alignment behavior (eg. overflow-alignment keyword).

This patch wll help to implement later overflow handling and
specially Content Dstribution alignment, the most complex case by
far. It will be more consistent against style changes and repaint,
snce we will have just one field to monitoring for value
modfications.

No new tests, because no new functionality was added; it's just a
code refactoring which is just expected to pass current tests.

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::resolveSelfAlignmentAuto):
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSPropertyNames.in:
* css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::convertSelfOrDefaultAlignmentData):
(WebCore::StyleBuilderConverter::convertSVGColor): Deleted.
* css/StyleBuilderCustom.h:
(WebCore::StyleBuilderCustom::applyInitialWebkitMaskImage): Deleted.
(WebCore::StyleBuilderCustom::applyInheritWebkitMaskImage): Deleted.
(WebCore::ApplyPropertyBorderImageModifier::applyInheritValue): Deleted.
(WebCore::ApplyPropertyBorderImageModifier::applyInitialValue): Deleted.
(WebCore::ApplyPropertyBorderImageModifier::applyValue): Deleted.
(WebCore::ApplyPropertyBorderImageModifier::getValue): Deleted.
(WebCore::ApplyPropertyBorderImageModifier::setValue): Deleted.
(WebCore::StyleBuilderCustom::applyInheritLineHeight): Deleted.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle):
* mathml/MathMLTextElement.cpp:
(WebCore::MathMLTextElement::createElementRenderer):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::styleDidChange):
* rendering/RenderFullScreen.cpp:
(WebCore::createFullScreenStyle):
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::adjustInnerStyle):
* rendering/mathml/RenderMathMLRoot.cpp:
(WebCore::RenderMathMLRoot::updateStyle):
* rendering/mathml/RenderMathMLScripts.cpp:
(WebCore::RenderMathMLScripts::fixAnonymousStyleForSubSupPair):
(WebCore::RenderMathMLScripts::fixAnonymousStyles):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::resolveAlignment):
(WebCore::RenderStyle::resolveJustification):
* rendering/style/RenderStyle.h:
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
(WebCore::StyleRareNonInheritedData::contentDataEquivalent): Deleted.
* rendering/style/StyleRareNonInheritedData.h:
* rendering/style/StyleSelfAlignmentData.h: Added.
(WebCore::StyleSelfAlignmentData::StyleSelfAlignmentData):
(WebCore::StyleSelfAlignmentData::setPosition):
(WebCore::StyleSelfAlignmentData::setPositionType):
(WebCore::StyleSelfAlignmentData::setOverflow):
(WebCore::StyleSelfAlignmentData::position):
(WebCore::StyleSelfAlignmentData::positionType):
(WebCore::StyleSelfAlignmentData::overflow):
(WebCore::StyleSelfAlignmentData::operator==):
(WebCore::StyleSelfAlignmentData::operator!=):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCorecssCSSComputedStyleDeclarationcpp">trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSPropertyNamesin">trunk/Source/WebCore/css/CSSPropertyNames.in</a></li>
<li><a href="#trunkSourceWebCorecssStyleBuilderConverterh">trunk/Source/WebCore/css/StyleBuilderConverter.h</a></li>
<li><a href="#trunkSourceWebCorecssStyleBuilderCustomh">trunk/Source/WebCore/css/StyleBuilderCustom.h</a></li>
<li><a href="#trunkSourceWebCorecssStyleResolvercpp">trunk/Source/WebCore/css/StyleResolver.cpp</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLTextElementcpp">trunk/Source/WebCore/mathml/MathMLTextElement.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderFlexibleBoxcpp">trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp</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="#trunkSourceWebCorerenderingstyleRenderStylecpp">trunk/Source/WebCore/rendering/style/RenderStyle.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleRenderStyleh">trunk/Source/WebCore/rendering/style/RenderStyle.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>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebCorerenderingstyleStyleSelfAlignmentDatah">trunk/Source/WebCore/rendering/style/StyleSelfAlignmentData.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (183590 => 183591)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-04-29 23:46:18 UTC (rev 183590)
+++ trunk/Source/WebCore/ChangeLog        2015-04-30 00:12:25 UTC (rev 183591)
</span><span class="lines">@@ -1,3 +1,76 @@
</span><ins>+2015-04-29  Javier Fernandez  &lt;jfernandez@igalia.com&gt;
+
+        [CSS Box Alignment] Unifying alignment data in a single class
+        https://bugs.webkit.org/show_bug.cgi?id=144384
+
+        Reviewed by David Hyatt.
+
+        The new CSS Box Alignment specification introduces more complex
+        values and syntax for defining alignment properties. Most of the
+        alignment values were just keyword identifiers, but the new syntax
+        allows different combinations of identifiers to determine the
+        alignment behavior (eg. overflow-alignment keyword).
+
+        This patch wll help to implement later overflow handling and
+        specially Content Dstribution alignment, the most complex case by
+        far. It will be more consistent against style changes and repaint,
+        snce we will have just one field to monitoring for value
+        modfications.
+
+        No new tests, because no new functionality was added; it's just a
+        code refactoring which is just expected to pass current tests.
+
+        * css/CSSComputedStyleDeclaration.cpp:
+        (WebCore::resolveSelfAlignmentAuto):
+        (WebCore::ComputedStyleExtractor::propertyValue):
+        * css/CSSPropertyNames.in:
+        * css/StyleBuilderConverter.h:
+        (WebCore::StyleBuilderConverter::convertSelfOrDefaultAlignmentData):
+        (WebCore::StyleBuilderConverter::convertSVGColor): Deleted.
+        * css/StyleBuilderCustom.h:
+        (WebCore::StyleBuilderCustom::applyInitialWebkitMaskImage): Deleted.
+        (WebCore::StyleBuilderCustom::applyInheritWebkitMaskImage): Deleted.
+        (WebCore::ApplyPropertyBorderImageModifier::applyInheritValue): Deleted.
+        (WebCore::ApplyPropertyBorderImageModifier::applyInitialValue): Deleted.
+        (WebCore::ApplyPropertyBorderImageModifier::applyValue): Deleted.
+        (WebCore::ApplyPropertyBorderImageModifier::getValue): Deleted.
+        (WebCore::ApplyPropertyBorderImageModifier::setValue): Deleted.
+        (WebCore::StyleBuilderCustom::applyInheritLineHeight): Deleted.
+        * css/StyleResolver.cpp:
+        (WebCore::StyleResolver::adjustRenderStyle):
+        * mathml/MathMLTextElement.cpp:
+        (WebCore::MathMLTextElement::createElementRenderer):
+        * rendering/RenderFlexibleBox.cpp:
+        (WebCore::RenderFlexibleBox::styleDidChange):
+        * rendering/RenderFullScreen.cpp:
+        (WebCore::createFullScreenStyle):
+        * rendering/RenderMenuList.cpp:
+        (WebCore::RenderMenuList::adjustInnerStyle):
+        * rendering/mathml/RenderMathMLRoot.cpp:
+        (WebCore::RenderMathMLRoot::updateStyle):
+        * rendering/mathml/RenderMathMLScripts.cpp:
+        (WebCore::RenderMathMLScripts::fixAnonymousStyleForSubSupPair):
+        (WebCore::RenderMathMLScripts::fixAnonymousStyles):
+        * rendering/style/RenderStyle.cpp:
+        (WebCore::RenderStyle::resolveAlignment):
+        (WebCore::RenderStyle::resolveJustification):
+        * rendering/style/RenderStyle.h:
+        * rendering/style/StyleRareNonInheritedData.cpp:
+        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
+        (WebCore::StyleRareNonInheritedData::operator==):
+        (WebCore::StyleRareNonInheritedData::contentDataEquivalent): Deleted.
+        * rendering/style/StyleRareNonInheritedData.h:
+        * rendering/style/StyleSelfAlignmentData.h: Added.
+        (WebCore::StyleSelfAlignmentData::StyleSelfAlignmentData):
+        (WebCore::StyleSelfAlignmentData::setPosition):
+        (WebCore::StyleSelfAlignmentData::setPositionType):
+        (WebCore::StyleSelfAlignmentData::setOverflow):
+        (WebCore::StyleSelfAlignmentData::position):
+        (WebCore::StyleSelfAlignmentData::positionType):
+        (WebCore::StyleSelfAlignmentData::overflow):
+        (WebCore::StyleSelfAlignmentData::operator==):
+        (WebCore::StyleSelfAlignmentData::operator!=):
+
</ins><span class="cx"> 2015-04-29  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         NodeList has issues with Symbol and empty string
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (183590 => 183591)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2015-04-29 23:46:18 UTC (rev 183590)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2015-04-30 00:12:25 UTC (rev 183591)
</span><span class="lines">@@ -3784,6 +3784,7 @@
</span><span class="cx">                 9BD8A95A18BEFC7600987E9A /* CollectionIndexCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9BD8A95918BEFC7600987E9A /* CollectionIndexCache.cpp */; };
</span><span class="cx">                 9BF9A8801648DD2F001C6B23 /* JSHTMLFormControlsCollection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9BF9A87E1648DD2F001C6B23 /* JSHTMLFormControlsCollection.cpp */; };
</span><span class="cx">                 9BF9A8811648DD2F001C6B23 /* JSHTMLFormControlsCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BF9A87F1648DD2F001C6B23 /* JSHTMLFormControlsCollection.h */; };
</span><ins>+                9D6380101AF173220031A15C /* StyleSelfAlignmentData.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D63800F1AF16E160031A15C /* StyleSelfAlignmentData.h */; settings = {ATTRIBUTES = (Private, ); }; };
</ins><span class="cx">                 9F72304F11184B4100AD0126 /* ScriptProfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F72304C11184B4100AD0126 /* ScriptProfile.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 9FA37EE41172FC8000C4CD55 /* ScriptProfileNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 9FA37EE31172FC8000C4CD55 /* ScriptProfileNode.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 9FA37EFA1172FDA600C4CD55 /* JSScriptProfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9FA37EF61172FD9300C4CD55 /* JSScriptProfile.cpp */; };
</span><span class="lines">@@ -11069,6 +11070,7 @@
</span><span class="cx">                 9BD8A95918BEFC7600987E9A /* CollectionIndexCache.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CollectionIndexCache.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 9BF9A87E1648DD2F001C6B23 /* JSHTMLFormControlsCollection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSHTMLFormControlsCollection.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 9BF9A87F1648DD2F001C6B23 /* JSHTMLFormControlsCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSHTMLFormControlsCollection.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                9D63800F1AF16E160031A15C /* StyleSelfAlignmentData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StyleSelfAlignmentData.h; path = style/StyleSelfAlignmentData.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 9F72304C11184B4100AD0126 /* ScriptProfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptProfile.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 9FA37EE31172FC8000C4CD55 /* ScriptProfileNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptProfileNode.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 9FA37EEF1172FD4100C4CD55 /* ScriptProfile.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ScriptProfile.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -21364,6 +21366,7 @@
</span><span class="cx">                 BC8C8FAA0DDCD2F200B592F4 /* style */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><ins>+                                9D63800F1AF16E160031A15C /* StyleSelfAlignmentData.h */,
</ins><span class="cx">                                 FBD6AF8215EF21A3008B7110 /* BasicShapes.cpp */,
</span><span class="cx">                                 FBD6AF8315EF21A3008B7110 /* BasicShapes.h */,
</span><span class="cx">                                 BC5EB5E00E81BE8700B25965 /* BorderData.h */,
</span><span class="lines">@@ -23981,6 +23984,7 @@
</span><span class="cx">                                 CE1252371A15BDBE00864480 /* CoreGraphicsSPI.h in Headers */,
</span><span class="cx">                                 443818001A91B2F8006E04F2 /* CoreMediaSoftLink.h in Headers */,
</span><span class="cx">                                 7C9DBFEE1A9C49B1000D6B25 /* JSHTMLAttachmentElement.h in Headers */,
</span><ins>+                                9D6380101AF173220031A15C /* StyleSelfAlignmentData.h in Headers */,
</ins><span class="cx">                                 4449A4051A964B0000B64AD5 /* CoreMediaSPI.h in Headers */,
</span><span class="cx">                                 1C6466251A12C38E0094603C /* CoreTextSPI.h in Headers */,
</span><span class="cx">                                 862F129E18C1576F005C54AF /* CountedUserActivity.h in Headers */,
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSComputedStyleDeclarationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp (183590 => 183591)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp        2015-04-29 23:46:18 UTC (rev 183590)
+++ trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp        2015-04-30 00:12:25 UTC (rev 183591)
</span><span class="lines">@@ -1728,7 +1728,7 @@
</span><span class="cx">         return ItemPositionStart;
</span><span class="cx"> 
</span><span class="cx">     overflow = parent-&gt;style().alignItemsOverflowAlignment();
</span><del>-    return resolveContainerAlignmentAuto(parent-&gt;style().alignItems(), parent);
</del><ins>+    return resolveContainerAlignmentAuto(parent-&gt;style().alignItemsPosition(), parent);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> PassRefPtr&lt;CSSValue&gt; CSSComputedStyleDeclaration::getPropertyCSSValue(CSSPropertyID propertyID, EUpdateLayout updateLayout) const
</span><span class="lines">@@ -2186,10 +2186,10 @@
</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 valueForItemPositionWithOverflowAlignment(resolveContainerAlignmentAuto(style-&gt;alignItems(), renderer), style-&gt;alignItemsOverflowAlignment(), NonLegacyPosition);
</del><ins>+            return valueForItemPositionWithOverflowAlignment(resolveContainerAlignmentAuto(style-&gt;alignItemsPosition(), renderer), style-&gt;alignItemsOverflowAlignment(), NonLegacyPosition);
</ins><span class="cx">         case CSSPropertyAlignSelf: {
</span><span class="cx">             OverflowAlignment overflow = style-&gt;alignSelfOverflowAlignment();
</span><del>-            ItemPosition alignSelf = resolveSelfAlignmentAuto(style-&gt;alignSelf(), overflow, renderer);
</del><ins>+            ItemPosition alignSelf = resolveSelfAlignmentAuto(style-&gt;alignSelfPosition(), overflow, renderer);
</ins><span class="cx">             return valueForItemPositionWithOverflowAlignment(alignSelf, overflow, NonLegacyPosition);
</span><span class="cx">         }
</span><span class="cx">         case CSSPropertyFlex:
</span><span class="lines">@@ -2209,10 +2209,10 @@
</span><span class="cx">         case CSSPropertyJustifyContent:
</span><span class="cx">             return cssValuePool().createValue(style-&gt;justifyContent());
</span><span class="cx">         case CSSPropertyJustifyItems:
</span><del>-            return valueForItemPositionWithOverflowAlignment(resolveContainerAlignmentAuto(style-&gt;justifyItems(), renderer), style-&gt;justifyItemsOverflowAlignment(), style-&gt;justifyItemsPositionType());
</del><ins>+            return valueForItemPositionWithOverflowAlignment(resolveContainerAlignmentAuto(style-&gt;justifyItemsPosition(), renderer), style-&gt;justifyItemsOverflowAlignment(), style-&gt;justifyItemsPositionType());
</ins><span class="cx">         case CSSPropertyJustifySelf: {
</span><span class="cx">             OverflowAlignment overflow = style-&gt;justifySelfOverflowAlignment();
</span><del>-            ItemPosition justifySelf = resolveSelfAlignmentAuto(style-&gt;justifySelf(), overflow, renderer);
</del><ins>+            ItemPosition justifySelf = resolveSelfAlignmentAuto(style-&gt;justifySelfPosition(), overflow, renderer);
</ins><span class="cx">             return valueForItemPositionWithOverflowAlignment(justifySelf, overflow, NonLegacyPosition);
</span><span class="cx">         }
</span><span class="cx">         case CSSPropertyOrder:
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSPropertyNamesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSPropertyNames.in (183590 => 183591)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSPropertyNames.in        2015-04-29 23:46:18 UTC (rev 183590)
+++ trunk/Source/WebCore/css/CSSPropertyNames.in        2015-04-30 00:12:25 UTC (rev 183591)
</span><span class="lines">@@ -455,9 +455,9 @@
</span><span class="cx"> -webkit-filter [ConditionalConverter=FilterOperations]
</span><span class="cx"> align-content
</span><span class="cx"> -webkit-align-content = align-content
</span><del>-align-items [Custom=All]
</del><ins>+align-items [Initial=initialSelfAlignment, Converter=SelfOrDefaultAlignmentData]
</ins><span class="cx"> -webkit-align-items = align-items
</span><del>-align-self [Custom=All]
</del><ins>+align-self [Initial=initialSelfAlignment, Converter=SelfOrDefaultAlignmentData]
</ins><span class="cx"> -webkit-align-self = align-self
</span><span class="cx"> flex [Longhands=flex-grow|flex-shrink|flex-basis]
</span><span class="cx"> -webkit-flex = flex
</span><span class="lines">@@ -478,9 +478,9 @@
</span><span class="cx"> #if defined(ENABLE_FILTERS_LEVEL_2) &amp;&amp; ENABLE_FILTERS_LEVEL_2
</span><span class="cx"> -webkit-backdrop-filter [ConditionalConverter=FilterOperations]
</span><span class="cx"> #endif
</span><del>-justify-self [Custom=All]
</del><ins>+justify-self [Initial=initialSelfAlignment, Converter=SelfOrDefaultAlignmentData]
</ins><span class="cx"> -webkit-font-size-delta [SkipBuilder]
</span><del>-justify-items [Custom=All]
</del><ins>+justify-items [Initial=initialSelfAlignment, Converter=SelfOrDefaultAlignmentData]
</ins><span class="cx"> -webkit-justify-items = justify-items
</span><span class="cx"> #if defined(ENABLE_CSS_GRID_LAYOUT) &amp;&amp; ENABLE_CSS_GRID_LAYOUT
</span><span class="cx"> -webkit-grid [Longhands=-webkit-grid-template-columns|-webkit-grid-template-rows|-webkit-grid-template-areas|-webkit-grid-auto-flow|-webkit-grid-auto-columns|-webkit-grid-auto-rows]
</span></span></pre></div>
<a id="trunkSourceWebCorecssStyleBuilderConverterh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleBuilderConverter.h (183590 => 183591)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleBuilderConverter.h        2015-04-29 23:46:18 UTC (rev 183590)
+++ trunk/Source/WebCore/css/StyleBuilderConverter.h        2015-04-30 00:12:25 UTC (rev 183591)
</span><span class="lines">@@ -121,6 +121,7 @@
</span><span class="cx">     static float convertOpacity(StyleResolver&amp;, CSSValue&amp;);
</span><span class="cx">     static String convertSVGURIReference(StyleResolver&amp;, CSSValue&amp;);
</span><span class="cx">     static Color convertSVGColor(StyleResolver&amp;, CSSValue&amp;);
</span><ins>+    static StyleSelfAlignmentData convertSelfOrDefaultAlignmentData(StyleResolver&amp;, CSSValue&amp;);
</ins><span class="cx">     static EGlyphOrientation convertGlyphOrientation(StyleResolver&amp;, CSSValue&amp;);
</span><span class="cx">     static EGlyphOrientation convertGlyphOrientationOrAuto(StyleResolver&amp;, CSSValue&amp;);
</span><span class="cx">     static Optional&lt;Length&gt; convertLineHeight(StyleResolver&amp;, CSSValue&amp;, float multiplier = 1.f);
</span><span class="lines">@@ -1170,6 +1171,23 @@
</span><span class="cx">     return svgColor.colorType() == SVGColor::SVG_COLORTYPE_CURRENTCOLOR ? styleResolver.style()-&gt;color() : svgColor.color();
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+inline StyleSelfAlignmentData StyleBuilderConverter::convertSelfOrDefaultAlignmentData(StyleResolver&amp;, CSSValue&amp; value)
+{
+    StyleSelfAlignmentData alignmentData = RenderStyle::initialSelfAlignment();
+    auto&amp; primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(value);
+    if (Pair* pairValue = primitiveValue.getPairValue()) {
+        if (pairValue-&gt;first()-&gt;getValueID() == CSSValueLegacy) {
+            alignmentData.setPositionType(LegacyPosition);
+            alignmentData.setPosition(*pairValue-&gt;second());
+        } else {
+            alignmentData.setPosition(*pairValue-&gt;first());
+            alignmentData.setOverflow(*pairValue-&gt;second());
+        }
+    } else
+        alignmentData.setPosition(primitiveValue);
+    return alignmentData;
+}
+
</ins><span class="cx"> inline EGlyphOrientation StyleBuilderConverter::convertGlyphOrientation(StyleResolver&amp;, CSSValue&amp; value)
</span><span class="cx"> {
</span><span class="cx">     float angle = fabsf(fmodf(downcast&lt;CSSPrimitiveValue&gt;(value).getFloatValue(), 360.0f));
</span></span></pre></div>
<a id="trunkSourceWebCorecssStyleBuilderCustomh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleBuilderCustom.h (183590 => 183591)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleBuilderCustom.h        2015-04-29 23:46:18 UTC (rev 183590)
+++ trunk/Source/WebCore/css/StyleBuilderCustom.h        2015-04-30 00:12:25 UTC (rev 183591)
</span><span class="lines">@@ -102,10 +102,6 @@
</span><span class="cx">     DECLARE_PROPERTY_CUSTOM_HANDLERS(WebkitSvgShadow);
</span><span class="cx">     DECLARE_PROPERTY_CUSTOM_HANDLERS(WebkitTextEmphasisStyle);
</span><span class="cx">     DECLARE_PROPERTY_CUSTOM_HANDLERS(Zoom);
</span><del>-    DECLARE_PROPERTY_CUSTOM_HANDLERS(JustifySelf);
-    DECLARE_PROPERTY_CUSTOM_HANDLERS(JustifyItems);
-    DECLARE_PROPERTY_CUSTOM_HANDLERS(AlignItems);
-    DECLARE_PROPERTY_CUSTOM_HANDLERS(AlignSelf);
</del><span class="cx"> 
</span><span class="cx">     // Custom handling of initial + inherit value setting only.
</span><span class="cx">     static void applyInitialWebkitMaskImage(StyleResolver&amp;) { }
</span><span class="lines">@@ -507,111 +503,6 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline void StyleBuilderCustom::applyInheritAlignSelf(StyleResolver&amp; styleResolver)
-{
-    styleResolver.style()-&gt;setAlignSelf(styleResolver.parentStyle()-&gt;alignSelf());
-    styleResolver.style()-&gt;setAlignSelfOverflowAlignment(styleResolver.parentStyle()-&gt;alignSelfOverflowAlignment());
-}
-
-inline void StyleBuilderCustom::applyInitialAlignSelf(StyleResolver&amp; styleResolver)
-{
-    styleResolver.style()-&gt;setAlignSelf(RenderStyle::initialAlignSelf());
-    styleResolver.style()-&gt;setAlignSelfOverflowAlignment(RenderStyle::initialAlignSelfOverflowAlignment());
-}
-
-inline void StyleBuilderCustom::applyValueAlignSelf(StyleResolver&amp; styleResolver, CSSValue&amp; value)
-{
-    auto&amp; primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(value);
-    if (Pair* pairValue = primitiveValue.getPairValue()) {
-        styleResolver.style()-&gt;setAlignSelf(*pairValue-&gt;first());
-        styleResolver.style()-&gt;setAlignSelfOverflowAlignment(*pairValue-&gt;second());
-    } else {
-        styleResolver.style()-&gt;setAlignSelf(primitiveValue);
-        styleResolver.style()-&gt;setAlignSelfOverflowAlignment(RenderStyle::initialAlignSelfOverflowAlignment());
-    }
-}
-
-inline void StyleBuilderCustom::applyInheritAlignItems(StyleResolver&amp; styleResolver)
-{
-    styleResolver.style()-&gt;setAlignItems(styleResolver.parentStyle()-&gt;alignItems());
-    styleResolver.style()-&gt;setAlignItemsOverflowAlignment(styleResolver.parentStyle()-&gt;alignItemsOverflowAlignment());
-}
-
-inline void StyleBuilderCustom::applyInitialAlignItems(StyleResolver&amp; styleResolver)
-{
-    styleResolver.style()-&gt;setAlignItems(RenderStyle::initialAlignItems());
-    styleResolver.style()-&gt;setAlignItemsOverflowAlignment(RenderStyle::initialAlignItemsOverflowAlignment());
-}
-
-inline void StyleBuilderCustom::applyValueAlignItems(StyleResolver&amp; styleResolver, CSSValue&amp; value)
-{
-    auto&amp; primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(value);
-    if (Pair* pairValue = primitiveValue.getPairValue()) {
-        styleResolver.style()-&gt;setAlignItems(*pairValue-&gt;first());
-        styleResolver.style()-&gt;setAlignItemsOverflowAlignment(*pairValue-&gt;second());
-    } else {
-        styleResolver.style()-&gt;setAlignItems(primitiveValue);
-        styleResolver.style()-&gt;setAlignItemsOverflowAlignment(RenderStyle::initialAlignItemsOverflowAlignment());
-    }
-}
-
-inline void StyleBuilderCustom::applyInheritJustifySelf(StyleResolver&amp; styleResolver)
-{
-    styleResolver.style()-&gt;setJustifySelf(styleResolver.parentStyle()-&gt;justifySelf());
-    styleResolver.style()-&gt;setJustifySelfOverflowAlignment(styleResolver.parentStyle()-&gt;justifySelfOverflowAlignment());
-}
-
-inline void StyleBuilderCustom::applyInitialJustifySelf(StyleResolver&amp; styleResolver)
-{
-    styleResolver.style()-&gt;setJustifySelf(RenderStyle::initialJustifySelf());
-    styleResolver.style()-&gt;setJustifySelfOverflowAlignment(RenderStyle::initialJustifySelfOverflowAlignment());
-}
-
-inline void StyleBuilderCustom::applyValueJustifySelf(StyleResolver&amp; styleResolver, CSSValue&amp; value)
-{
-    auto&amp; primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(value);
-    if (Pair* pairValue = primitiveValue.getPairValue()) {
-        styleResolver.style()-&gt;setJustifySelf(*pairValue-&gt;first());
-        styleResolver.style()-&gt;setJustifySelfOverflowAlignment(*pairValue-&gt;second());
-    } else {
-        styleResolver.style()-&gt;setJustifySelf(primitiveValue);
-        styleResolver.style()-&gt;setJustifySelfOverflowAlignment(RenderStyle::initialJustifySelfOverflowAlignment());
-    }
-}
-
-inline void StyleBuilderCustom::applyInheritJustifyItems(StyleResolver&amp; styleResolver)
-{
-    styleResolver.style()-&gt;setJustifyItems(styleResolver.parentStyle()-&gt;justifyItems());
-    styleResolver.style()-&gt;setJustifyItemsOverflowAlignment(styleResolver.parentStyle()-&gt;justifyItemsOverflowAlignment());
-    styleResolver.style()-&gt;setJustifyItemsPositionType(styleResolver.parentStyle()-&gt;justifyItemsPositionType());
-}
-
-inline void StyleBuilderCustom::applyInitialJustifyItems(StyleResolver&amp; styleResolver)
-{
-    styleResolver.style()-&gt;setJustifyItems(RenderStyle::initialJustifyItems());
-    styleResolver.style()-&gt;setJustifyItemsOverflowAlignment(RenderStyle::initialJustifyItemsOverflowAlignment());
-    styleResolver.style()-&gt;setJustifyItemsPositionType(RenderStyle::initialJustifyItemsPositionType());
-}
-
-inline void StyleBuilderCustom::applyValueJustifyItems(StyleResolver&amp; styleResolver, CSSValue&amp; value)
-{
-    styleResolver.style()-&gt;setJustifyItems(RenderStyle::initialJustifyItems());
-    styleResolver.style()-&gt;setJustifyItemsOverflowAlignment(RenderStyle::initialJustifyItemsOverflowAlignment());
-    styleResolver.style()-&gt;setJustifyItemsPositionType(RenderStyle::initialJustifyItemsPositionType());
-
-    auto&amp; primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(value);
-    if (Pair* pairValue = primitiveValue.getPairValue()) {
-        if (pairValue-&gt;first()-&gt;getValueID() == CSSValueLegacy) {
-            styleResolver.style()-&gt;setJustifyItemsPositionType(LegacyPosition);
-            styleResolver.style()-&gt;setJustifyItems(*pairValue-&gt;second());
-        } else {
-            styleResolver.style()-&gt;setJustifyItems(*pairValue-&gt;first());
-            styleResolver.style()-&gt;setJustifyItemsOverflowAlignment(*pairValue-&gt;second());
-        }
-    } else
-        styleResolver.style()-&gt;setJustifyItems(primitiveValue);
-}
-
</del><span class="cx"> enum BorderImageType { BorderImage, WebkitMaskBoxImage };
</span><span class="cx"> enum BorderImageModifierType { Outset, Repeat, Slice, Width };
</span><span class="cx"> template &lt;BorderImageType type, BorderImageModifierType modifier&gt;
</span></span></pre></div>
<a id="trunkSourceWebCorecssStyleResolvercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleResolver.cpp (183590 => 183591)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleResolver.cpp        2015-04-29 23:46:18 UTC (rev 183590)
+++ trunk/Source/WebCore/css/StyleResolver.cpp        2015-04-30 00:12:25 UTC (rev 183591)
</span><span class="lines">@@ -1437,10 +1437,8 @@
</span><span class="cx"> 
</span><span class="cx">     // If the inherited value of justify-items includes the legacy keyword, 'auto'
</span><span class="cx">     // computes to the the inherited value.
</span><del>-    if (parentStyle.justifyItemsPositionType() == LegacyPosition &amp;&amp; style.justifyItems() == ItemPositionAuto) {
</del><ins>+    if (parentStyle.justifyItemsPositionType() == LegacyPosition &amp;&amp; style.justifyItemsPosition() == ItemPositionAuto)
</ins><span class="cx">         style.setJustifyItems(parentStyle.justifyItems());
</span><del>-        style.setJustifyItemsPositionType(parentStyle.justifyItemsPositionType());
-    }
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool StyleResolver::checkRegionStyle(Element* regionElement)
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLTextElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLTextElement.cpp (183590 => 183591)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLTextElement.cpp        2015-04-29 23:46:18 UTC (rev 183590)
+++ trunk/Source/WebCore/mathml/MathMLTextElement.cpp        2015-04-30 00:12:25 UTC (rev 183591)
</span><span class="lines">@@ -88,7 +88,7 @@
</span><span class="cx"> 
</span><span class="cx">     // FIXME: why do we have to set the alignment here ? It seems needed to make the
</span><span class="cx">     // style-changed.htmt test to pass, since mathml renders expect Stretch as default.
</span><del>-    style.get().setAlignItems(ItemPositionStretch);
</del><ins>+    style.get().setAlignItemsPosition(ItemPositionStretch);
</ins><span class="cx"> 
</span><span class="cx">     return createRenderer&lt;RenderMathMLToken&gt;(*this, WTF::move(style));
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderFlexibleBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp (183590 => 183591)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp        2015-04-29 23:46:18 UTC (rev 183590)
+++ trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp        2015-04-30 00:12:25 UTC (rev 183591)
</span><span class="lines">@@ -228,7 +228,7 @@
</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() == ItemPositionStretch || oldStyle-&gt;alignItems() == ItemPositionAuto) &amp;&amp; diff == StyleDifferenceLayout) {
</del><ins>+    if (oldStyle &amp;&amp; (oldStyle-&gt;alignItemsPosition() == ItemPositionStretch || oldStyle-&gt;alignItemsPosition() == ItemPositionAuto) &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></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderFullScreencpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderFullScreen.cpp (183590 => 183591)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderFullScreen.cpp        2015-04-29 23:46:18 UTC (rev 183590)
+++ trunk/Source/WebCore/rendering/RenderFullScreen.cpp        2015-04-30 00:12:25 UTC (rev 183591)
</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(ItemPositionCenter);
</del><ins>+    fullscreenStyle.get().setAlignItemsPosition(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 (183590 => 183591)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderMenuList.cpp        2015-04-29 23:46:18 UTC (rev 183590)
+++ trunk/Source/WebCore/rendering/RenderMenuList.cpp        2015-04-30 00:12:25 UTC (rev 183591)
</span><span class="lines">@@ -118,10 +118,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() == ItemPositionCenter) {
</del><ins>+    if (style().alignItemsPosition() == ItemPositionCenter) {
</ins><span class="cx">         innerStyle.setMarginTop(Length());
</span><span class="cx">         innerStyle.setMarginBottom(Length());
</span><del>-        innerStyle.setAlignSelf(ItemPositionFlexStart);
</del><ins>+        innerStyle.setAlignSelfPosition(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 (183590 => 183591)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLRoot.cpp        2015-04-29 23:46:18 UTC (rev 183590)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLRoot.cpp        2015-04-30 00:12:25 UTC (rev 183591)
</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(ItemPositionBaseline);
</del><ins>+    baseStyle.get().setAlignItemsPosition(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(ItemPositionBaseline);
</del><ins>+        indexStyle.get().setAlignItemsPosition(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 (183590 => 183591)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp        2015-04-29 23:46:18 UTC (rev 183590)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp        2015-04-30 00:12:25 UTC (rev 183591)
</span><span class="lines">@@ -100,7 +100,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 ? ItemPositionFlexStart : ItemPositionFlexEnd);
</del><ins>+    scriptsStyle.setAlignItemsPosition(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">@@ -114,7 +114,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(ItemPositionFlexStart);
</del><ins>+    m_baseWrapper-&gt;style().setAlignSelfPosition(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">@@ -134,7 +134,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(ItemPositionCenter);
</del><ins>+            scriptsStyle.setAlignItemsPosition(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="trunkSourceWebCorerenderingstyleRenderStylecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/RenderStyle.cpp (183590 => 183591)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/RenderStyle.cpp        2015-04-29 23:46:18 UTC (rev 183590)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.cpp        2015-04-30 00:12:25 UTC (rev 183591)
</span><span class="lines">@@ -174,16 +174,16 @@
</span><span class="cx"> ItemPosition RenderStyle::resolveAlignment(const RenderStyle&amp; parentStyle, const RenderStyle&amp; childStyle, ItemPosition resolvedAutoPositionForRenderer)
</span><span class="cx"> {
</span><span class="cx">     // The auto keyword computes to the parent's align-items computed value, or to &quot;stretch&quot;, if not set or &quot;auto&quot;.
</span><del>-    if (childStyle.alignSelf() == ItemPositionAuto)
-        return (parentStyle.alignItems() == ItemPositionAuto) ? resolvedAutoPositionForRenderer : parentStyle.alignItems();
-    return childStyle.alignSelf();
</del><ins>+    if (childStyle.alignSelfPosition() == ItemPositionAuto)
+        return (parentStyle.alignItemsPosition() == ItemPositionAuto) ? resolvedAutoPositionForRenderer : parentStyle.alignItemsPosition();
+    return childStyle.alignSelfPosition();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> ItemPosition RenderStyle::resolveJustification(const RenderStyle&amp; parentStyle, const RenderStyle&amp; childStyle, ItemPosition resolvedAutoPositionForLayoutObject)
</span><span class="cx"> {
</span><del>-    if (childStyle.justifySelf() == ItemPositionAuto)
-        return (parentStyle.justifyItems() == ItemPositionAuto) ? resolvedAutoPositionForLayoutObject : parentStyle.justifyItems();
-    return childStyle.justifySelf();
</del><ins>+    if (childStyle.justifySelfPosition() == ItemPositionAuto)
+        return (parentStyle.justifyItemsPosition() == ItemPositionAuto) ? resolvedAutoPositionForLayoutObject : parentStyle.justifyItemsPosition();
+    return childStyle.justifySelfPosition();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderStyle::inheritFrom(const RenderStyle* inheritParent, IsAtShadowBoundary isAtShadowBoundary)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleRenderStyleh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/RenderStyle.h (183590 => 183591)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/RenderStyle.h        2015-04-29 23:46:18 UTC (rev 183590)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.h        2015-04-30 00:12:25 UTC (rev 183591)
</span><span class="lines">@@ -910,20 +910,24 @@
</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>-    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); }
</del><ins>+    const StyleSelfAlignmentData&amp; alignItems() const { return rareNonInheritedData-&gt;m_alignItems; }
+    ItemPosition alignItemsPosition() const { return rareNonInheritedData-&gt;m_alignItems.position(); }
+    OverflowAlignment alignItemsOverflowAlignment() const { return rareNonInheritedData-&gt;m_alignItems.overflow(); }
+    const StyleSelfAlignmentData&amp; alignSelf() const { return rareNonInheritedData-&gt;m_alignSelf; }
+    ItemPosition alignSelfPosition() const { return rareNonInheritedData-&gt;m_alignSelf.position(); }
+    OverflowAlignment alignSelfOverflowAlignment() const { return rareNonInheritedData-&gt;m_alignSelf.overflow(); }
</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>-    ItemPosition justifyItems() const { return static_cast&lt;ItemPosition&gt;(rareNonInheritedData-&gt;m_justifyItems); }
-    OverflowAlignment justifyItemsOverflowAlignment() const { return static_cast&lt;OverflowAlignment&gt;(rareNonInheritedData-&gt;m_justifyItemsOverflowAlignment); }
-    ItemPositionType justifyItemsPositionType() const { return static_cast&lt;ItemPositionType&gt;(rareNonInheritedData-&gt;m_justifyItemsPositionType); }
-    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); }
</del><ins>+    const StyleSelfAlignmentData&amp; justifyItems() const { return rareNonInheritedData-&gt;m_justifyItems; }
+    ItemPosition justifyItemsPosition() const { return rareNonInheritedData-&gt;m_justifyItems.position(); }
+    OverflowAlignment justifyItemsOverflowAlignment() const { return rareNonInheritedData-&gt;m_justifyItems.overflow(); }
+    ItemPositionType justifyItemsPositionType() const { return rareNonInheritedData-&gt;m_justifyItems.positionType(); }
+    const StyleSelfAlignmentData&amp; justifySelf() const { return rareNonInheritedData-&gt;m_justifySelf; }
+    ItemPosition justifySelfPosition() const { return rareNonInheritedData-&gt;m_justifySelf.position(); }
+    OverflowAlignment justifySelfOverflowAlignment() const { return rareNonInheritedData-&gt;m_justifySelf.overflow(); }
</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">@@ -1496,18 +1500,22 @@
</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(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); }
</del><ins>+    void setAlignItems(const StyleSelfAlignmentData&amp; data) { SET_VAR(rareNonInheritedData, m_alignItems, data); }
+    void setAlignItemsPosition(ItemPosition position) { rareNonInheritedData.access()-&gt;m_alignItems.setPosition(position); }
+    void setAlignItemsOverflow(OverflowAlignment overflow) { rareNonInheritedData.access()-&gt;m_alignItems.setOverflow(overflow); }
+    void setAlignSelf(const StyleSelfAlignmentData&amp; data) { SET_VAR(rareNonInheritedData, m_alignSelf, data); }
+    void setAlignSelfPosition(ItemPosition position) { rareNonInheritedData.access()-&gt;m_alignSelf.setPosition(position); }
+    void setAlignSelfOverflow(OverflowAlignment overflow) { rareNonInheritedData.access()-&gt;m_alignSelf.setOverflow(overflow); }
</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 setJustifyItems(ItemPosition justifyItems) { SET_VAR(rareNonInheritedData, m_justifyItems, justifyItems); }
-    void setJustifyItemsOverflowAlignment(OverflowAlignment overflowAlignment) { SET_VAR(rareNonInheritedData, m_justifyItemsOverflowAlignment, overflowAlignment); }
-    void setJustifyItemsPositionType(ItemPositionType positionType) { SET_VAR(rareNonInheritedData, m_justifyItemsPositionType, positionType); }
-    void setJustifySelf(ItemPosition p) { SET_VAR(rareNonInheritedData, m_justifySelf, p); }
-    void setJustifySelfOverflowAlignment(OverflowAlignment overflowAlignment) { SET_VAR(rareNonInheritedData, m_justifySelfOverflowAlignment, overflowAlignment); }
</del><ins>+    void setJustifyItems(const StyleSelfAlignmentData&amp; data) { SET_VAR(rareNonInheritedData, m_justifyItems, data); }
+    void setJustifyItemsPosition(ItemPosition position) { rareNonInheritedData.access()-&gt;m_justifyItems.setPosition(position); }
+    void setJustifyItemsOverflow(OverflowAlignment overflow) { rareNonInheritedData.access()-&gt;m_justifyItems.setOverflow(overflow); }
+    void setJustifyItemsPositionType(ItemPositionType positionType) { rareNonInheritedData.access()-&gt;m_justifyItems.setPositionType(positionType); }
+    void setJustifySelf(const StyleSelfAlignmentData&amp; data) { SET_VAR(rareNonInheritedData, m_justifySelf, data); }
+    void setJustifySelfPosition(ItemPosition position) { rareNonInheritedData.access()-&gt;m_justifySelf.setPosition(position); }
+    void setJustifySelfOverflow(OverflowAlignment overflow) { rareNonInheritedData.access()-&gt;m_justifySelf.setOverflow(overflow); }
</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">@@ -1917,18 +1925,10 @@
</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 ItemPosition initialAlignItems() { return ItemPositionAuto; }
-    static OverflowAlignment initialAlignItemsOverflowAlignment() { return OverflowAlignmentDefault; }
-    static ItemPosition initialAlignSelf() { return ItemPositionAuto; }
-    static OverflowAlignment initialAlignSelfOverflowAlignment() { return OverflowAlignmentDefault; }
</del><ins>+    static StyleSelfAlignmentData initialSelfAlignment() { return StyleSelfAlignmentData(ItemPositionAuto, 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 ItemPosition initialJustifyItems() { return ItemPositionAuto; }
-    static OverflowAlignment initialJustifyItemsOverflowAlignment() { return OverflowAlignmentDefault; }
-    static ItemPositionType initialJustifyItemsPositionType() { return NonLegacyPosition; }
-    static ItemPosition initialJustifySelf() { return ItemPositionAuto; }
-    static OverflowAlignment initialJustifySelfOverflowAlignment() { return OverflowAlignmentDefault; }
</del><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></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleRareNonInheritedDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp (183590 => 183591)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp        2015-04-29 23:46:18 UTC (rev 183590)
+++ trunk/Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp        2015-04-30 00:12:25 UTC (rev 183591)
</span><span class="lines">@@ -71,6 +71,10 @@
</span><span class="cx">     , m_order(RenderStyle::initialOrder())
</span><span class="cx">     , m_flowThread(RenderStyle::initialFlowThread())
</span><span class="cx">     , m_regionThread(RenderStyle::initialRegionThread())
</span><ins>+    , m_alignItems(RenderStyle::initialSelfAlignment())
+    , m_alignSelf(RenderStyle::initialSelfAlignment())
+    , m_justifyItems(RenderStyle::initialSelfAlignment())
+    , m_justifySelf(RenderStyle::initialSelfAlignment())
</ins><span class="cx"> #if ENABLE(CSS_SCROLL_SNAP)
</span><span class="cx">     , m_scrollSnapType(static_cast&lt;unsigned&gt;(RenderStyle::initialScrollSnapType()))
</span><span class="cx"> #endif
</span><span class="lines">@@ -82,16 +86,7 @@
</span><span class="cx">     , m_transformStyle3D(RenderStyle::initialTransformStyle3D())
</span><span class="cx">     , m_backfaceVisibility(RenderStyle::initialBackfaceVisibility())
</span><span class="cx">     , m_alignContent(RenderStyle::initialAlignContent())
</span><del>-    , m_alignItems(RenderStyle::initialAlignItems())
-    , m_alignItemsOverflowAlignment(RenderStyle::initialAlignItemsOverflowAlignment())
-    , m_alignSelf(RenderStyle::initialAlignSelf())
-    , m_alignSelfOverflowAlignment(RenderStyle::initialAlignSelfOverflowAlignment())
</del><span class="cx">     , m_justifyContent(RenderStyle::initialJustifyContent())
</span><del>-    , m_justifyItems(RenderStyle::initialJustifyItems())
-    , m_justifyItemsOverflowAlignment(RenderStyle::initialJustifyItemsOverflowAlignment())
-    , m_justifyItemsPositionType(NonLegacyPosition)
-    , m_justifySelf(RenderStyle::initialJustifySelf())
-    , m_justifySelfOverflowAlignment(RenderStyle::initialJustifySelfOverflowAlignment())
</del><span class="cx">     , userDrag(RenderStyle::initialUserDrag())
</span><span class="cx">     , textOverflow(RenderStyle::initialTextOverflow())
</span><span class="cx">     , marginBeforeCollapse(MCOLLAPSE)
</span><span class="lines">@@ -164,6 +159,10 @@
</span><span class="cx">     , m_order(o.m_order)
</span><span class="cx">     , m_flowThread(o.m_flowThread)
</span><span class="cx">     , m_regionThread(o.m_regionThread)
</span><ins>+    , m_alignItems(o.m_alignItems)
+    , m_alignSelf(o.m_alignSelf)
+    , m_justifyItems(o.m_justifyItems)
+    , m_justifySelf(o.m_justifySelf)
</ins><span class="cx"> #if ENABLE(CSS_SCROLL_SNAP)
</span><span class="cx">     , m_scrollSnapType(o.m_scrollSnapType)
</span><span class="cx"> #endif
</span><span class="lines">@@ -175,16 +174,7 @@
</span><span class="cx">     , m_transformStyle3D(o.m_transformStyle3D)
</span><span class="cx">     , m_backfaceVisibility(o.m_backfaceVisibility)
</span><span class="cx">     , m_alignContent(o.m_alignContent)
</span><del>-    , m_alignItems(o.m_alignItems)
-    , m_alignItemsOverflowAlignment(o.m_alignItemsOverflowAlignment)
-    , m_alignSelf(o.m_alignSelf)
-    , m_alignSelfOverflowAlignment(o.m_alignSelfOverflowAlignment)
</del><span class="cx">     , m_justifyContent(o.m_justifyContent)
</span><del>-    , m_justifyItems(o.m_justifyItems)
-    , m_justifyItemsOverflowAlignment(o.m_justifyItemsOverflowAlignment)
-    , m_justifyItemsPositionType(o.m_justifyItemsPositionType)
-    , m_justifySelf(o.m_justifySelf)
-    , m_justifySelfOverflowAlignment(o.m_justifySelfOverflowAlignment)
</del><span class="cx">     , userDrag(o.userDrag)
</span><span class="cx">     , textOverflow(o.textOverflow)
</span><span class="cx">     , marginBeforeCollapse(o.marginBeforeCollapse)
</span><span class="lines">@@ -266,6 +256,10 @@
</span><span class="cx">         &amp;&amp; m_visitedLinkBorderBottomColor == o.m_visitedLinkBorderBottomColor
</span><span class="cx">         &amp;&amp; m_order == o.m_order
</span><span class="cx">         &amp;&amp; m_flowThread == o.m_flowThread
</span><ins>+        &amp;&amp; m_alignItems == o.m_alignItems
+        &amp;&amp; m_alignSelf == o.m_alignSelf
+        &amp;&amp; m_justifyItems == o.m_justifyItems
+        &amp;&amp; m_justifySelf == o.m_justifySelf
</ins><span class="cx">         &amp;&amp; m_regionThread == o.m_regionThread
</span><span class="cx">         &amp;&amp; m_regionFragment == o.m_regionFragment
</span><span class="cx">         &amp;&amp; m_regionBreakAfter == o.m_regionBreakAfter
</span><span class="lines">@@ -275,10 +269,6 @@
</span><span class="cx">         &amp;&amp; m_transformStyle3D == o.m_transformStyle3D
</span><span class="cx">         &amp;&amp; m_backfaceVisibility == o.m_backfaceVisibility
</span><span class="cx">         &amp;&amp; m_alignContent == o.m_alignContent
</span><del>-        &amp;&amp; m_alignItems == o.m_alignItems
-        &amp;&amp; m_alignItemsOverflowAlignment == o.m_alignItemsOverflowAlignment
-        &amp;&amp; m_alignSelf == o.m_alignSelf
-        &amp;&amp; m_alignSelfOverflowAlignment == o.m_alignSelfOverflowAlignment
</del><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 class="lines">@@ -297,12 +287,7 @@
</span><span class="cx">         &amp;&amp; m_isolation == o.m_isolation
</span><span class="cx"> #endif
</span><span class="cx">         &amp;&amp; m_aspectRatioType == o.m_aspectRatioType
</span><del>-        &amp;&amp; m_objectFit == o.m_objectFit
-        &amp;&amp; m_justifyItems == o.m_justifyItems
-        &amp;&amp; m_justifyItemsOverflowAlignment == o.m_justifyItemsOverflowAlignment
-        &amp;&amp; m_justifyItemsPositionType == o.m_justifyItemsPositionType
-        &amp;&amp; m_justifySelf == o.m_justifySelf
-        &amp;&amp; m_justifySelfOverflowAlignment == o.m_justifySelfOverflowAlignment;
</del><ins>+        &amp;&amp; m_objectFit == o.m_objectFit;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool StyleRareNonInheritedData::contentDataEquivalent(const StyleRareNonInheritedData&amp; o) const
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleRareNonInheritedDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleRareNonInheritedData.h (183590 => 183591)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleRareNonInheritedData.h        2015-04-29 23:46:18 UTC (rev 183590)
+++ trunk/Source/WebCore/rendering/style/StyleRareNonInheritedData.h        2015-04-30 00:12:25 UTC (rev 183591)
</span><span class="lines">@@ -34,6 +34,7 @@
</span><span class="cx"> #include &quot;LineClampValue.h&quot;
</span><span class="cx"> #include &quot;NinePieceImage.h&quot;
</span><span class="cx"> #include &quot;ShapeValue.h&quot;
</span><ins>+#include &quot;StyleSelfAlignmentData.h&quot;
</ins><span class="cx"> #include &lt;memory&gt;
</span><span class="cx"> #include &lt;wtf/PassRefPtr.h&gt;
</span><span class="cx"> #include &lt;wtf/Vector.h&gt;
</span><span class="lines">@@ -175,6 +176,11 @@
</span><span class="cx">     AtomicString m_flowThread;
</span><span class="cx">     AtomicString m_regionThread;
</span><span class="cx"> 
</span><ins>+    StyleSelfAlignmentData m_alignItems;
+    StyleSelfAlignmentData m_alignSelf;
+    StyleSelfAlignmentData m_justifyItems;
+    StyleSelfAlignmentData m_justifySelf;
+
</ins><span class="cx"> #if ENABLE(CSS_SCROLL_SNAP)
</span><span class="cx">     unsigned m_scrollSnapType : 2; // ScrollSnapType
</span><span class="cx"> #endif
</span><span class="lines">@@ -190,19 +196,8 @@
</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 : 4; // ItemPosition
-    unsigned m_alignItemsOverflowAlignment : 2; // OverflowAlignment
-    unsigned m_alignSelf : 4; // ItemPosition
-    unsigned m_alignSelfOverflowAlignment : 2; // OverflowAlignment
</del><span class="cx">     unsigned m_justifyContent : 3; // EJustifyContent
</span><span class="cx"> 
</span><del>-    unsigned m_justifyItems : 4; // ItemPosition
-    unsigned m_justifyItemsOverflowAlignment : 2; // OverflowAlignment
-    unsigned m_justifyItemsPositionType: 1; // Whether or not alignment uses the 'legacy' keyword.
-
-    unsigned m_justifySelf : 4; // ItemPosition
-    unsigned m_justifySelfOverflowAlignment : 2; // OverflowAlignment
-
</del><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 class="cx">     unsigned marginBeforeCollapse : 2; // EMarginCollapse
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleSelfAlignmentDatah"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/rendering/style/StyleSelfAlignmentData.h (0 => 183591)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleSelfAlignmentData.h                                (rev 0)
+++ trunk/Source/WebCore/rendering/style/StyleSelfAlignmentData.h        2015-04-30 00:12:25 UTC (rev 183591)
</span><span class="lines">@@ -0,0 +1,70 @@
</span><ins>+/*
+ * Copyright (C) 2015 Igalia S.L. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef StyleSelfAlignmentData_h
+#define StyleSelfAlignmentData_h
+
+#include &quot;RenderStyleConstants.h&quot;
+
+
+namespace WebCore {
+
+class StyleSelfAlignmentData {
+public:
+    // Style data for Self-Aligment and Default-Alignment properties: align-{self, items}, justify-{self, items}.
+    // [ &lt;self-position&gt; &amp;&amp; &lt;overflow-position&gt;? ] | [ legacy &amp;&amp; [ left | right | center ] ]
+    StyleSelfAlignmentData(ItemPosition position, OverflowAlignment overflow, ItemPositionType positionType = NonLegacyPosition)
+        : m_position(position)
+        , m_positionType(positionType)
+        , m_overflow(overflow)
+    {
+    }
+
+    void setPosition(ItemPosition position) { m_position = position; }
+    void setPositionType(ItemPositionType positionType) { m_positionType = positionType; }
+    void setOverflow(OverflowAlignment overflow) { m_overflow = overflow; }
+
+    ItemPosition position() const { return static_cast&lt;ItemPosition&gt;(m_position); }
+    ItemPositionType positionType() const { return static_cast&lt;ItemPositionType&gt;(m_positionType); }
+    OverflowAlignment overflow() const { return static_cast&lt;OverflowAlignment&gt;(m_overflow); }
+
+    bool operator==(const StyleSelfAlignmentData&amp; o) const
+    {
+        return m_position == o.m_position &amp;&amp; m_positionType == o.m_positionType &amp;&amp; m_overflow == o.m_overflow;
+    }
+
+    bool operator!=(const StyleSelfAlignmentData&amp; o) const
+    {
+        return !(*this == o);
+    }
+
+private:
+    unsigned m_position : 4; // ItemPosition
+    unsigned m_positionType: 1; // Whether or not alignment uses the 'legacy' keyword.
+    unsigned m_overflow : 2; // OverflowAlignment
+};
+
+} // namespace WebCore
+
+#endif // StyleSelfAlignmentData_h
</ins></span></pre>
</div>
</div>

</body>
</html>