<!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>[177821] 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/177821">177821</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2014-12-29 20:39:59 -0800 (Mon, 29 Dec 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Move animation / transition CSS properties to the new StyleBuilder
https://bugs.webkit.org/show_bug.cgi?id=139999

Reviewed by Darin Adler.

Move animation / transition CSS properties to the new StyleBuilder by
teaching makeprop.pl how to generate them.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorecssCSSComputedStyleDeclarationcpp">trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSPropertyNamesin">trunk/Source/WebCore/css/CSSPropertyNames.in</a></li>
<li><a href="#trunkSourceWebCorecssCSSToStyleMapcpp">trunk/Source/WebCore/css/CSSToStyleMap.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSToStyleMaph">trunk/Source/WebCore/css/CSSToStyleMap.h</a></li>
<li><a href="#trunkSourceWebCorecssDeprecatedStyleBuildercpp">trunk/Source/WebCore/css/DeprecatedStyleBuilder.cpp</a></li>
<li><a href="#trunkSourceWebCorecssmakeproppl">trunk/Source/WebCore/css/makeprop.pl</a></li>
<li><a href="#trunkSourceWebCoreplatformanimationAnimationcpp">trunk/Source/WebCore/platform/animation/Animation.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformanimationAnimationh">trunk/Source/WebCore/platform/animation/Animation.h</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>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (177820 => 177821)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-12-30 02:59:25 UTC (rev 177820)
+++ trunk/Source/WebCore/ChangeLog        2014-12-30 04:39:59 UTC (rev 177821)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2014-12-29  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        Move animation / transition CSS properties to the new StyleBuilder
+        https://bugs.webkit.org/show_bug.cgi?id=139999
+
+        Reviewed by Darin Adler.
+
+        Move animation / transition CSS properties to the new StyleBuilder by
+        teaching makeprop.pl how to generate them.
+
</ins><span class="cx"> 2014-12-29  Anders Carlsson  &lt;andersca@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Remove more dead code
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSComputedStyleDeclarationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp (177820 => 177821)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp        2014-12-30 02:59:25 UTC (rev 177820)
+++ trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp        2014-12-30 04:39:59 UTC (rev 177821)
</span><span class="lines">@@ -1154,7 +1154,7 @@
</span><span class="cx">             list.get().append(cssValuePool().createValue(animList-&gt;animation(i).delay(), CSSPrimitiveValue::CSS_S));
</span><span class="cx">     } else {
</span><span class="cx">         // Note that initialAnimationDelay() is used for both transitions and animations
</span><del>-        list.get().append(cssValuePool().createValue(Animation::initialAnimationDelay(), CSSPrimitiveValue::CSS_S));
</del><ins>+        list.get().append(cssValuePool().createValue(Animation::initialDelay(), CSSPrimitiveValue::CSS_S));
</ins><span class="cx">     }
</span><span class="cx">     return list;
</span><span class="cx"> }
</span><span class="lines">@@ -1167,7 +1167,7 @@
</span><span class="cx">             list.get().append(cssValuePool().createValue(animList-&gt;animation(i).duration(), CSSPrimitiveValue::CSS_S));
</span><span class="cx">     } else {
</span><span class="cx">         // Note that initialAnimationDuration() is used for both transitions and animations
</span><del>-        list.get().append(cssValuePool().createValue(Animation::initialAnimationDuration(), CSSPrimitiveValue::CSS_S));
</del><ins>+        list.get().append(cssValuePool().createValue(Animation::initialDuration(), CSSPrimitiveValue::CSS_S));
</ins><span class="cx">     }
</span><span class="cx">     return list;
</span><span class="cx"> }
</span><span class="lines">@@ -1216,7 +1216,7 @@
</span><span class="cx">             list.get().append(createTimingFunctionValue(animList-&gt;animation(i).timingFunction().get()));
</span><span class="cx">     } else
</span><span class="cx">         // Note that initialAnimationTimingFunction() is used for both transitions and animations
</span><del>-        list.get().append(createTimingFunctionValue(Animation::initialAnimationTimingFunction().get()));
</del><ins>+        list.get().append(createTimingFunctionValue(Animation::initialTimingFunction().get()));
</ins><span class="cx">     return list;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -2695,7 +2695,7 @@
</span><span class="cx">                         list-&gt;append(cssValuePool().createValue(iterationCount, CSSPrimitiveValue::CSS_NUMBER));
</span><span class="cx">                 }
</span><span class="cx">             } else
</span><del>-                list-&gt;append(cssValuePool().createValue(Animation::initialAnimationIterationCount(), CSSPrimitiveValue::CSS_NUMBER));
</del><ins>+                list-&gt;append(cssValuePool().createValue(Animation::initialIterationCount(), CSSPrimitiveValue::CSS_NUMBER));
</ins><span class="cx">             return list.release();
</span><span class="cx">         }
</span><span class="cx">         case CSSPropertyAnimationName:
</span><span class="lines">@@ -2894,9 +2894,9 @@
</span><span class="cx">             RefPtr&lt;CSSValueList&gt; list = CSSValueList::createSpaceSeparated();
</span><span class="cx">             // transition-property default value.
</span><span class="cx">             list-&gt;append(cssValuePool().createIdentifierValue(CSSValueAll));
</span><del>-            list-&gt;append(cssValuePool().createValue(Animation::initialAnimationDuration(), CSSPrimitiveValue::CSS_S));
-            list-&gt;append(createTimingFunctionValue(Animation::initialAnimationTimingFunction().get()));
-            list-&gt;append(cssValuePool().createValue(Animation::initialAnimationDelay(), CSSPrimitiveValue::CSS_S));
</del><ins>+            list-&gt;append(cssValuePool().createValue(Animation::initialDuration(), CSSPrimitiveValue::CSS_S));
+            list-&gt;append(createTimingFunctionValue(Animation::initialTimingFunction().get()));
+            list-&gt;append(cssValuePool().createValue(Animation::initialDelay(), CSSPrimitiveValue::CSS_S));
</ins><span class="cx">             return list.release();
</span><span class="cx">         }
</span><span class="cx">         case CSSPropertyPointerEvents:
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSPropertyNamesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSPropertyNames.in (177820 => 177821)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSPropertyNames.in        2014-12-30 02:59:25 UTC (rev 177820)
+++ trunk/Source/WebCore/css/CSSPropertyNames.in        2014-12-30 04:39:59 UTC (rev 177821)
</span><span class="lines">@@ -72,6 +72,10 @@
</span><span class="cx"> // Should only with used with &quot;VisitedLinkColorSupport&quot;. It indicates that for
</span><span class="cx"> // setting the inherited value, it will not fallback to using the parent's
</span><span class="cx"> // &quot;color&quot; property if the inherited color is invalid.
</span><ins>+//
+// * AnimationProperty:
+// Indicates that this CSS property is an animation / transition property.
+// It must have corresponding methods on the Animation class.
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> // high-priority property names have to be listed first, to simplify the check
</span><span class="lines">@@ -112,14 +116,14 @@
</span><span class="cx"> 
</span><span class="cx"> // The remaining properties are listed in alphabetical order
</span><span class="cx"> animation [LegacyStyleBuilder]
</span><del>-animation-delay [LegacyStyleBuilder]
-animation-direction [LegacyStyleBuilder]
-animation-duration [LegacyStyleBuilder]
-animation-fill-mode [LegacyStyleBuilder]
-animation-iteration-count [LegacyStyleBuilder]
-animation-name [LegacyStyleBuilder]
-animation-play-state [LegacyStyleBuilder]
-animation-timing-function [LegacyStyleBuilder]
</del><ins>+animation-delay [AnimationProperty, TypeName=double, NameForMethods=Delay]
+animation-direction [AnimationProperty, TypeName=Animation::AnimationDirection, NameForMethods=Direction]
+animation-duration [AnimationProperty, TypeName=double, NameForMethods=Duration]
+animation-fill-mode [AnimationProperty, TypeName=unsigned, NameForMethods=FillMode]
+animation-iteration-count [AnimationProperty, TypeName=double, NameForMethods=IterationCount]
+animation-name [AnimationProperty, TypeName=String, NameForMethods=Name]
+animation-play-state [AnimationProperty, TypeName=EAnimPlayState, NameForMethods=PlayState]
+animation-timing-function [AnimationProperty, TypeName=PassRefPtr&lt;TimingFunction&gt;, NameForMethods=TimingFunction]
</ins><span class="cx"> background [LegacyStyleBuilder]
</span><span class="cx"> background-attachment [LegacyStyleBuilder]
</span><span class="cx"> background-blend-mode [LegacyStyleBuilder]
</span><span class="lines">@@ -293,14 +297,14 @@
</span><span class="cx"> alt [LegacyStyleBuilder]
</span><span class="cx"> -webkit-alt = alt
</span><span class="cx"> -webkit-animation [LegacyStyleBuilder]
</span><del>--webkit-animation-delay [LegacyStyleBuilder]
--webkit-animation-direction [LegacyStyleBuilder]
--webkit-animation-duration [LegacyStyleBuilder]
--webkit-animation-fill-mode [LegacyStyleBuilder]
--webkit-animation-iteration-count [LegacyStyleBuilder]
--webkit-animation-name [LegacyStyleBuilder]
--webkit-animation-play-state [LegacyStyleBuilder]
--webkit-animation-timing-function [LegacyStyleBuilder]
</del><ins>+-webkit-animation-delay [AnimationProperty, TypeName=double, NameForMethods=Delay]
+-webkit-animation-direction [AnimationProperty, TypeName=Animation::AnimationDirection, NameForMethods=Direction]
+-webkit-animation-duration [AnimationProperty, TypeName=double, NameForMethods=Duration]
+-webkit-animation-fill-mode [AnimationProperty, TypeName=unsigned, NameForMethods=FillMode]
+-webkit-animation-iteration-count [AnimationProperty, TypeName=double, NameForMethods=IterationCount]
+-webkit-animation-name [AnimationProperty, TypeName=String, NameForMethods=Name]
+-webkit-animation-play-state [AnimationProperty, TypeName=EAnimPlayState, NameForMethods=PlayState]
+-webkit-animation-timing-function [AnimationProperty, TypeName=PassRefPtr&lt;TimingFunction&gt;, NameForMethods=TimingFunction]
</ins><span class="cx"> -webkit-appearance [TypeName=ControlPart]
</span><span class="cx"> -webkit-aspect-ratio [Inherited, Custom=All]
</span><span class="cx"> -webkit-backface-visibility
</span><span class="lines">@@ -536,10 +540,10 @@
</span><span class="cx"> -webkit-transform-origin-z [Converter=ComputedLength&lt;float&gt;]
</span><span class="cx"> -webkit-transform-style [TypeName=ETransformStyle3D, NameForMethods=TransformStyle3D]
</span><span class="cx"> -webkit-transition [LegacyStyleBuilder]
</span><del>--webkit-transition-delay [LegacyStyleBuilder]
--webkit-transition-duration [LegacyStyleBuilder]
--webkit-transition-property [LegacyStyleBuilder]
--webkit-transition-timing-function [LegacyStyleBuilder]
</del><ins>+-webkit-transition-delay [AnimationProperty, TypeName=double, NameForMethods=Delay]
+-webkit-transition-duration [AnimationProperty, TypeName=double, NameForMethods=Duration]
+-webkit-transition-property [AnimationProperty, TypeName=CSSPropertyID, NameForMethods=Property]
+-webkit-transition-timing-function [AnimationProperty, TypeName=PassRefPtr&lt;TimingFunction&gt;, NameForMethods=TimingFunction]
</ins><span class="cx"> -webkit-user-drag
</span><span class="cx"> -webkit-user-modify [Inherited]
</span><span class="cx"> -webkit-user-select [Inherited]
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSToStyleMapcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSToStyleMap.cpp (177820 => 177821)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSToStyleMap.cpp        2014-12-30 02:59:25 UTC (rev 177820)
+++ trunk/Source/WebCore/css/CSSToStyleMap.cpp        2014-12-30 04:39:59 UTC (rev 177821)
</span><span class="lines">@@ -325,23 +325,23 @@
</span><span class="cx">     layer-&gt;setMaskSourceType(type);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CSSToStyleMap::mapAnimationDelay(Animation* animation, CSSValue&amp; value)
</del><ins>+void CSSToStyleMap::mapAnimationDelay(Animation&amp; animation, CSSValue&amp; value)
</ins><span class="cx"> {
</span><span class="cx">     if (value.isInitialValue()) {
</span><del>-        animation-&gt;setDelay(Animation::initialAnimationDelay());
</del><ins>+        animation.setDelay(Animation::initialDelay());
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (!is&lt;CSSPrimitiveValue&gt;(value))
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    animation-&gt;setDelay(downcast&lt;CSSPrimitiveValue&gt;(value).computeTime&lt;double, CSSPrimitiveValue::Seconds&gt;());
</del><ins>+    animation.setDelay(downcast&lt;CSSPrimitiveValue&gt;(value).computeTime&lt;double, CSSPrimitiveValue::Seconds&gt;());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CSSToStyleMap::mapAnimationDirection(Animation* layer, CSSValue&amp; value)
</del><ins>+void CSSToStyleMap::mapAnimationDirection(Animation&amp; layer, CSSValue&amp; value)
</ins><span class="cx"> {
</span><span class="cx">     if (value.isInitialValue()) {
</span><del>-        layer-&gt;setDirection(Animation::initialAnimationDirection());
</del><ins>+        layer.setDirection(Animation::initialDirection());
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -350,39 +350,39 @@
</span><span class="cx"> 
</span><span class="cx">     switch (downcast&lt;CSSPrimitiveValue&gt;(value).getValueID()) {
</span><span class="cx">     case CSSValueNormal:
</span><del>-        layer-&gt;setDirection(Animation::AnimationDirectionNormal);
</del><ins>+        layer.setDirection(Animation::AnimationDirectionNormal);
</ins><span class="cx">         break;
</span><span class="cx">     case CSSValueAlternate:
</span><del>-        layer-&gt;setDirection(Animation::AnimationDirectionAlternate);
</del><ins>+        layer.setDirection(Animation::AnimationDirectionAlternate);
</ins><span class="cx">         break;
</span><span class="cx">     case CSSValueReverse:
</span><del>-        layer-&gt;setDirection(Animation::AnimationDirectionReverse);
</del><ins>+        layer.setDirection(Animation::AnimationDirectionReverse);
</ins><span class="cx">         break;
</span><span class="cx">     case CSSValueAlternateReverse:
</span><del>-        layer-&gt;setDirection(Animation::AnimationDirectionAlternateReverse);
</del><ins>+        layer.setDirection(Animation::AnimationDirectionAlternateReverse);
</ins><span class="cx">         break;
</span><span class="cx">     default:
</span><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CSSToStyleMap::mapAnimationDuration(Animation* animation, CSSValue&amp; value)
</del><ins>+void CSSToStyleMap::mapAnimationDuration(Animation&amp; animation, CSSValue&amp; value)
</ins><span class="cx"> {
</span><span class="cx">     if (value.isInitialValue()) {
</span><del>-        animation-&gt;setDuration(Animation::initialAnimationDuration());
</del><ins>+        animation.setDuration(Animation::initialDuration());
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (!is&lt;CSSPrimitiveValue&gt;(value))
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    animation-&gt;setDuration(downcast&lt;CSSPrimitiveValue&gt;(value).computeTime&lt;double, CSSPrimitiveValue::Seconds&gt;());
</del><ins>+    animation.setDuration(downcast&lt;CSSPrimitiveValue&gt;(value).computeTime&lt;double, CSSPrimitiveValue::Seconds&gt;());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CSSToStyleMap::mapAnimationFillMode(Animation* layer, CSSValue&amp; value)
</del><ins>+void CSSToStyleMap::mapAnimationFillMode(Animation&amp; layer, CSSValue&amp; value)
</ins><span class="cx"> {
</span><span class="cx">     if (value.isInitialValue()) {
</span><del>-        layer-&gt;setFillMode(Animation::initialAnimationFillMode());
</del><ins>+        layer.setFillMode(Animation::initialFillMode());
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -391,26 +391,26 @@
</span><span class="cx"> 
</span><span class="cx">     switch (downcast&lt;CSSPrimitiveValue&gt;(value).getValueID()) {
</span><span class="cx">     case CSSValueNone:
</span><del>-        layer-&gt;setFillMode(AnimationFillModeNone);
</del><ins>+        layer.setFillMode(AnimationFillModeNone);
</ins><span class="cx">         break;
</span><span class="cx">     case CSSValueForwards:
</span><del>-        layer-&gt;setFillMode(AnimationFillModeForwards);
</del><ins>+        layer.setFillMode(AnimationFillModeForwards);
</ins><span class="cx">         break;
</span><span class="cx">     case CSSValueBackwards:
</span><del>-        layer-&gt;setFillMode(AnimationFillModeBackwards);
</del><ins>+        layer.setFillMode(AnimationFillModeBackwards);
</ins><span class="cx">         break;
</span><span class="cx">     case CSSValueBoth:
</span><del>-        layer-&gt;setFillMode(AnimationFillModeBoth);
</del><ins>+        layer.setFillMode(AnimationFillModeBoth);
</ins><span class="cx">         break;
</span><span class="cx">     default:
</span><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CSSToStyleMap::mapAnimationIterationCount(Animation* animation, CSSValue&amp; value)
</del><ins>+void CSSToStyleMap::mapAnimationIterationCount(Animation&amp; animation, CSSValue&amp; value)
</ins><span class="cx"> {
</span><span class="cx">     if (value.isInitialValue()) {
</span><del>-        animation-&gt;setIterationCount(Animation::initialAnimationIterationCount());
</del><ins>+        animation.setIterationCount(Animation::initialIterationCount());
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -419,15 +419,15 @@
</span><span class="cx"> 
</span><span class="cx">     auto&amp; primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(value);
</span><span class="cx">     if (primitiveValue.getValueID() == CSSValueInfinite)
</span><del>-        animation-&gt;setIterationCount(Animation::IterationCountInfinite);
</del><ins>+        animation.setIterationCount(Animation::IterationCountInfinite);
</ins><span class="cx">     else
</span><del>-        animation-&gt;setIterationCount(primitiveValue.getFloatValue());
</del><ins>+        animation.setIterationCount(primitiveValue.getFloatValue());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CSSToStyleMap::mapAnimationName(Animation* layer, CSSValue&amp; value)
</del><ins>+void CSSToStyleMap::mapAnimationName(Animation&amp; layer, CSSValue&amp; value)
</ins><span class="cx"> {
</span><span class="cx">     if (value.isInitialValue()) {
</span><del>-        layer-&gt;setName(Animation::initialAnimationName());
</del><ins>+        layer.setName(Animation::initialName());
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -436,15 +436,15 @@
</span><span class="cx"> 
</span><span class="cx">     auto&amp; primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(value);
</span><span class="cx">     if (primitiveValue.getValueID() == CSSValueNone)
</span><del>-        layer-&gt;setIsNoneAnimation(true);
</del><ins>+        layer.setIsNoneAnimation(true);
</ins><span class="cx">     else
</span><del>-        layer-&gt;setName(primitiveValue.getStringValue());
</del><ins>+        layer.setName(primitiveValue.getStringValue());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CSSToStyleMap::mapAnimationPlayState(Animation* layer, CSSValue&amp; value)
</del><ins>+void CSSToStyleMap::mapAnimationPlayState(Animation&amp; layer, CSSValue&amp; value)
</ins><span class="cx"> {
</span><span class="cx">     if (value.isInitialValue()) {
</span><del>-        layer-&gt;setPlayState(Animation::initialAnimationPlayState());
</del><ins>+        layer.setPlayState(Animation::initialPlayState());
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -452,14 +452,14 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     EAnimPlayState playState = (downcast&lt;CSSPrimitiveValue&gt;(value).getValueID() == CSSValuePaused) ? AnimPlayStatePaused : AnimPlayStatePlaying;
</span><del>-    layer-&gt;setPlayState(playState);
</del><ins>+    layer.setPlayState(playState);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CSSToStyleMap::mapAnimationProperty(Animation* animation, CSSValue&amp; value)
</del><ins>+void CSSToStyleMap::mapAnimationProperty(Animation&amp; animation, CSSValue&amp; value)
</ins><span class="cx"> {
</span><span class="cx">     if (value.isInitialValue()) {
</span><del>-        animation-&gt;setAnimationMode(Animation::AnimateAll);
-        animation-&gt;setProperty(CSSPropertyInvalid);
</del><ins>+        animation.setAnimationMode(Animation::AnimateAll);
+        animation.setProperty(CSSPropertyInvalid);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -468,46 +468,46 @@
</span><span class="cx"> 
</span><span class="cx">     auto&amp; primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(value);
</span><span class="cx">     if (primitiveValue.getValueID() == CSSValueAll) {
</span><del>-        animation-&gt;setAnimationMode(Animation::AnimateAll);
-        animation-&gt;setProperty(CSSPropertyInvalid);
</del><ins>+        animation.setAnimationMode(Animation::AnimateAll);
+        animation.setProperty(CSSPropertyInvalid);
</ins><span class="cx">     } else if (primitiveValue.getValueID() == CSSValueNone) {
</span><del>-        animation-&gt;setAnimationMode(Animation::AnimateNone);
-        animation-&gt;setProperty(CSSPropertyInvalid);
</del><ins>+        animation.setAnimationMode(Animation::AnimateNone);
+        animation.setProperty(CSSPropertyInvalid);
</ins><span class="cx">     } else {
</span><del>-        animation-&gt;setAnimationMode(Animation::AnimateSingleProperty);
-        animation-&gt;setProperty(primitiveValue.getPropertyID());
</del><ins>+        animation.setAnimationMode(Animation::AnimateSingleProperty);
+        animation.setProperty(primitiveValue.getPropertyID());
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CSSToStyleMap::mapAnimationTimingFunction(Animation* animation, CSSValue&amp; value)
</del><ins>+void CSSToStyleMap::mapAnimationTimingFunction(Animation&amp; animation, CSSValue&amp; value)
</ins><span class="cx"> {
</span><span class="cx">     if (value.isInitialValue()) {
</span><del>-        animation-&gt;setTimingFunction(Animation::initialAnimationTimingFunction());
</del><ins>+        animation.setTimingFunction(Animation::initialTimingFunction());
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (is&lt;CSSPrimitiveValue&gt;(value)) {
</span><span class="cx">         switch (downcast&lt;CSSPrimitiveValue&gt;(value).getValueID()) {
</span><span class="cx">         case CSSValueLinear:
</span><del>-            animation-&gt;setTimingFunction(LinearTimingFunction::create());
</del><ins>+            animation.setTimingFunction(LinearTimingFunction::create());
</ins><span class="cx">             break;
</span><span class="cx">         case CSSValueEase:
</span><del>-            animation-&gt;setTimingFunction(CubicBezierTimingFunction::create());
</del><ins>+            animation.setTimingFunction(CubicBezierTimingFunction::create());
</ins><span class="cx">             break;
</span><span class="cx">         case CSSValueEaseIn:
</span><del>-            animation-&gt;setTimingFunction(CubicBezierTimingFunction::create(CubicBezierTimingFunction::EaseIn));
</del><ins>+            animation.setTimingFunction(CubicBezierTimingFunction::create(CubicBezierTimingFunction::EaseIn));
</ins><span class="cx">             break;
</span><span class="cx">         case CSSValueEaseOut:
</span><del>-            animation-&gt;setTimingFunction(CubicBezierTimingFunction::create(CubicBezierTimingFunction::EaseOut));
</del><ins>+            animation.setTimingFunction(CubicBezierTimingFunction::create(CubicBezierTimingFunction::EaseOut));
</ins><span class="cx">             break;
</span><span class="cx">         case CSSValueEaseInOut:
</span><del>-            animation-&gt;setTimingFunction(CubicBezierTimingFunction::create(CubicBezierTimingFunction::EaseInOut));
</del><ins>+            animation.setTimingFunction(CubicBezierTimingFunction::create(CubicBezierTimingFunction::EaseInOut));
</ins><span class="cx">             break;
</span><span class="cx">         case CSSValueStepStart:
</span><del>-            animation-&gt;setTimingFunction(StepsTimingFunction::create(1, true));
</del><ins>+            animation.setTimingFunction(StepsTimingFunction::create(1, true));
</ins><span class="cx">             break;
</span><span class="cx">         case CSSValueStepEnd:
</span><del>-            animation-&gt;setTimingFunction(StepsTimingFunction::create(1, false));
</del><ins>+            animation.setTimingFunction(StepsTimingFunction::create(1, false));
</ins><span class="cx">             break;
</span><span class="cx">         default:
</span><span class="cx">             break;
</span><span class="lines">@@ -517,10 +517,10 @@
</span><span class="cx"> 
</span><span class="cx">     if (is&lt;CSSCubicBezierTimingFunctionValue&gt;(value)) {
</span><span class="cx">         auto&amp; cubicTimingFunction = downcast&lt;CSSCubicBezierTimingFunctionValue&gt;(value);
</span><del>-        animation-&gt;setTimingFunction(CubicBezierTimingFunction::create(cubicTimingFunction.x1(), cubicTimingFunction.y1(), cubicTimingFunction.x2(), cubicTimingFunction.y2()));
</del><ins>+        animation.setTimingFunction(CubicBezierTimingFunction::create(cubicTimingFunction.x1(), cubicTimingFunction.y1(), cubicTimingFunction.x2(), cubicTimingFunction.y2()));
</ins><span class="cx">     } else if (is&lt;CSSStepsTimingFunctionValue&gt;(value)) {
</span><span class="cx">         auto&amp; stepsTimingFunction = downcast&lt;CSSStepsTimingFunctionValue&gt;(value);
</span><del>-        animation-&gt;setTimingFunction(StepsTimingFunction::create(stepsTimingFunction.numberOfSteps(), stepsTimingFunction.stepAtStart()));
</del><ins>+        animation.setTimingFunction(StepsTimingFunction::create(stepsTimingFunction.numberOfSteps(), stepsTimingFunction.stepAtStart()));
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSToStyleMaph"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSToStyleMap.h (177820 => 177821)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSToStyleMap.h        2014-12-30 02:59:25 UTC (rev 177820)
+++ trunk/Source/WebCore/css/CSSToStyleMap.h        2014-12-30 04:39:59 UTC (rev 177821)
</span><span class="lines">@@ -58,15 +58,15 @@
</span><span class="cx">     void mapFillYPosition(CSSPropertyID, FillLayer*, CSSValue*);
</span><span class="cx">     void mapFillMaskSourceType(CSSPropertyID, FillLayer*, CSSValue*);
</span><span class="cx"> 
</span><del>-    void mapAnimationDelay(Animation*, CSSValue&amp;);
-    void mapAnimationDirection(Animation*, CSSValue&amp;);
-    void mapAnimationDuration(Animation*, CSSValue&amp;);
-    void mapAnimationFillMode(Animation*, CSSValue&amp;);
-    void mapAnimationIterationCount(Animation*, CSSValue&amp;);
-    void mapAnimationName(Animation*, CSSValue&amp;);
-    void mapAnimationPlayState(Animation*, CSSValue&amp;);
-    void mapAnimationProperty(Animation*, CSSValue&amp;);
-    void mapAnimationTimingFunction(Animation*, CSSValue&amp;);
</del><ins>+    void mapAnimationDelay(Animation&amp;, CSSValue&amp;);
+    void mapAnimationDirection(Animation&amp;, CSSValue&amp;);
+    void mapAnimationDuration(Animation&amp;, CSSValue&amp;);
+    void mapAnimationFillMode(Animation&amp;, CSSValue&amp;);
+    void mapAnimationIterationCount(Animation&amp;, CSSValue&amp;);
+    void mapAnimationName(Animation&amp;, CSSValue&amp;);
+    void mapAnimationPlayState(Animation&amp;, CSSValue&amp;);
+    void mapAnimationProperty(Animation&amp;, CSSValue&amp;);
+    void mapAnimationTimingFunction(Animation&amp;, CSSValue&amp;);
</ins><span class="cx"> 
</span><span class="cx">     void mapNinePieceImage(CSSPropertyID, CSSValue*, NinePieceImage&amp;);
</span><span class="cx">     void mapNinePieceImageSlice(CSSValue&amp;, NinePieceImage&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCorecssDeprecatedStyleBuildercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/DeprecatedStyleBuilder.cpp (177820 => 177821)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/DeprecatedStyleBuilder.cpp        2014-12-30 02:59:25 UTC (rev 177820)
+++ trunk/Source/WebCore/css/DeprecatedStyleBuilder.cpp        2014-12-30 04:39:59 UTC (rev 177821)
</span><span class="lines">@@ -393,82 +393,6 @@
</span><span class="cx">     }
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-template &lt;typename T,
-          T (Animation::*getterFunction)() const,
-          void (Animation::*setterFunction)(T),
-          bool (Animation::*testFunction)() const,
-          void (Animation::*clearFunction)(),
-          T (*initialFunction)(),
-          void (CSSToStyleMap::*mapFunction)(Animation*, CSSValue&amp;),
-          AnimationList* (RenderStyle::*animationGetterFunction)(),
-          const AnimationList* (RenderStyle::*immutableAnimationGetterFunction)() const&gt;
-class ApplyPropertyAnimation {
-public:
-    static void setValue(Animation&amp; animation, T value) { (animation.*setterFunction)(value); }
-    static T value(const Animation&amp; animation) { return (animation.*getterFunction)(); }
-    static bool test(const Animation&amp; animation) { return (animation.*testFunction)(); }
-    static void clear(Animation&amp; animation) { (animation.*clearFunction)(); }
-    static T initial() { return (*initialFunction)(); }
-    static void map(StyleResolver* styleResolver, Animation&amp; animation, CSSValue&amp; value) { (styleResolver-&gt;styleMap()-&gt;*mapFunction)(&amp;animation, value); }
-    static AnimationList* accessAnimations(RenderStyle* style) { return (style-&gt;*animationGetterFunction)(); }
-    static const AnimationList* animations(RenderStyle* style) { return (style-&gt;*immutableAnimationGetterFunction)(); }
-
-    static void applyInheritValue(CSSPropertyID, StyleResolver* styleResolver)
-    {
-        AnimationList* list = accessAnimations(styleResolver-&gt;style());
-        const AnimationList* parentList = animations(styleResolver-&gt;parentStyle());
-        size_t i = 0, parentSize = parentList ? parentList-&gt;size() : 0;
-        for ( ; i &lt; parentSize &amp;&amp; test(parentList-&gt;animation(i)); ++i) {
-            if (list-&gt;size() &lt;= i)
-                list-&gt;append(Animation::create());
-            setValue(list-&gt;animation(i), value(parentList-&gt;animation(i)));
-            list-&gt;animation(i).setAnimationMode(parentList-&gt;animation(i).animationMode());
-        }
-
-        /* Reset any remaining animations to not have the property set. */
-        for ( ; i &lt; list-&gt;size(); ++i)
-            clear(list-&gt;animation(i));
-    }
-
-    static void applyInitialValue(CSSPropertyID propertyID, StyleResolver* styleResolver)
-    {
-        AnimationList* list = accessAnimations(styleResolver-&gt;style());
-        if (list-&gt;isEmpty())
-            list-&gt;append(Animation::create());
-        setValue(list-&gt;animation(0), initial());
-        if (propertyID == CSSPropertyWebkitTransitionProperty)
-            list-&gt;animation(0).setAnimationMode(Animation::AnimateAll);
-        for (size_t i = 1; i &lt; list-&gt;size(); ++i)
-            clear(list-&gt;animation(i));
-    }
-
-    static void applyValue(CSSPropertyID, StyleResolver* styleResolver, CSSValue* value)
-    {
-        AnimationList* list = accessAnimations(styleResolver-&gt;style());
-        size_t childIndex = 0;
-        if (is&lt;CSSValueList&gt;(*value)) {
-            /* Walk each value and put it into an animation, creating new animations as needed. */
-            for (auto&amp; currentValue : downcast&lt;CSSValueList&gt;(*value)) {
-                if (childIndex &lt;= list-&gt;size())
-                    list-&gt;append(Animation::create());
-                map(styleResolver, list-&gt;animation(childIndex), currentValue);
-                ++childIndex;
-            }
-        } else {
-            if (list-&gt;isEmpty())
-                list-&gt;append(Animation::create());
-            map(styleResolver, list-&gt;animation(childIndex), *value);
-            childIndex = 1;
-        }
-        for ( ; childIndex &lt; list-&gt;size(); ++childIndex) {
-            /* Reset all remaining animations to not have the property set. */
-            clear(list-&gt;animation(childIndex));
-        }
-    }
-
-    static PropertyHandler createHandler() { return PropertyHandler(&amp;applyInheritValue, &amp;applyInitialValue, &amp;applyValue); }
-};
-
</del><span class="cx"> const DeprecatedStyleBuilder&amp; DeprecatedStyleBuilder::sharedStyleBuilder()
</span><span class="cx"> {
</span><span class="cx">     static NeverDestroyed&lt;DeprecatedStyleBuilder&gt; styleBuilderInstance;
</span><span class="lines">@@ -496,23 +420,6 @@
</span><span class="cx">     setPropertyHandler(CSSPropertyFontVariant, ApplyPropertyFont&lt;FontSmallCaps, &amp;FontDescription::smallCaps, &amp;FontDescription::setSmallCaps, FontSmallCapsOff&gt;::createHandler());
</span><span class="cx">     setPropertyHandler(CSSPropertyTextRendering, ApplyPropertyFont&lt;TextRenderingMode, &amp;FontDescription::textRenderingMode, &amp;FontDescription::setTextRenderingMode, AutoTextRendering&gt;::createHandler());
</span><span class="cx"> 
</span><del>-    setPropertyHandler(CSSPropertyAnimationDelay, ApplyPropertyAnimation&lt;double, &amp;Animation::delay, &amp;Animation::setDelay, &amp;Animation::isDelaySet, &amp;Animation::clearDelay, &amp;Animation::initialAnimationDelay, &amp;CSSToStyleMap::mapAnimationDelay, &amp;RenderStyle::accessAnimations, &amp;RenderStyle::animations&gt;::createHandler());
-    setPropertyHandler(CSSPropertyAnimationDirection, ApplyPropertyAnimation&lt;Animation::AnimationDirection, &amp;Animation::direction, &amp;Animation::setDirection, &amp;Animation::isDirectionSet, &amp;Animation::clearDirection, &amp;Animation::initialAnimationDirection, &amp;CSSToStyleMap::mapAnimationDirection, &amp;RenderStyle::accessAnimations, &amp;RenderStyle::animations&gt;::createHandler());
-    setPropertyHandler(CSSPropertyAnimationDuration, ApplyPropertyAnimation&lt;double, &amp;Animation::duration, &amp;Animation::setDuration, &amp;Animation::isDurationSet, &amp;Animation::clearDuration, &amp;Animation::initialAnimationDuration, &amp;CSSToStyleMap::mapAnimationDuration, &amp;RenderStyle::accessAnimations, &amp;RenderStyle::animations&gt;::createHandler());
-    setPropertyHandler(CSSPropertyAnimationFillMode, ApplyPropertyAnimation&lt;unsigned, &amp;Animation::fillMode, &amp;Animation::setFillMode, &amp;Animation::isFillModeSet, &amp;Animation::clearFillMode, &amp;Animation::initialAnimationFillMode, &amp;CSSToStyleMap::mapAnimationFillMode, &amp;RenderStyle::accessAnimations, &amp;RenderStyle::animations&gt;::createHandler());
-    setPropertyHandler(CSSPropertyAnimationIterationCount, ApplyPropertyAnimation&lt;double, &amp;Animation::iterationCount, &amp;Animation::setIterationCount, &amp;Animation::isIterationCountSet, &amp;Animation::clearIterationCount, &amp;Animation::initialAnimationIterationCount, &amp;CSSToStyleMap::mapAnimationIterationCount, &amp;RenderStyle::accessAnimations, &amp;RenderStyle::animations&gt;::createHandler());
-    setPropertyHandler(CSSPropertyAnimationName, ApplyPropertyAnimation&lt;const String&amp;, &amp;Animation::name, &amp;Animation::setName, &amp;Animation::isNameSet, &amp;Animation::clearName, &amp;Animation::initialAnimationName, &amp;CSSToStyleMap::mapAnimationName, &amp;RenderStyle::accessAnimations, &amp;RenderStyle::animations&gt;::createHandler());
-    setPropertyHandler(CSSPropertyAnimationPlayState, ApplyPropertyAnimation&lt;EAnimPlayState, &amp;Animation::playState, &amp;Animation::setPlayState, &amp;Animation::isPlayStateSet, &amp;Animation::clearPlayState, &amp;Animation::initialAnimationPlayState, &amp;CSSToStyleMap::mapAnimationPlayState, &amp;RenderStyle::accessAnimations, &amp;RenderStyle::animations&gt;::createHandler());
-    setPropertyHandler(CSSPropertyAnimationTimingFunction, ApplyPropertyAnimation&lt;const PassRefPtr&lt;TimingFunction&gt;, &amp;Animation::timingFunction, &amp;Animation::setTimingFunction, &amp;Animation::isTimingFunctionSet, &amp;Animation::clearTimingFunction, &amp;Animation::initialAnimationTimingFunction, &amp;CSSToStyleMap::mapAnimationTimingFunction, &amp;RenderStyle::accessAnimations, &amp;RenderStyle::animations&gt;::createHandler());
-
-    setPropertyHandler(CSSPropertyWebkitAnimationDelay, ApplyPropertyAnimation&lt;double, &amp;Animation::delay, &amp;Animation::setDelay, &amp;Animation::isDelaySet, &amp;Animation::clearDelay, &amp;Animation::initialAnimationDelay, &amp;CSSToStyleMap::mapAnimationDelay, &amp;RenderStyle::accessAnimations, &amp;RenderStyle::animations&gt;::createHandler());
-    setPropertyHandler(CSSPropertyWebkitAnimationDirection, ApplyPropertyAnimation&lt;Animation::AnimationDirection, &amp;Animation::direction, &amp;Animation::setDirection, &amp;Animation::isDirectionSet, &amp;Animation::clearDirection, &amp;Animation::initialAnimationDirection, &amp;CSSToStyleMap::mapAnimationDirection, &amp;RenderStyle::accessAnimations, &amp;RenderStyle::animations&gt;::createHandler());
-    setPropertyHandler(CSSPropertyWebkitAnimationDuration, ApplyPropertyAnimation&lt;double, &amp;Animation::duration, &amp;Animation::setDuration, &amp;Animation::isDurationSet, &amp;Animation::clearDuration, &amp;Animation::initialAnimationDuration, &amp;CSSToStyleMap::mapAnimationDuration, &amp;RenderStyle::accessAnimations, &amp;RenderStyle::animations&gt;::createHandler());
-    setPropertyHandler(CSSPropertyWebkitAnimationFillMode, ApplyPropertyAnimation&lt;unsigned, &amp;Animation::fillMode, &amp;Animation::setFillMode, &amp;Animation::isFillModeSet, &amp;Animation::clearFillMode, &amp;Animation::initialAnimationFillMode, &amp;CSSToStyleMap::mapAnimationFillMode, &amp;RenderStyle::accessAnimations, &amp;RenderStyle::animations&gt;::createHandler());
-    setPropertyHandler(CSSPropertyWebkitAnimationIterationCount, ApplyPropertyAnimation&lt;double, &amp;Animation::iterationCount, &amp;Animation::setIterationCount, &amp;Animation::isIterationCountSet, &amp;Animation::clearIterationCount, &amp;Animation::initialAnimationIterationCount, &amp;CSSToStyleMap::mapAnimationIterationCount, &amp;RenderStyle::accessAnimations, &amp;RenderStyle::animations&gt;::createHandler());
-    setPropertyHandler(CSSPropertyWebkitAnimationName, ApplyPropertyAnimation&lt;const String&amp;, &amp;Animation::name, &amp;Animation::setName, &amp;Animation::isNameSet, &amp;Animation::clearName, &amp;Animation::initialAnimationName, &amp;CSSToStyleMap::mapAnimationName, &amp;RenderStyle::accessAnimations, &amp;RenderStyle::animations&gt;::createHandler());
-    setPropertyHandler(CSSPropertyWebkitAnimationPlayState, ApplyPropertyAnimation&lt;EAnimPlayState, &amp;Animation::playState, &amp;Animation::setPlayState, &amp;Animation::isPlayStateSet, &amp;Animation::clearPlayState, &amp;Animation::initialAnimationPlayState, &amp;CSSToStyleMap::mapAnimationPlayState, &amp;RenderStyle::accessAnimations, &amp;RenderStyle::animations&gt;::createHandler());
-    setPropertyHandler(CSSPropertyWebkitAnimationTimingFunction, ApplyPropertyAnimation&lt;const PassRefPtr&lt;TimingFunction&gt;, &amp;Animation::timingFunction, &amp;Animation::setTimingFunction, &amp;Animation::isTimingFunctionSet, &amp;Animation::clearTimingFunction, &amp;Animation::initialAnimationTimingFunction, &amp;CSSToStyleMap::mapAnimationTimingFunction, &amp;RenderStyle::accessAnimations, &amp;RenderStyle::animations&gt;::createHandler());
</del><span class="cx">     setPropertyHandler(CSSPropertyWebkitBackgroundClip, CSSPropertyBackgroundClip);
</span><span class="cx">     setPropertyHandler(CSSPropertyWebkitBackgroundComposite, ApplyPropertyFillLayer&lt;CompositeOperator, CSSPropertyWebkitBackgroundComposite, BackgroundFillLayer, &amp;RenderStyle::accessBackgroundLayers, &amp;RenderStyle::backgroundLayers, &amp;FillLayer::isCompositeSet, &amp;FillLayer::composite, &amp;FillLayer::setComposite, &amp;FillLayer::clearComposite, &amp;FillLayer::initialFillComposite, &amp;CSSToStyleMap::mapFillComposite&gt;::createHandler());
</span><span class="cx">     setPropertyHandler(CSSPropertyWebkitBackgroundOrigin, CSSPropertyBackgroundOrigin);
</span><span class="lines">@@ -529,10 +436,6 @@
</span><span class="cx">     setPropertyHandler(CSSPropertyWebkitMaskRepeatY, ApplyPropertyFillLayer&lt;EFillRepeat, CSSPropertyWebkitMaskRepeatY, MaskFillLayer, &amp;RenderStyle::accessMaskLayers, &amp;RenderStyle::maskLayers, &amp;FillLayer::isRepeatYSet, &amp;FillLayer::repeatY, &amp;FillLayer::setRepeatY, &amp;FillLayer::clearRepeatY, &amp;FillLayer::initialFillRepeatY, &amp;CSSToStyleMap::mapFillRepeatY&gt;::createHandler());
</span><span class="cx">     setPropertyHandler(CSSPropertyWebkitMaskSize, ApplyPropertyFillLayer&lt;FillSize, CSSPropertyWebkitMaskSize, MaskFillLayer, &amp;RenderStyle::accessMaskLayers, &amp;RenderStyle::maskLayers, &amp;FillLayer::isSizeSet, &amp;FillLayer::size, &amp;FillLayer::setSize, &amp;FillLayer::clearSize, &amp;FillLayer::initialFillSize, &amp;CSSToStyleMap::mapFillSize&gt;::createHandler());
</span><span class="cx">     setPropertyHandler(CSSPropertyWebkitMaskSourceType, ApplyPropertyFillLayer&lt;EMaskSourceType, CSSPropertyWebkitMaskSourceType, MaskFillLayer, &amp;RenderStyle::accessMaskLayers, &amp;RenderStyle::maskLayers, &amp;FillLayer::isMaskSourceTypeSet, &amp;FillLayer::maskSourceType, &amp;FillLayer::setMaskSourceType, &amp;FillLayer::clearMaskSourceType, &amp;FillLayer::initialMaskSourceType, &amp;CSSToStyleMap::mapFillMaskSourceType&gt;::createHandler());
</span><del>-    setPropertyHandler(CSSPropertyWebkitTransitionDelay, ApplyPropertyAnimation&lt;double, &amp;Animation::delay, &amp;Animation::setDelay, &amp;Animation::isDelaySet, &amp;Animation::clearDelay, &amp;Animation::initialAnimationDelay, &amp;CSSToStyleMap::mapAnimationDelay, &amp;RenderStyle::accessTransitions, &amp;RenderStyle::transitions&gt;::createHandler());
-    setPropertyHandler(CSSPropertyWebkitTransitionDuration, ApplyPropertyAnimation&lt;double, &amp;Animation::duration, &amp;Animation::setDuration, &amp;Animation::isDurationSet, &amp;Animation::clearDuration, &amp;Animation::initialAnimationDuration, &amp;CSSToStyleMap::mapAnimationDuration, &amp;RenderStyle::accessTransitions, &amp;RenderStyle::transitions&gt;::createHandler());
-    setPropertyHandler(CSSPropertyWebkitTransitionProperty, ApplyPropertyAnimation&lt;CSSPropertyID, &amp;Animation::property, &amp;Animation::setProperty, &amp;Animation::isPropertySet, &amp;Animation::clearProperty, &amp;Animation::initialAnimationProperty, &amp;CSSToStyleMap::mapAnimationProperty, &amp;RenderStyle::accessTransitions, &amp;RenderStyle::transitions&gt;::createHandler());
-    setPropertyHandler(CSSPropertyWebkitTransitionTimingFunction, ApplyPropertyAnimation&lt;const PassRefPtr&lt;TimingFunction&gt;, &amp;Animation::timingFunction, &amp;Animation::setTimingFunction, &amp;Animation::isTimingFunctionSet, &amp;Animation::clearTimingFunction, &amp;Animation::initialAnimationTimingFunction, &amp;CSSToStyleMap::mapAnimationTimingFunction, &amp;RenderStyle::accessTransitions, &amp;RenderStyle::transitions&gt;::createHandler());
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorecssmakeproppl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/makeprop.pl (177820 => 177821)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/makeprop.pl        2014-12-30 02:59:25 UTC (rev 177820)
+++ trunk/Source/WebCore/css/makeprop.pl        2014-12-30 04:39:59 UTC (rev 177821)
</span><span class="lines">@@ -43,7 +43,8 @@
</span><span class="cx"> my %nameIsInherited;
</span><span class="cx"> my %propertiesWithStyleBuilderOptions;
</span><span class="cx"> my %styleBuilderOptions = (
</span><del>-  AutoFunctions =&gt; 1, # Defined in Source/WebCore/css/StyleBuilderConverter.h
</del><ins>+  AnimationProperty =&gt; 1, # Defined in Source/WebCore/css/StyleBuilderConverter.h
+  AutoFunctions =&gt; 1,
</ins><span class="cx">   Converter =&gt; 1,
</span><span class="cx">   Custom =&gt; 1,
</span><span class="cx">   Getter =&gt; 1,
</span><span class="lines">@@ -372,6 +373,40 @@
</span><span class="cx">   return $renderStyle . &quot;-&gt;setVisitedLink&quot; . getNameForMethods($name);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+sub getAnimationClearMethod {
+  my $name = shift;
+
+  return &quot;clear&quot; . getNameForMethods($name);
+}
+
+sub getEnsureAnimationsOrTransitionsMethod {
+  my $name = shift;
+
+  return &quot;ensureAnimations&quot; if $name =~ /animation-/;
+  return &quot;ensureTransitions&quot; if $name =~ /transition-/;
+  die &quot;Unrecognized animation property name.&quot;;
+}
+
+sub getAnimationsOrTransitionsMethod {
+  my $name = shift;
+
+  return &quot;animations&quot; if $name =~ /animation-/;
+  return &quot;transitions&quot; if $name =~ /transition-/;
+  die &quot;Unrecognized animation property name.&quot;;
+}
+
+sub getAnimationTestMethod {
+  my $name = shift;
+
+  return &quot;is&quot; . getNameForMethods($name) . &quot;Set&quot;;
+}
+
+sub getAnimationMapfunction {
+  my $name = shift;
+
+  return &quot;mapAnimation&quot; . getNameForMethods($name);
+}
+
</ins><span class="cx"> foreach my $name (@names) {
</span><span class="cx">   # Skip properties still using the legacy style builder.
</span><span class="cx">   next unless exists($propertiesWithStyleBuilderOptions{$name});
</span><span class="lines">@@ -450,6 +485,79 @@
</span><span class="cx">   return $code;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+sub generateAnimationPropertyInitialValueSetter {
+  my $name = shift;
+  my $indent = shift;
+
+  my $setterContent = &quot;&quot;;
+  $setterContent .= $indent . &quot;AnimationList&amp; list = styleResolver.style()-&gt;&quot; . getEnsureAnimationsOrTransitionsMethod($name) . &quot;();\n&quot;;
+  $setterContent .= $indent . &quot;if (list.isEmpty())\n&quot;;
+  $setterContent .= $indent . &quot;    list.append(Animation::create());\n&quot;;
+  my $setter = $propertiesWithStyleBuilderOptions{$name}{&quot;Setter&quot;};
+  my $initial = $propertiesWithStyleBuilderOptions{$name}{&quot;Initial&quot;};
+  $setterContent .= $indent . &quot;list.animation(0).&quot; . $setter . &quot;(Animation::&quot; . $initial . &quot;());\n&quot;;
+  if ($name eq &quot;-webkit-transition-property&quot;) {
+    $setterContent .= $indent . &quot;list.animation(0).setAnimationMode(Animation::AnimateAll);\n&quot;;
+  }
+  $setterContent .= $indent . &quot;for (size_t i = 1; i &lt; list.size(); ++i)\n&quot;;
+  $setterContent .= $indent . &quot;    list.animation(i).&quot; . getAnimationClearMethod($name) . &quot;();\n&quot;;
+
+  return $setterContent;
+}
+
+sub generateAnimationPropertyInheritValueSetter {
+  my $name = shift;
+  my $indent = shift;
+
+  my $setterContent = &quot;&quot;;
+  $setterContent .= $indent . &quot;AnimationList&amp; list = styleResolver.style()-&gt;&quot; . getEnsureAnimationsOrTransitionsMethod($name) . &quot;();\n&quot;;
+  $setterContent .= $indent . &quot;const AnimationList* parentList = styleResolver.parentStyle()-&gt;&quot; . getAnimationsOrTransitionsMethod($name) . &quot;();\n&quot;;
+  $setterContent .= $indent . &quot;size_t i = 0, parentSize = parentList ? parentList-&gt;size() : 0;\n&quot;;
+  $setterContent .= $indent . &quot;for ( ; i &lt; parentSize &amp;&amp; parentList-&gt;animation(i).&quot; . getAnimationTestMethod($name) . &quot;(); ++i) {\n&quot;;
+  $setterContent .= $indent . &quot;    if (list.size() &lt;= i)\n&quot;;
+  $setterContent .= $indent . &quot;        list.append(Animation::create());\n&quot;;
+  my $getter = $propertiesWithStyleBuilderOptions{$name}{&quot;Getter&quot;};
+  my $setter = $propertiesWithStyleBuilderOptions{$name}{&quot;Setter&quot;};
+  $setterContent .= $indent . &quot;    list.animation(i).&quot; . $setter . &quot;(parentList-&gt;animation(i).&quot; . $getter . &quot;());\n&quot;;
+  $setterContent .= $indent . &quot;    list.animation(i).setAnimationMode(parentList-&gt;animation(i).animationMode());\n&quot;;
+  $setterContent .= $indent . &quot;}\n&quot;;
+  $setterContent .= &quot;\n&quot;;
+  $setterContent .= $indent . &quot;/* Reset any remaining animations to not have the property set. */\n&quot;;
+  $setterContent .= $indent . &quot;for ( ; i &lt; list.size(); ++i)\n&quot;;
+  $setterContent .= $indent . &quot;    list.animation(i).&quot; . getAnimationClearMethod($name) . &quot;();\n&quot;;
+
+  return $setterContent;
+}
+
+sub generateAnimationPropertyValueSetter {
+  my $name = shift;
+  my $indent = shift;
+
+  my $setterContent = &quot;&quot;;
+  $setterContent .= $indent . &quot;AnimationList&amp; list = styleResolver.style()-&gt;&quot; . getEnsureAnimationsOrTransitionsMethod($name) . &quot;();\n&quot;;
+  $setterContent .= $indent . &quot;size_t childIndex = 0;\n&quot;;
+  $setterContent .= $indent . &quot;if (is&lt;CSSValueList&gt;(value)) {\n&quot;;
+  $setterContent .= $indent . &quot;    /* Walk each value and put it into an animation, creating new animations as needed. */\n&quot;;
+  $setterContent .= $indent . &quot;    for (auto&amp; currentValue : downcast&lt;CSSValueList&gt;(value)) {\n&quot;;
+  $setterContent .= $indent . &quot;        if (childIndex &lt;= list.size())\n&quot;;
+  $setterContent .= $indent . &quot;            list.append(Animation::create());\n&quot;;
+  $setterContent .= $indent . &quot;        styleResolver.styleMap()-&gt;&quot; . getAnimationMapfunction($name) . &quot;(list.animation(childIndex), currentValue);\n&quot;;
+  $setterContent .= $indent . &quot;        ++childIndex;\n&quot;;
+  $setterContent .= $indent . &quot;    }\n&quot;;
+  $setterContent .= $indent . &quot;} else {\n&quot;;
+  $setterContent .= $indent . &quot;    if (list.isEmpty())\n&quot;;
+  $setterContent .= $indent . &quot;        list.append(Animation::create());\n&quot;;
+  $setterContent .= $indent . &quot;    styleResolver.styleMap()-&gt;&quot; . getAnimationMapfunction($name) . &quot;(list.animation(childIndex), value);\n&quot;;
+  $setterContent .= $indent . &quot;    childIndex = 1;\n&quot;;
+  $setterContent .= $indent . &quot;}\n&quot;;
+  $setterContent .= $indent . &quot;for ( ; childIndex &lt; list.size(); ++childIndex) {\n&quot;;
+  $setterContent .= $indent . &quot;    /* Reset all remaining animations to not have the property set. */\n&quot;;
+  $setterContent .= $indent . &quot;    list.animation(childIndex).&quot; . getAnimationClearMethod($name) . &quot;();\n&quot;;
+  $setterContent .= $indent . &quot;}\n&quot;;
+
+  return $setterContent;
+}
+
</ins><span class="cx"> sub generateInitialValueSetter {
</span><span class="cx">   my $name = shift;
</span><span class="cx">   my $indent = shift;
</span><span class="lines">@@ -463,6 +571,8 @@
</span><span class="cx">   } elsif (exists $propertiesWithStyleBuilderOptions{$name}{&quot;VisitedLinkColorSupport&quot;}) {
</span><span class="cx">       my $initialColor = &quot;RenderStyle::&quot; . $propertiesWithStyleBuilderOptions{$name}{&quot;Initial&quot;} . &quot;()&quot;;
</span><span class="cx">       $setterContent .= generateColorValueSetter($name, $initialColor, $indent . &quot;    &quot;);
</span><ins>+  } elsif (exists $propertiesWithStyleBuilderOptions{$name}{&quot;AnimationProperty&quot;}) {
+    $setterContent .= generateAnimationPropertyInitialValueSetter($name, $indent . &quot;    &quot;);
</ins><span class="cx">   } else {
</span><span class="cx">     my $setValue = $style . &quot;-&gt;&quot; . $propertiesWithStyleBuilderOptions{$name}{&quot;Setter&quot;};
</span><span class="cx">     $setterContent .= $indent . &quot;    &quot; . $setValue . &quot;(RenderStyle::&quot; . $propertiesWithStyleBuilderOptions{$name}{&quot;Initial&quot;} . &quot;());\n&quot;;
</span><span class="lines">@@ -496,6 +606,9 @@
</span><span class="cx">     }
</span><span class="cx">     $setterContent .= generateColorValueSetter($name, &quot;color&quot;, $indent . &quot;    &quot;);
</span><span class="cx">     $didCallSetValue = 1;
</span><ins>+  } elsif (exists $propertiesWithStyleBuilderOptions{$name}{&quot;AnimationProperty&quot;}) {
+    $setterContent .= generateAnimationPropertyInheritValueSetter($name, $indent . &quot;    &quot;);
+    $didCallSetValue = 1;
</ins><span class="cx">   }
</span><span class="cx">   if (!$didCallSetValue) {
</span><span class="cx">     my $inheritedValue = $parentStyle . &quot;-&gt;&quot; .  $propertiesWithStyleBuilderOptions{$name}{&quot;Getter&quot;} . &quot;()&quot;;
</span><span class="lines">@@ -535,6 +648,9 @@
</span><span class="cx">       }
</span><span class="cx">       $setterContent .= generateColorValueSetter($name, &quot;primitiveValue&quot;, $indent . &quot;    &quot;, VALUE_IS_PRIMITIVE);
</span><span class="cx">       $didCallSetValue = 1;
</span><ins>+  } elsif (exists $propertiesWithStyleBuilderOptions{$name}{&quot;AnimationProperty&quot;}) {
+      $setterContent .= generateAnimationPropertyValueSetter($name, $indent . &quot;    &quot;);
+      $didCallSetValue = 1;
</ins><span class="cx">   }
</span><span class="cx">   if (!$didCallSetValue) {
</span><span class="cx">     my $setValue = $style . &quot;-&gt;&quot; . $propertiesWithStyleBuilderOptions{$name}{&quot;Setter&quot;};
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformanimationAnimationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/animation/Animation.cpp (177820 => 177821)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/animation/Animation.cpp        2014-12-30 02:59:25 UTC (rev 177820)
+++ trunk/Source/WebCore/platform/animation/Animation.cpp        2014-12-30 04:39:59 UTC (rev 177821)
</span><span class="lines">@@ -25,16 +25,16 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> Animation::Animation()
</span><del>-    : m_name(initialAnimationName())
</del><ins>+    : m_name(initialName())
</ins><span class="cx">     , m_property(CSSPropertyInvalid)
</span><span class="cx">     , m_mode(AnimateAll)
</span><del>-    , m_iterationCount(initialAnimationIterationCount())
-    , m_delay(initialAnimationDelay())
-    , m_duration(initialAnimationDuration())
-    , m_timingFunction(initialAnimationTimingFunction())
-    , m_direction(initialAnimationDirection())
-    , m_fillMode(initialAnimationFillMode())
-    , m_playState(initialAnimationPlayState())
</del><ins>+    , m_iterationCount(initialIterationCount())
+    , m_delay(initialDelay())
+    , m_duration(initialDuration())
+    , m_timingFunction(initialTimingFunction())
+    , m_direction(initialDirection())
+    , m_fillMode(initialFillMode())
+    , m_playState(initialPlayState())
</ins><span class="cx">     , m_delaySet(false)
</span><span class="cx">     , m_directionSet(false)
</span><span class="cx">     , m_durationSet(false)
</span><span class="lines">@@ -134,7 +134,7 @@
</span><span class="cx">     return !matchPlayStates || (m_playState == o-&gt;m_playState &amp;&amp; m_playStateSet == o-&gt;m_playStateSet);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-const String&amp; Animation::initialAnimationName()
</del><ins>+const String&amp; Animation::initialName()
</ins><span class="cx"> {
</span><span class="cx">     DEPRECATED_DEFINE_STATIC_LOCAL(String, initialValue, (ASCIILiteral(&quot;none&quot;)));
</span><span class="cx">     return initialValue;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformanimationAnimationh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/animation/Animation.h (177820 => 177821)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/animation/Animation.h        2014-12-30 02:59:25 UTC (rev 177820)
+++ trunk/Source/WebCore/platform/animation/Animation.h        2014-12-30 04:39:59 UTC (rev 177821)
</span><span class="lines">@@ -175,15 +175,15 @@
</span><span class="cx">     bool m_isNone            : 1;
</span><span class="cx"> 
</span><span class="cx"> public:
</span><del>-    static double initialAnimationDelay() { return 0; }
-    static AnimationDirection initialAnimationDirection() { return AnimationDirectionNormal; }
-    static double initialAnimationDuration() { return 0; }
-    static unsigned initialAnimationFillMode() { return AnimationFillModeNone; }
-    static double initialAnimationIterationCount() { return 1.0; }
-    static const String&amp; initialAnimationName();
-    static EAnimPlayState initialAnimationPlayState() { return AnimPlayStatePlaying; }
-    static CSSPropertyID initialAnimationProperty() { return CSSPropertyInvalid; }
-    static const PassRefPtr&lt;TimingFunction&gt; initialAnimationTimingFunction() { return CubicBezierTimingFunction::create(); }
</del><ins>+    static double initialDelay() { return 0; }
+    static AnimationDirection initialDirection() { return AnimationDirectionNormal; }
+    static double initialDuration() { return 0; }
+    static unsigned initialFillMode() { return AnimationFillModeNone; }
+    static double initialIterationCount() { return 1.0; }
+    static const String&amp; initialName();
+    static EAnimPlayState initialPlayState() { return AnimPlayStatePlaying; }
+    static CSSPropertyID initialProperty() { return CSSPropertyInvalid; }
+    static const PassRefPtr&lt;TimingFunction&gt; initialTimingFunction() { return CubicBezierTimingFunction::create(); }
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleRenderStylecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/RenderStyle.cpp (177820 => 177821)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/RenderStyle.cpp        2014-12-30 02:59:25 UTC (rev 177820)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.cpp        2014-12-30 04:39:59 UTC (rev 177821)
</span><span class="lines">@@ -1313,18 +1313,18 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-AnimationList* RenderStyle::accessAnimations()
</del><ins>+AnimationList&amp; RenderStyle::ensureAnimations()
</ins><span class="cx"> {
</span><span class="cx">     if (!rareNonInheritedData.access()-&gt;m_animations)
</span><span class="cx">         rareNonInheritedData.access()-&gt;m_animations = std::make_unique&lt;AnimationList&gt;();
</span><del>-    return rareNonInheritedData-&gt;m_animations.get();
</del><ins>+    return *rareNonInheritedData-&gt;m_animations;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-AnimationList* RenderStyle::accessTransitions()
</del><ins>+AnimationList&amp; RenderStyle::ensureTransitions()
</ins><span class="cx"> {
</span><span class="cx">     if (!rareNonInheritedData.access()-&gt;m_transitions)
</span><span class="cx">         rareNonInheritedData.access()-&gt;m_transitions = std::make_unique&lt;AnimationList&gt;();
</span><del>-    return rareNonInheritedData-&gt;m_transitions.get();
</del><ins>+    return *rareNonInheritedData-&gt;m_transitions;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> const Animation* RenderStyle::transitionForProperty(CSSPropertyID property) const
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleRenderStyleh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/RenderStyle.h (177820 => 177821)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/RenderStyle.h        2014-12-30 02:59:25 UTC (rev 177820)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.h        2014-12-30 04:39:59 UTC (rev 177821)
</span><span class="lines">@@ -1050,8 +1050,8 @@
</span><span class="cx">     const AnimationList* animations() const { return rareNonInheritedData-&gt;m_animations.get(); }
</span><span class="cx">     const AnimationList* transitions() const { return rareNonInheritedData-&gt;m_transitions.get(); }
</span><span class="cx"> 
</span><del>-    AnimationList* accessAnimations();
-    AnimationList* accessTransitions();
</del><ins>+    AnimationList&amp; ensureAnimations();
+    AnimationList&amp; ensureTransitions();
</ins><span class="cx"> 
</span><span class="cx">     bool hasAnimations() const { return rareNonInheritedData-&gt;m_animations &amp;&amp; rareNonInheritedData-&gt;m_animations-&gt;size() &gt; 0; }
</span><span class="cx">     bool hasTransitions() const { return rareNonInheritedData-&gt;m_transitions &amp;&amp; rareNonInheritedData-&gt;m_transitions-&gt;size() &gt; 0; }
</span></span></pre>
</div>
</div>

</body>
</html>