<!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>[177869] 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/177869">177869</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2015-01-02 14:40:14 -0800 (Fri, 02 Jan 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Kill the DeprecatedStyleBuilder
https://bugs.webkit.org/show_bug.cgi?id=140034

Reviewed by Darin Adler.

Move FillLayer properties to the new StyleBuilder and get rid of the
DeprecatedStyleBuilder now that all its CSS properties have been ported
to the new StyleBuilder.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreCMakeListstxt">trunk/Source/WebCore/CMakeLists.txt</a></li>
<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="#trunkSourceWebCorecssCSSAllInOnecpp">trunk/Source/WebCore/css/CSSAllInOne.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="#trunkSourceWebCorecssStyleResolvercpp">trunk/Source/WebCore/css/StyleResolver.cpp</a></li>
<li><a href="#trunkSourceWebCorecssStyleResolverh">trunk/Source/WebCore/css/StyleResolver.h</a></li>
<li><a href="#trunkSourceWebCorecssmakeproppl">trunk/Source/WebCore/css/makeprop.pl</a></li>
<li><a href="#trunkSourceWebCorepageanimationCSSPropertyAnimationcpp">trunk/Source/WebCore/page/animation/CSSPropertyAnimation.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleFillLayercpp">trunk/Source/WebCore/rendering/style/FillLayer.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleFillLayerh">trunk/Source/WebCore/rendering/style/FillLayer.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleRenderStyleh">trunk/Source/WebCore/rendering/style/RenderStyle.h</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceWebCorecssDeprecatedStyleBuildercpp">trunk/Source/WebCore/css/DeprecatedStyleBuilder.cpp</a></li>
<li><a href="#trunkSourceWebCorecssDeprecatedStyleBuilderh">trunk/Source/WebCore/css/DeprecatedStyleBuilder.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (177868 => 177869)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2015-01-02 20:07:40 UTC (rev 177868)
+++ trunk/Source/WebCore/CMakeLists.txt        2015-01-02 22:40:14 UTC (rev 177869)
</span><span class="lines">@@ -1254,7 +1254,6 @@
</span><span class="cx">     css/CSSValueList.cpp
</span><span class="cx">     css/CSSValuePool.cpp
</span><span class="cx">     css/DOMWindowCSS.cpp
</span><del>-    css/DeprecatedStyleBuilder.cpp
</del><span class="cx">     css/DocumentRuleSets.cpp
</span><span class="cx">     css/ElementRuleCollector.cpp
</span><span class="cx">     css/FontLoader.cpp
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (177868 => 177869)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-01-02 20:07:40 UTC (rev 177868)
+++ trunk/Source/WebCore/ChangeLog        2015-01-02 22:40:14 UTC (rev 177869)
</span><span class="lines">@@ -1,5 +1,16 @@
</span><span class="cx"> 2015-01-02  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Kill the DeprecatedStyleBuilder
+        https://bugs.webkit.org/show_bug.cgi?id=140034
+
+        Reviewed by Darin Adler.
+
+        Move FillLayer properties to the new StyleBuilder and get rid of the
+        DeprecatedStyleBuilder now that all its CSS properties have been ported
+        to the new StyleBuilder.
+
+2015-01-02  Chris Dumez  &lt;cdumez@apple.com&gt;
+
</ins><span class="cx">         Move 'font-size' CSS property to the new StyleBuilder
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=140010
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (177868 => 177869)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2015-01-02 20:07:40 UTC (rev 177868)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2015-01-02 22:40:14 UTC (rev 177869)
</span><span class="lines">@@ -5900,8 +5900,6 @@
</span><span class="cx">                 E0FEF372B27C53EAC1C1FBEE /* EventSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E0FEF371B27C53EAC1C1FBEE /* EventSource.cpp */; };
</span><span class="cx">                 E0FEF372B37C53EAC1C1FBEE /* JSEventSource.h in Headers */ = {isa = PBXBuildFile; fileRef = E0FEF371B37C53EAC1C1FBEE /* JSEventSource.h */; };
</span><span class="cx">                 E0FEF372B47C53EAC1C1FBEE /* JSEventSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E0FEF371B47C53EAC1C1FBEE /* JSEventSource.cpp */; };
</span><del>-                E100EE751546EAC100BA11D1 /* DeprecatedStyleBuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E100EE731546EAC100BA11D1 /* DeprecatedStyleBuilder.cpp */; };
-                E100EE761546EAC100BA11D1 /* DeprecatedStyleBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = E100EE741546EAC100BA11D1 /* DeprecatedStyleBuilder.h */; };
</del><span class="cx">                 E107400D0E77BDC00033AF24 /* JSMessageChannel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E107400B0E77BDC00033AF24 /* JSMessageChannel.cpp */; };
</span><span class="cx">                 E107400E0E77BDC00033AF24 /* JSMessageChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = E107400C0E77BDC00033AF24 /* JSMessageChannel.h */; };
</span><span class="cx">                 E10B937C0B73C00A003ED890 /* JSCustomXPathNSResolver.h in Headers */ = {isa = PBXBuildFile; fileRef = E10B937B0B73C00A003ED890 /* JSCustomXPathNSResolver.h */; };
</span><span class="lines">@@ -13424,8 +13422,6 @@
</span><span class="cx">                 E0FEF371B27C53EAC1C1FBEE /* EventSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EventSource.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 E0FEF371B37C53EAC1C1FBEE /* JSEventSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSEventSource.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 E0FEF371B47C53EAC1C1FBEE /* JSEventSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSEventSource.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                E100EE731546EAC100BA11D1 /* DeprecatedStyleBuilder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DeprecatedStyleBuilder.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                E100EE741546EAC100BA11D1 /* DeprecatedStyleBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeprecatedStyleBuilder.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 E107400B0E77BDC00033AF24 /* JSMessageChannel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMessageChannel.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 E107400C0E77BDC00033AF24 /* JSMessageChannel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSMessageChannel.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 E10B937B0B73C00A003ED890 /* JSCustomXPathNSResolver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCustomXPathNSResolver.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -22207,8 +22203,6 @@
</span><span class="cx">                                 E49BDA0A131FD3E5003C56F0 /* CSSValuePool.cpp */,
</span><span class="cx">                                 E49BD9F9131FD2ED003C56F0 /* CSSValuePool.h */,
</span><span class="cx">                                 A80E6CE10A1989CA007FB8C5 /* DashboardRegion.h */,
</span><del>-                                E100EE731546EAC100BA11D1 /* DeprecatedStyleBuilder.cpp */,
-                                E100EE741546EAC100BA11D1 /* DeprecatedStyleBuilder.h */,
</del><span class="cx">                                 4A4F48A716B0DFC000EDBB29 /* DocumentRuleSets.cpp */,
</span><span class="cx">                                 4A4F48A816B0DFC000EDBB29 /* DocumentRuleSets.h */,
</span><span class="cx">                                 FD677735195CAB200072E0D3 /* DOMWindowCSS.cpp */,
</span><span class="lines">@@ -23883,7 +23877,6 @@
</span><span class="cx">                                 93309DDF099E64920056E581 /* DeleteFromTextNodeCommand.h in Headers */,
</span><span class="cx">                                 93309DE1099E64920056E581 /* DeleteSelectionCommand.h in Headers */,
</span><span class="cx">                                 FD1660A513787C6D001FFA7B /* DenormalDisabler.h in Headers */,
</span><del>-                                E100EE761546EAC100BA11D1 /* DeprecatedStyleBuilder.h in Headers */,
</del><span class="cx">                                 A7C9ABF91357A3BF00F5503F /* DetailsMarkerControl.h in Headers */,
</span><span class="cx">                                 CCC2B51415F613060048CDD6 /* DeviceClient.h in Headers */,
</span><span class="cx">                                 CCC2B51615F613060048CDD6 /* DeviceController.h in Headers */,
</span><span class="lines">@@ -27578,7 +27571,6 @@
</span><span class="cx">                                 FD31603012B0267600C1A359 /* DelayProcessor.cpp in Sources */,
</span><span class="cx">                                 93309DDE099E64920056E581 /* DeleteFromTextNodeCommand.cpp in Sources */,
</span><span class="cx">                                 93309DE0099E64920056E581 /* DeleteSelectionCommand.cpp in Sources */,
</span><del>-                                E100EE751546EAC100BA11D1 /* DeprecatedStyleBuilder.cpp in Sources */,
</del><span class="cx">                                 A7C9ABF81357A3BF00F5503F /* DetailsMarkerControl.cpp in Sources */,
</span><span class="cx">                                 CCC2B51515F613060048CDD6 /* DeviceController.cpp in Sources */,
</span><span class="cx">                                 31EAF97F121435A400E7C1BF /* DeviceMotionClientIOS.mm in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSAllInOnecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSAllInOne.cpp (177868 => 177869)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSAllInOne.cpp        2015-01-02 20:07:40 UTC (rev 177868)
+++ trunk/Source/WebCore/css/CSSAllInOne.cpp        2015-01-02 22:40:14 UTC (rev 177869)
</span><span class="lines">@@ -75,7 +75,6 @@
</span><span class="cx"> #include &quot;CSSValueList.cpp&quot;
</span><span class="cx"> #include &quot;CSSValuePool.cpp&quot;
</span><span class="cx"> #include &quot;DOMWindowCSS.cpp&quot;
</span><del>-#include &quot;DeprecatedStyleBuilder.cpp&quot;
</del><span class="cx"> #include &quot;DocumentRuleSets.cpp&quot;
</span><span class="cx"> #include &quot;ElementRuleCollector.cpp&quot;
</span><span class="cx"> #include &quot;InspectorCSSOMWrappers.cpp&quot;
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSPropertyNamesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSPropertyNames.in (177868 => 177869)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSPropertyNames.in        2015-01-02 20:07:40 UTC (rev 177868)
+++ trunk/Source/WebCore/css/CSSPropertyNames.in        2015-01-02 22:40:14 UTC (rev 177869)
</span><span class="lines">@@ -80,6 +80,10 @@
</span><span class="cx"> // * FontProperty:
</span><span class="cx"> // Indicates that this CSS property is font-related. It must have corresponding
</span><span class="cx"> // methods on the FontDescription class.
</span><ins>+//
+// * FillLayerProperty:
+// Indicates that this CSS property is a FillLayer property. It must have
+// corresponding methods on the FillLayer 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">@@ -129,19 +133,19 @@
</span><span class="cx"> animation-play-state [AnimationProperty, TypeName=EAnimPlayState, NameForMethods=PlayState]
</span><span class="cx"> animation-timing-function [AnimationProperty, TypeName=PassRefPtr&lt;TimingFunction&gt;, NameForMethods=TimingFunction]
</span><span class="cx"> background [LegacyStyleBuilder]
</span><del>-background-attachment [LegacyStyleBuilder]
-background-blend-mode [LegacyStyleBuilder]
-background-clip [LegacyStyleBuilder]
</del><ins>+background-attachment [FillLayerProperty, TypeName=EFillAttachment, NameForMethods=Attachment]
+background-blend-mode [FillLayerProperty, TypeName=BlendMode, NameForMethods=BlendMode]
+background-clip [FillLayerProperty, TypeName=EFillBox, NameForMethods=Clip]
</ins><span class="cx"> background-color [VisitedLinkColorSupport, Initial=invalidColor, NoDefaultColor]
</span><del>-background-image [LegacyStyleBuilder]
-background-origin [LegacyStyleBuilder]
</del><ins>+background-image [FillLayerProperty, TypeName=StyleImage*, NameForMethods=Image]
+background-origin [FillLayerProperty, TypeName=EFillBox, NameForMethods=Origin]
</ins><span class="cx"> background-position [LegacyStyleBuilder]
</span><del>-background-position-x [LegacyStyleBuilder]
-background-position-y [LegacyStyleBuilder]
</del><ins>+background-position-x [FillLayerProperty, TypeName=Length, NameForMethods=XPosition]
+background-position-y [FillLayerProperty, TypeName=Length, NameForMethods=YPosition]
</ins><span class="cx"> background-repeat [LegacyStyleBuilder]
</span><del>-background-repeat-x [LegacyStyleBuilder]
-background-repeat-y [LegacyStyleBuilder]
-background-size [LegacyStyleBuilder]
</del><ins>+background-repeat-x [FillLayerProperty, TypeName=EFillRepeat, NameForMethods=RepeatX]
+background-repeat-y [FillLayerProperty, TypeName=EFillRepeat, NameForMethods=RepeatY]
+background-size [FillLayerProperty, TypeName=EFillSize, NameForMethods=Size]
</ins><span class="cx"> border [LegacyStyleBuilder]
</span><span class="cx"> border-bottom [LegacyStyleBuilder]
</span><span class="cx"> border-bottom-color [VisitedLinkColorSupport, Initial=invalidColor]
</span><span class="lines">@@ -312,13 +316,13 @@
</span><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><del>--webkit-background-clip [LegacyStyleBuilder]
--webkit-background-composite [LegacyStyleBuilder]
--webkit-background-origin [LegacyStyleBuilder]
</del><ins>+-webkit-background-clip [FillLayerProperty, TypeName=EFillBox, NameForMethods=Clip]
+-webkit-background-composite [FillLayerProperty, TypeName=CompositeOperator, NameForMethods=Composite]
+-webkit-background-origin [FillLayerProperty, TypeName=EFillBox, NameForMethods=Origin]
</ins><span class="cx"> // -webkit-background-size differs from background-size only in the interpretation of
</span><span class="cx"> // a single value: -webkit-background-size: l; is equivalent to background-size: l l;
</span><span class="cx"> // whereas background-size: l; is equivalent to background-size: l auto;
</span><del>--webkit-background-size [LegacyStyleBuilder]
</del><ins>+-webkit-background-size [FillLayerProperty, TypeName=EFillSize, NameForMethods=Size]
</ins><span class="cx"> -webkit-border-after [LegacyStyleBuilder]
</span><span class="cx"> -webkit-border-after-color [LegacyStyleBuilder]
</span><span class="cx"> -webkit-border-after-style [LegacyStyleBuilder]
</span><span class="lines">@@ -472,18 +476,18 @@
</span><span class="cx"> -webkit-mask-box-image-slice [Custom=All]
</span><span class="cx"> -webkit-mask-box-image-source [Converter=StyleImage&lt;CSSPropertyWebkitMaskBoxImageSource&gt;]
</span><span class="cx"> -webkit-mask-box-image-width [Custom=All]
</span><del>--webkit-mask-clip [LegacyStyleBuilder]
--webkit-mask-composite [LegacyStyleBuilder]
</del><ins>+-webkit-mask-clip [FillLayerProperty, TypeName=EFillBox, NameForMethods=Clip]
+-webkit-mask-composite [FillLayerProperty, TypeName=CompositeOperator, NameForMethods=Composite]
</ins><span class="cx"> -webkit-mask-image [LegacyStyleBuilder]
</span><del>--webkit-mask-origin [LegacyStyleBuilder]
</del><ins>+-webkit-mask-origin [FillLayerProperty, TypeName=EFillBox, NameForMethods=Origin]
</ins><span class="cx"> -webkit-mask-position [LegacyStyleBuilder]
</span><del>--webkit-mask-position-x [LegacyStyleBuilder]
--webkit-mask-position-y [LegacyStyleBuilder]
</del><ins>+-webkit-mask-position-x [FillLayerProperty, TypeName=Length, NameForMethods=XPosition]
+-webkit-mask-position-y [FillLayerProperty, TypeName=Length, NameForMethods=YPosition]
</ins><span class="cx"> -webkit-mask-repeat [LegacyStyleBuilder]
</span><del>--webkit-mask-repeat-x [LegacyStyleBuilder]
--webkit-mask-repeat-y [LegacyStyleBuilder]
--webkit-mask-size [LegacyStyleBuilder]
--webkit-mask-source-type [LegacyStyleBuilder]
</del><ins>+-webkit-mask-repeat-x [FillLayerProperty, TypeName=EFillRepeat, NameForMethods=RepeatX]
+-webkit-mask-repeat-y [FillLayerProperty, TypeName=EFillRepeat, NameForMethods=RepeatY]
+-webkit-mask-size [FillLayerProperty, TypeName=FillSize, NameForMethods=Size]
+-webkit-mask-source-type [FillLayerProperty, TypeName=EMaskSourceType, NameForMethods=MaskSourceType]
</ins><span class="cx"> -webkit-max-logical-width [LegacyStyleBuilder]
</span><span class="cx"> -webkit-max-logical-height [LegacyStyleBuilder]
</span><span class="cx"> -webkit-min-logical-width [LegacyStyleBuilder]
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSToStyleMapcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSToStyleMap.cpp (177868 => 177869)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSToStyleMap.cpp        2015-01-02 20:07:40 UTC (rev 177868)
+++ trunk/Source/WebCore/css/CSSToStyleMap.cpp        2015-01-02 22:40:14 UTC (rev 177869)
</span><span class="lines">@@ -70,145 +70,139 @@
</span><span class="cx">     return m_resolver-&gt;styleImage(propertyId, value);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CSSToStyleMap::mapFillAttachment(CSSPropertyID, FillLayer* layer, CSSValue* value)
</del><ins>+void CSSToStyleMap::mapFillAttachment(CSSPropertyID, FillLayer&amp; layer, CSSValue&amp; value)
</ins><span class="cx"> {
</span><del>-    if (value-&gt;isInitialValue()) {
-        layer-&gt;setAttachment(FillLayer::initialFillAttachment(layer-&gt;type()));
</del><ins>+    if (value.isInitialValue()) {
+        layer.setAttachment(FillLayer::initialFillAttachment(layer.type()));
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (!is&lt;CSSPrimitiveValue&gt;(*value))
</del><ins>+    if (!is&lt;CSSPrimitiveValue&gt;(value))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    switch (downcast&lt;CSSPrimitiveValue&gt;(*value).getValueID()) {
</del><ins>+    switch (downcast&lt;CSSPrimitiveValue&gt;(value).getValueID()) {
</ins><span class="cx">     case CSSValueFixed:
</span><del>-        layer-&gt;setAttachment(FixedBackgroundAttachment);
</del><ins>+        layer.setAttachment(FixedBackgroundAttachment);
</ins><span class="cx">         break;
</span><span class="cx">     case CSSValueScroll:
</span><del>-        layer-&gt;setAttachment(ScrollBackgroundAttachment);
</del><ins>+        layer.setAttachment(ScrollBackgroundAttachment);
</ins><span class="cx">         break;
</span><span class="cx">     case CSSValueLocal:
</span><del>-        layer-&gt;setAttachment(LocalBackgroundAttachment);
</del><ins>+        layer.setAttachment(LocalBackgroundAttachment);
</ins><span class="cx">         break;
</span><span class="cx">     default:
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CSSToStyleMap::mapFillClip(CSSPropertyID, FillLayer* layer, CSSValue* value)
</del><ins>+void CSSToStyleMap::mapFillClip(CSSPropertyID, FillLayer&amp; layer, CSSValue&amp; value)
</ins><span class="cx"> {
</span><del>-    if (value-&gt;isInitialValue()) {
-        layer-&gt;setClip(FillLayer::initialFillClip(layer-&gt;type()));
</del><ins>+    if (value.isInitialValue()) {
+        layer.setClip(FillLayer::initialFillClip(layer.type()));
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (!is&lt;CSSPrimitiveValue&gt;(*value))
</del><ins>+    if (!is&lt;CSSPrimitiveValue&gt;(value))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    CSSPrimitiveValue&amp; primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(*value);
-    layer-&gt;setClip(primitiveValue);
</del><ins>+    layer.setClip(downcast&lt;CSSPrimitiveValue&gt;(value));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CSSToStyleMap::mapFillComposite(CSSPropertyID, FillLayer* layer, CSSValue* value)
</del><ins>+void CSSToStyleMap::mapFillComposite(CSSPropertyID, FillLayer&amp; layer, CSSValue&amp; value)
</ins><span class="cx"> {
</span><del>-    if (value-&gt;isInitialValue()) {
-        layer-&gt;setComposite(FillLayer::initialFillComposite(layer-&gt;type()));
</del><ins>+    if (value.isInitialValue()) {
+        layer.setComposite(FillLayer::initialFillComposite(layer.type()));
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (!is&lt;CSSPrimitiveValue&gt;(*value))
</del><ins>+    if (!is&lt;CSSPrimitiveValue&gt;(value))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    CSSPrimitiveValue&amp; primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(*value);
-    layer-&gt;setComposite(primitiveValue);
</del><ins>+    layer.setComposite(downcast&lt;CSSPrimitiveValue&gt;(value));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CSSToStyleMap::mapFillBlendMode(CSSPropertyID, FillLayer* layer, CSSValue* value)
</del><ins>+void CSSToStyleMap::mapFillBlendMode(CSSPropertyID, FillLayer&amp; layer, CSSValue&amp; value)
</ins><span class="cx"> {
</span><del>-    if (value-&gt;isInitialValue()) {
-        layer-&gt;setBlendMode(FillLayer::initialFillBlendMode(layer-&gt;type()));
</del><ins>+    if (value.isInitialValue()) {
+        layer.setBlendMode(FillLayer::initialFillBlendMode(layer.type()));
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (!is&lt;CSSPrimitiveValue&gt;(*value))
</del><ins>+    if (!is&lt;CSSPrimitiveValue&gt;(value))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    CSSPrimitiveValue&amp; primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(*value);
-    layer-&gt;setBlendMode(primitiveValue);
</del><ins>+    layer.setBlendMode(downcast&lt;CSSPrimitiveValue&gt;(value));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CSSToStyleMap::mapFillOrigin(CSSPropertyID, FillLayer* layer, CSSValue* value)
</del><ins>+void CSSToStyleMap::mapFillOrigin(CSSPropertyID, FillLayer&amp; layer, CSSValue&amp; value)
</ins><span class="cx"> {
</span><del>-    if (value-&gt;isInitialValue()) {
-        layer-&gt;setOrigin(FillLayer::initialFillOrigin(layer-&gt;type()));
</del><ins>+    if (value.isInitialValue()) {
+        layer.setOrigin(FillLayer::initialFillOrigin(layer.type()));
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (!is&lt;CSSPrimitiveValue&gt;(*value))
</del><ins>+    if (!is&lt;CSSPrimitiveValue&gt;(value))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    CSSPrimitiveValue&amp; primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(*value);
-    layer-&gt;setOrigin(primitiveValue);
</del><ins>+    layer.setOrigin(downcast&lt;CSSPrimitiveValue&gt;(value));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void CSSToStyleMap::mapFillImage(CSSPropertyID property, FillLayer* layer, CSSValue* value)
</del><ins>+void CSSToStyleMap::mapFillImage(CSSPropertyID property, FillLayer&amp; layer, CSSValue&amp; value)
</ins><span class="cx"> {
</span><del>-    if (value-&gt;isInitialValue()) {
-        layer-&gt;setImage(FillLayer::initialFillImage(layer-&gt;type()));
</del><ins>+    if (value.isInitialValue()) {
+        layer.setImage(FillLayer::initialFillImage(layer.type()));
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    layer-&gt;setImage(styleImage(property, *value));
</del><ins>+    layer.setImage(styleImage(property, value));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CSSToStyleMap::mapFillRepeatX(CSSPropertyID, FillLayer* layer, CSSValue* value)
</del><ins>+void CSSToStyleMap::mapFillRepeatX(CSSPropertyID, FillLayer&amp; layer, CSSValue&amp; value)
</ins><span class="cx"> {
</span><del>-    if (value-&gt;isInitialValue()) {
-        layer-&gt;setRepeatX(FillLayer::initialFillRepeatX(layer-&gt;type()));
</del><ins>+    if (value.isInitialValue()) {
+        layer.setRepeatX(FillLayer::initialFillRepeatX(layer.type()));
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (!is&lt;CSSPrimitiveValue&gt;(*value))
</del><ins>+    if (!is&lt;CSSPrimitiveValue&gt;(value))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    CSSPrimitiveValue&amp; primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(*value);
-    layer-&gt;setRepeatX(primitiveValue);
</del><ins>+    layer.setRepeatX(downcast&lt;CSSPrimitiveValue&gt;(value));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CSSToStyleMap::mapFillRepeatY(CSSPropertyID, FillLayer* layer, CSSValue* value)
</del><ins>+void CSSToStyleMap::mapFillRepeatY(CSSPropertyID, FillLayer&amp; layer, CSSValue&amp; value)
</ins><span class="cx"> {
</span><del>-    if (value-&gt;isInitialValue()) {
-        layer-&gt;setRepeatY(FillLayer::initialFillRepeatY(layer-&gt;type()));
</del><ins>+    if (value.isInitialValue()) {
+        layer.setRepeatY(FillLayer::initialFillRepeatY(layer.type()));
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (!is&lt;CSSPrimitiveValue&gt;(*value))
</del><ins>+    if (!is&lt;CSSPrimitiveValue&gt;(value))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    CSSPrimitiveValue&amp; primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(*value);
-    layer-&gt;setRepeatY(primitiveValue);
</del><ins>+    layer.setRepeatY(downcast&lt;CSSPrimitiveValue&gt;(value));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CSSToStyleMap::mapFillSize(CSSPropertyID, FillLayer* layer, CSSValue* value)
</del><ins>+void CSSToStyleMap::mapFillSize(CSSPropertyID, FillLayer&amp; layer, CSSValue&amp; value)
</ins><span class="cx"> {
</span><del>-    if (!is&lt;CSSPrimitiveValue&gt;(*value)) {
-        layer-&gt;setSizeType(SizeNone);
</del><ins>+    if (!is&lt;CSSPrimitiveValue&gt;(value)) {
+        layer.setSizeType(SizeNone);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    CSSPrimitiveValue&amp; primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(*value);
</del><ins>+    auto&amp; primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(value);
</ins><span class="cx">     if (primitiveValue.getValueID() == CSSValueContain)
</span><del>-        layer-&gt;setSizeType(Contain);
</del><ins>+        layer.setSizeType(Contain);
</ins><span class="cx">     else if (primitiveValue.getValueID() == CSSValueCover)
</span><del>-        layer-&gt;setSizeType(Cover);
</del><ins>+        layer.setSizeType(Cover);
</ins><span class="cx">     else
</span><del>-        layer-&gt;setSizeType(SizeLength);
</del><ins>+        layer.setSizeType(SizeLength);
</ins><span class="cx"> 
</span><del>-    LengthSize b = FillLayer::initialFillSizeLength(layer-&gt;type());
</del><ins>+    LengthSize b = FillLayer::initialFillSizeLength(layer.type());
</ins><span class="cx"> 
</span><del>-    if (value-&gt;isInitialValue() || primitiveValue.getValueID() == CSSValueContain || primitiveValue.getValueID() == CSSValueCover) {
-        layer-&gt;setSizeLength(b);
</del><ins>+    if (value.isInitialValue() || primitiveValue.getValueID() == CSSValueContain || primitiveValue.getValueID() == CSSValueCover) {
+        layer.setSizeLength(b);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -230,20 +224,20 @@
</span><span class="cx"> 
</span><span class="cx">     b.setWidth(firstLength);
</span><span class="cx">     b.setHeight(secondLength);
</span><del>-    layer-&gt;setSizeLength(b);
</del><ins>+    layer.setSizeLength(b);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CSSToStyleMap::mapFillXPosition(CSSPropertyID propertyID, FillLayer* layer, CSSValue* value)
</del><ins>+void CSSToStyleMap::mapFillXPosition(CSSPropertyID propertyID, FillLayer&amp; layer, CSSValue&amp; value)
</ins><span class="cx"> {
</span><del>-    if (value-&gt;isInitialValue()) {
-        layer-&gt;setXPosition(FillLayer::initialFillXPosition(layer-&gt;type()));
</del><ins>+    if (value.isInitialValue()) {
+        layer.setXPosition(FillLayer::initialFillXPosition(layer.type()));
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (!is&lt;CSSPrimitiveValue&gt;(*value))
</del><ins>+    if (!is&lt;CSSPrimitiveValue&gt;(value))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    CSSPrimitiveValue* primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(value);
</del><ins>+    auto* primitiveValue = &amp;downcast&lt;CSSPrimitiveValue&gt;(value);
</ins><span class="cx">     Pair* pair = primitiveValue-&gt;getPairValue();
</span><span class="cx">     if (pair) {
</span><span class="cx">         ASSERT_UNUSED(propertyID, propertyID == CSSPropertyBackgroundPositionX || propertyID == CSSPropertyWebkitMaskPositionX);
</span><span class="lines">@@ -260,22 +254,22 @@
</span><span class="cx">     else
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    layer-&gt;setXPosition(length);
</del><ins>+    layer.setXPosition(length);
</ins><span class="cx">     if (pair)
</span><del>-        layer-&gt;setBackgroundXOrigin(*(pair-&gt;first()));
</del><ins>+        layer.setBackgroundXOrigin(*pair-&gt;first());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CSSToStyleMap::mapFillYPosition(CSSPropertyID propertyID, FillLayer* layer, CSSValue* value)
</del><ins>+void CSSToStyleMap::mapFillYPosition(CSSPropertyID propertyID, FillLayer&amp; layer, CSSValue&amp; value)
</ins><span class="cx"> {
</span><del>-    if (value-&gt;isInitialValue()) {
-        layer-&gt;setYPosition(FillLayer::initialFillYPosition(layer-&gt;type()));
</del><ins>+    if (value.isInitialValue()) {
+        layer.setYPosition(FillLayer::initialFillYPosition(layer.type()));
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (!is&lt;CSSPrimitiveValue&gt;(*value))
</del><ins>+    if (!is&lt;CSSPrimitiveValue&gt;(value))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    CSSPrimitiveValue* primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(value);
</del><ins>+    auto* primitiveValue = &amp;downcast&lt;CSSPrimitiveValue&gt;(value);
</ins><span class="cx">     Pair* pair = primitiveValue-&gt;getPairValue();
</span><span class="cx">     if (pair) {
</span><span class="cx">         ASSERT_UNUSED(propertyID, propertyID == CSSPropertyBackgroundPositionY || propertyID == CSSPropertyWebkitMaskPositionY);
</span><span class="lines">@@ -292,24 +286,23 @@
</span><span class="cx">     else
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    layer-&gt;setYPosition(length);
</del><ins>+    layer.setYPosition(length);
</ins><span class="cx">     if (pair)
</span><del>-        layer-&gt;setBackgroundYOrigin(*(pair-&gt;first()));
</del><ins>+        layer.setBackgroundYOrigin(*pair-&gt;first());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CSSToStyleMap::mapFillMaskSourceType(CSSPropertyID, FillLayer* layer, CSSValue* value)
</del><ins>+void CSSToStyleMap::mapFillMaskSourceType(CSSPropertyID, FillLayer&amp; layer, CSSValue&amp; value)
</ins><span class="cx"> {
</span><del>-    EMaskSourceType type = FillLayer::initialMaskSourceType(layer-&gt;type());
-    if (value-&gt;isInitialValue()) {
-        layer-&gt;setMaskSourceType(type);
</del><ins>+    EMaskSourceType type = FillLayer::initialFillMaskSourceType(layer.type());
+    if (value.isInitialValue()) {
+        layer.setMaskSourceType(type);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (!is&lt;CSSPrimitiveValue&gt;(*value))
</del><ins>+    if (!is&lt;CSSPrimitiveValue&gt;(value))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    CSSPrimitiveValue&amp; primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(*value);
-    switch (primitiveValue.getValueID()) {
</del><ins>+    switch (downcast&lt;CSSPrimitiveValue&gt;(value).getValueID()) {
</ins><span class="cx">     case CSSValueAlpha:
</span><span class="cx">         type = EMaskSourceType::MaskAlpha;
</span><span class="cx">         break;
</span><span class="lines">@@ -322,7 +315,7 @@
</span><span class="cx">         ASSERT_NOT_REACHED();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    layer-&gt;setMaskSourceType(type);
</del><ins>+    layer.setMaskSourceType(type);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void CSSToStyleMap::mapAnimationDelay(Animation&amp; animation, CSSValue&amp; value)
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSToStyleMaph"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSToStyleMap.h (177868 => 177869)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSToStyleMap.h        2015-01-02 20:07:40 UTC (rev 177868)
+++ trunk/Source/WebCore/css/CSSToStyleMap.h        2015-01-02 22:40:14 UTC (rev 177869)
</span><span class="lines">@@ -45,18 +45,18 @@
</span><span class="cx"> public:
</span><span class="cx">     CSSToStyleMap(StyleResolver*);
</span><span class="cx"> 
</span><del>-    void mapFillAttachment(CSSPropertyID, FillLayer*, CSSValue*);
-    void mapFillClip(CSSPropertyID, FillLayer*, CSSValue*);
-    void mapFillComposite(CSSPropertyID, FillLayer*, CSSValue*);
-    void mapFillBlendMode(CSSPropertyID, FillLayer*, CSSValue*);
-    void mapFillOrigin(CSSPropertyID, FillLayer*, CSSValue*);
-    void mapFillImage(CSSPropertyID, FillLayer*, CSSValue*);
-    void mapFillRepeatX(CSSPropertyID, FillLayer*, CSSValue*);
-    void mapFillRepeatY(CSSPropertyID, FillLayer*, CSSValue*);
-    void mapFillSize(CSSPropertyID, FillLayer*, CSSValue*);
-    void mapFillXPosition(CSSPropertyID, FillLayer*, CSSValue*);
-    void mapFillYPosition(CSSPropertyID, FillLayer*, CSSValue*);
-    void mapFillMaskSourceType(CSSPropertyID, FillLayer*, CSSValue*);
</del><ins>+    void mapFillAttachment(CSSPropertyID, FillLayer&amp;, CSSValue&amp;);
+    void mapFillClip(CSSPropertyID, FillLayer&amp;, CSSValue&amp;);
+    void mapFillComposite(CSSPropertyID, FillLayer&amp;, CSSValue&amp;);
+    void mapFillBlendMode(CSSPropertyID, FillLayer&amp;, CSSValue&amp;);
+    void mapFillOrigin(CSSPropertyID, FillLayer&amp;, CSSValue&amp;);
+    void mapFillImage(CSSPropertyID, FillLayer&amp;, CSSValue&amp;);
+    void mapFillRepeatX(CSSPropertyID, FillLayer&amp;, CSSValue&amp;);
+    void mapFillRepeatY(CSSPropertyID, FillLayer&amp;, CSSValue&amp;);
+    void mapFillSize(CSSPropertyID, FillLayer&amp;, CSSValue&amp;);
+    void mapFillXPosition(CSSPropertyID, FillLayer&amp;, CSSValue&amp;);
+    void mapFillYPosition(CSSPropertyID, FillLayer&amp;, CSSValue&amp;);
+    void mapFillMaskSourceType(CSSPropertyID, FillLayer&amp;, CSSValue&amp;);
</ins><span class="cx"> 
</span><span class="cx">     void mapAnimationDelay(Animation&amp;, CSSValue&amp;);
</span><span class="cx">     void mapAnimationDirection(Animation&amp;, CSSValue&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCorecssDeprecatedStyleBuildercpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/css/DeprecatedStyleBuilder.cpp (177868 => 177869)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/DeprecatedStyleBuilder.cpp        2015-01-02 20:07:40 UTC (rev 177868)
+++ trunk/Source/WebCore/css/DeprecatedStyleBuilder.cpp        2015-01-02 22:40:14 UTC (rev 177869)
</span><span class="lines">@@ -1,178 +0,0 @@
</span><del>-/*
- * Copyright (C) 2011 Google Inc. All rights reserved.
- * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
- * Copyright (C) 2013 Adobe Systems Incorporated. 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.
- */
-
-#include &quot;config.h&quot;
-#include &quot;DeprecatedStyleBuilder.h&quot;
-
-#include &quot;CSSImageSetValue.h&quot;
-#include &quot;CSSPrimitiveValue.h&quot;
-#include &quot;CSSPrimitiveValueMappings.h&quot;
-#include &quot;CSSToStyleMap.h&quot;
-#include &quot;CSSValueList.h&quot;
-#include &quot;HTMLElement.h&quot;
-#include &quot;RenderStyle.h&quot;
-#include &quot;StyleResolver.h&quot;
-
-namespace WebCore {
-
-template &lt;typename T&gt;
-struct FillLayerAccessorTypes {
-    typedef T Setter;
-    typedef T Getter;
-    typedef T InitialGetter;
-};
-
-template &lt;&gt;
-struct FillLayerAccessorTypes&lt;StyleImage*&gt; {
-    typedef PassRefPtr&lt;StyleImage&gt; Setter;
-    typedef StyleImage* Getter;
-    typedef StyleImage* InitialGetter;
-};
-
-template&lt;&gt;
-struct FillLayerAccessorTypes&lt;Length&gt;
-{
-    typedef Length Setter;
-    typedef const Length&amp; Getter;
-    typedef Length InitialGetter;
-};
-
-template &lt;typename T,
-          CSSPropertyID propertyId,
-          EFillLayerType fillLayerType,
-          FillLayer* (RenderStyle::*accessLayersFunction)(),
-          const FillLayer* (RenderStyle::*layersFunction)() const,
-          bool (FillLayer::*testFunction)() const,
-          typename FillLayerAccessorTypes&lt;T&gt;::Getter (FillLayer::*getFunction)() const,
-          void (FillLayer::*setFunction)(typename FillLayerAccessorTypes&lt;T&gt;::Setter),
-          void (FillLayer::*clearFunction)(),
-          typename FillLayerAccessorTypes&lt;T&gt;::InitialGetter (*initialFunction)(EFillLayerType),
-          void (CSSToStyleMap::*mapFillFunction)(CSSPropertyID, FillLayer*, CSSValue*)&gt;
-class ApplyPropertyFillLayer {
-public:
-    static void applyInheritValue(CSSPropertyID, StyleResolver* styleResolver)
-    {
-        // Check for no-op before copying anything.
-        if (*(styleResolver-&gt;parentStyle()-&gt;*layersFunction)() == *(styleResolver-&gt;style()-&gt;*layersFunction)())
-            return;
-
-        auto* child = (styleResolver-&gt;style()-&gt;*accessLayersFunction)();
-        FillLayer* previousChild = nullptr;
-        for (auto* parent = (styleResolver-&gt;parentStyle()-&gt;*layersFunction)(); parent &amp;&amp; (parent-&gt;*testFunction)(); parent = parent-&gt;next()) {
-            if (!child) {
-                previousChild-&gt;setNext(std::make_unique&lt;FillLayer&gt;(fillLayerType));
-                child = previousChild-&gt;next();
-            }
-            (child-&gt;*setFunction)((parent-&gt;*getFunction)());
-            previousChild = child;
-            child = previousChild-&gt;next();
-        }
-        for (; child; child = child-&gt;next())
-            (child-&gt;*clearFunction)();
-    }
-
-    static void applyInitialValue(CSSPropertyID, StyleResolver* styleResolver)
-    {
-        // Check for (single-layer) no-op before clearing anything.
-        const FillLayer&amp; layers = *(styleResolver-&gt;style()-&gt;*layersFunction)();
-        if (!layers.next() &amp;&amp; (!(layers.*testFunction)() || (layers.*getFunction)() == (*initialFunction)(fillLayerType)))
-            return;
-
-        FillLayer* child = (styleResolver-&gt;style()-&gt;*accessLayersFunction)();
-        (child-&gt;*setFunction)((*initialFunction)(fillLayerType));
-        for (child = child-&gt;next(); child; child = child-&gt;next())
-            (child-&gt;*clearFunction)();
-    }
-
-    static void applyValue(CSSPropertyID, StyleResolver* styleResolver, CSSValue* value)
-    {
-        FillLayer* child = (styleResolver-&gt;style()-&gt;*accessLayersFunction)();
-        FillLayer* previousChild = nullptr;
-        if (is&lt;CSSValueList&gt;(*value)
-#if ENABLE(CSS_IMAGE_SET)
-        &amp;&amp; !is&lt;CSSImageSetValue&gt;(*value)
-#endif
-        ) {
-            // Walk each value and put it into a layer, creating new layers as needed.
-            CSSValueList&amp; valueList = downcast&lt;CSSValueList&gt;(*value);
-            for (unsigned i = 0; i &lt; valueList.length(); i++) {
-                if (!child) {
-                    previousChild-&gt;setNext(std::make_unique&lt;FillLayer&gt;(fillLayerType));
-                    child = previousChild-&gt;next();
-                }
-                (styleResolver-&gt;styleMap()-&gt;*mapFillFunction)(propertyId, child, valueList.itemWithoutBoundsCheck(i));
-                previousChild = child;
-                child = child-&gt;next();
-            }
-        } else {
-            (styleResolver-&gt;styleMap()-&gt;*mapFillFunction)(propertyId, child, value);
-            child = child-&gt;next();
-        }
-        for (; child; child = child-&gt;next())
-            (child-&gt;*clearFunction)();
-    }
-
-    static PropertyHandler createHandler() { return PropertyHandler(&amp;applyInheritValue, &amp;applyInitialValue, &amp;applyValue); }
-};
-
-const DeprecatedStyleBuilder&amp; DeprecatedStyleBuilder::sharedStyleBuilder()
-{
-    static NeverDestroyed&lt;DeprecatedStyleBuilder&gt; styleBuilderInstance;
-    return styleBuilderInstance;
-}
-
-DeprecatedStyleBuilder::DeprecatedStyleBuilder()
-{
-    for (int i = 0; i &lt; numCSSProperties; ++i)
-        m_propertyMap[i] = PropertyHandler();
-
-    // Please keep CSS property list in alphabetical order.
-    setPropertyHandler(CSSPropertyBackgroundAttachment, ApplyPropertyFillLayer&lt;EFillAttachment, CSSPropertyBackgroundAttachment, BackgroundFillLayer, &amp;RenderStyle::accessBackgroundLayers, &amp;RenderStyle::backgroundLayers, &amp;FillLayer::isAttachmentSet, &amp;FillLayer::attachment, &amp;FillLayer::setAttachment, &amp;FillLayer::clearAttachment, &amp;FillLayer::initialFillAttachment, &amp;CSSToStyleMap::mapFillAttachment&gt;::createHandler());
-    setPropertyHandler(CSSPropertyBackgroundBlendMode, ApplyPropertyFillLayer&lt;BlendMode, CSSPropertyBackgroundBlendMode, BackgroundFillLayer, &amp;RenderStyle::accessBackgroundLayers, &amp;RenderStyle::backgroundLayers, &amp;FillLayer::isBlendModeSet, &amp;FillLayer::blendMode, &amp;FillLayer::setBlendMode, &amp;FillLayer::clearBlendMode, &amp;FillLayer::initialFillBlendMode, &amp;CSSToStyleMap::mapFillBlendMode&gt;::createHandler());
-    setPropertyHandler(CSSPropertyBackgroundClip, ApplyPropertyFillLayer&lt;EFillBox, CSSPropertyBackgroundClip, BackgroundFillLayer, &amp;RenderStyle::accessBackgroundLayers, &amp;RenderStyle::backgroundLayers, &amp;FillLayer::isClipSet, &amp;FillLayer::clip, &amp;FillLayer::setClip, &amp;FillLayer::clearClip, &amp;FillLayer::initialFillClip, &amp;CSSToStyleMap::mapFillClip&gt;::createHandler());
-    setPropertyHandler(CSSPropertyBackgroundImage, ApplyPropertyFillLayer&lt;StyleImage*, CSSPropertyBackgroundImage, BackgroundFillLayer, &amp;RenderStyle::accessBackgroundLayers, &amp;RenderStyle::backgroundLayers, &amp;FillLayer::isImageSet, &amp;FillLayer::image, &amp;FillLayer::setImage, &amp;FillLayer::clearImage, &amp;FillLayer::initialFillImage, &amp;CSSToStyleMap::mapFillImage&gt;::createHandler());
-    setPropertyHandler(CSSPropertyBackgroundOrigin, ApplyPropertyFillLayer&lt;EFillBox, CSSPropertyBackgroundOrigin, BackgroundFillLayer, &amp;RenderStyle::accessBackgroundLayers, &amp;RenderStyle::backgroundLayers, &amp;FillLayer::isOriginSet, &amp;FillLayer::origin, &amp;FillLayer::setOrigin, &amp;FillLayer::clearOrigin, &amp;FillLayer::initialFillOrigin, &amp;CSSToStyleMap::mapFillOrigin&gt;::createHandler());
-    setPropertyHandler(CSSPropertyBackgroundPositionX, ApplyPropertyFillLayer&lt;Length, CSSPropertyBackgroundPositionX, BackgroundFillLayer, &amp;RenderStyle::accessBackgroundLayers, &amp;RenderStyle::backgroundLayers, &amp;FillLayer::isXPositionSet, &amp;FillLayer::xPosition, &amp;FillLayer::setXPosition, &amp;FillLayer::clearXPosition, &amp;FillLayer::initialFillXPosition, &amp;CSSToStyleMap::mapFillXPosition&gt;::createHandler());
-    setPropertyHandler(CSSPropertyBackgroundPositionY, ApplyPropertyFillLayer&lt;Length, CSSPropertyBackgroundPositionY, BackgroundFillLayer, &amp;RenderStyle::accessBackgroundLayers, &amp;RenderStyle::backgroundLayers, &amp;FillLayer::isYPositionSet, &amp;FillLayer::yPosition, &amp;FillLayer::setYPosition, &amp;FillLayer::clearYPosition, &amp;FillLayer::initialFillYPosition, &amp;CSSToStyleMap::mapFillYPosition&gt;::createHandler());
-    setPropertyHandler(CSSPropertyBackgroundRepeatX, ApplyPropertyFillLayer&lt;EFillRepeat, CSSPropertyBackgroundRepeatX, BackgroundFillLayer, &amp;RenderStyle::accessBackgroundLayers, &amp;RenderStyle::backgroundLayers, &amp;FillLayer::isRepeatXSet, &amp;FillLayer::repeatX, &amp;FillLayer::setRepeatX, &amp;FillLayer::clearRepeatX, &amp;FillLayer::initialFillRepeatX, &amp;CSSToStyleMap::mapFillRepeatX&gt;::createHandler());
-    setPropertyHandler(CSSPropertyBackgroundRepeatY, ApplyPropertyFillLayer&lt;EFillRepeat, CSSPropertyBackgroundRepeatY, BackgroundFillLayer, &amp;RenderStyle::accessBackgroundLayers, &amp;RenderStyle::backgroundLayers, &amp;FillLayer::isRepeatYSet, &amp;FillLayer::repeatY, &amp;FillLayer::setRepeatY, &amp;FillLayer::clearRepeatY, &amp;FillLayer::initialFillRepeatY, &amp;CSSToStyleMap::mapFillRepeatY&gt;::createHandler());
-    setPropertyHandler(CSSPropertyBackgroundSize, ApplyPropertyFillLayer&lt;FillSize, CSSPropertyBackgroundSize, BackgroundFillLayer, &amp;RenderStyle::accessBackgroundLayers, &amp;RenderStyle::backgroundLayers, &amp;FillLayer::isSizeSet, &amp;FillLayer::size, &amp;FillLayer::setSize, &amp;FillLayer::clearSize, &amp;FillLayer::initialFillSize, &amp;CSSToStyleMap::mapFillSize&gt;::createHandler());
-    setPropertyHandler(CSSPropertyWebkitBackgroundClip, CSSPropertyBackgroundClip);
-    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());
-    setPropertyHandler(CSSPropertyWebkitBackgroundOrigin, CSSPropertyBackgroundOrigin);
-    setPropertyHandler(CSSPropertyWebkitBackgroundSize, CSSPropertyBackgroundSize);
-    setPropertyHandler(CSSPropertyWebkitMaskClip, ApplyPropertyFillLayer&lt;EFillBox, CSSPropertyWebkitMaskClip, MaskFillLayer, &amp;RenderStyle::accessMaskLayers, &amp;RenderStyle::maskLayers, &amp;FillLayer::isClipSet, &amp;FillLayer::clip, &amp;FillLayer::setClip, &amp;FillLayer::clearClip, &amp;FillLayer::initialFillClip, &amp;CSSToStyleMap::mapFillClip&gt;::createHandler());
-    setPropertyHandler(CSSPropertyWebkitMaskComposite, ApplyPropertyFillLayer&lt;CompositeOperator, CSSPropertyWebkitMaskComposite, MaskFillLayer, &amp;RenderStyle::accessMaskLayers, &amp;RenderStyle::maskLayers, &amp;FillLayer::isCompositeSet, &amp;FillLayer::composite, &amp;FillLayer::setComposite, &amp;FillLayer::clearComposite, &amp;FillLayer::initialFillComposite, &amp;CSSToStyleMap::mapFillComposite&gt;::createHandler());
-    setPropertyHandler(CSSPropertyWebkitMaskOrigin, ApplyPropertyFillLayer&lt;EFillBox, CSSPropertyWebkitMaskOrigin, MaskFillLayer, &amp;RenderStyle::accessMaskLayers, &amp;RenderStyle::maskLayers, &amp;FillLayer::isOriginSet, &amp;FillLayer::origin, &amp;FillLayer::setOrigin, &amp;FillLayer::clearOrigin, &amp;FillLayer::initialFillOrigin, &amp;CSSToStyleMap::mapFillOrigin&gt;::createHandler());
-    setPropertyHandler(CSSPropertyWebkitMaskPositionX, ApplyPropertyFillLayer&lt;Length, CSSPropertyWebkitMaskPositionX, MaskFillLayer, &amp;RenderStyle::accessMaskLayers, &amp;RenderStyle::maskLayers, &amp;FillLayer::isXPositionSet, &amp;FillLayer::xPosition, &amp;FillLayer::setXPosition, &amp;FillLayer::clearXPosition, &amp;FillLayer::initialFillXPosition, &amp;CSSToStyleMap::mapFillXPosition&gt;::createHandler());
-    setPropertyHandler(CSSPropertyWebkitMaskPositionY, ApplyPropertyFillLayer&lt;Length, CSSPropertyWebkitMaskPositionY, MaskFillLayer, &amp;RenderStyle::accessMaskLayers, &amp;RenderStyle::maskLayers, &amp;FillLayer::isYPositionSet, &amp;FillLayer::yPosition, &amp;FillLayer::setYPosition, &amp;FillLayer::clearYPosition, &amp;FillLayer::initialFillYPosition, &amp;CSSToStyleMap::mapFillYPosition&gt;::createHandler());
-    setPropertyHandler(CSSPropertyWebkitMaskRepeatX, ApplyPropertyFillLayer&lt;EFillRepeat, CSSPropertyWebkitMaskRepeatX, MaskFillLayer, &amp;RenderStyle::accessMaskLayers, &amp;RenderStyle::maskLayers, &amp;FillLayer::isRepeatXSet, &amp;FillLayer::repeatX, &amp;FillLayer::setRepeatX, &amp;FillLayer::clearRepeatX, &amp;FillLayer::initialFillRepeatX, &amp;CSSToStyleMap::mapFillRepeatX&gt;::createHandler());
-    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());
-    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());
-    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());
-}
-
-}
</del></span></pre></div>
<a id="trunkSourceWebCorecssDeprecatedStyleBuilderh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/css/DeprecatedStyleBuilder.h (177868 => 177869)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/DeprecatedStyleBuilder.h        2015-01-02 20:07:40 UTC (rev 177868)
+++ trunk/Source/WebCore/css/DeprecatedStyleBuilder.h        2015-01-02 22:40:14 UTC (rev 177869)
</span><span class="lines">@@ -1,108 +0,0 @@
</span><del>-/*
- * Copyright (C) 2011 Google Inc. 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 DeprecatedStyleBuilder_h
-#define DeprecatedStyleBuilder_h
-
-#include &quot;CSSPropertyNames.h&quot;
-#include &quot;StylePropertyShorthand.h&quot;
-#include &lt;wtf/NeverDestroyed.h&gt;
-#include &lt;wtf/PassRefPtr.h&gt;
-#include &lt;wtf/RefCounted.h&gt;
-
-namespace WebCore {
-
-class CSSValue;
-class DeprecatedStyleBuilder;
-class StyleResolver;
-
-class PropertyHandler {
-public:
-    typedef void (*InheritFunction)(CSSPropertyID, StyleResolver*);
-    typedef void (*InitialFunction)(CSSPropertyID, StyleResolver*);
-    typedef void (*ApplyFunction)(CSSPropertyID, StyleResolver*, CSSValue*);
-    PropertyHandler() : m_inherit(0), m_initial(0), m_apply(0) { }
-    PropertyHandler(InheritFunction inherit, InitialFunction initial, ApplyFunction apply) : m_inherit(inherit), m_initial(initial), m_apply(apply) { }
-    void applyInheritValue(CSSPropertyID propertyID, StyleResolver* styleResolver) const { ASSERT(m_inherit); (*m_inherit)(propertyID, styleResolver); }
-    void applyInitialValue(CSSPropertyID propertyID, StyleResolver* styleResolver) const { ASSERT(m_initial); (*m_initial)(propertyID, styleResolver); }
-    void applyValue(CSSPropertyID propertyID, StyleResolver* styleResolver, CSSValue* value) const { ASSERT(m_apply); (*m_apply)(propertyID, styleResolver, value); }
-    bool isValid() const { return m_inherit &amp;&amp; m_initial &amp;&amp; m_apply; }
-    InheritFunction inheritFunction() const { return m_inherit; }
-    InitialFunction initialFunction() { return m_initial; }
-    ApplyFunction applyFunction() { return m_apply; }
-private:
-    InheritFunction m_inherit;
-    InitialFunction m_initial;
-    ApplyFunction m_apply;
-};
-
-class DeprecatedStyleBuilder {
-    WTF_MAKE_NONCOPYABLE(DeprecatedStyleBuilder); WTF_MAKE_FAST_ALLOCATED;
-public:
-    static const DeprecatedStyleBuilder&amp; sharedStyleBuilder();
-
-    const PropertyHandler&amp; propertyHandler(CSSPropertyID property) const
-    {
-        ASSERT(valid(property));
-        return m_propertyMap[index(property)];
-    }
-private:
-    DeprecatedStyleBuilder();
-    static int index(CSSPropertyID property)
-    {
-        return property - firstCSSProperty;
-    }
-
-    static bool valid(CSSPropertyID property)
-    {
-        int i = index(property);
-        return i &gt;= 0 &amp;&amp; i &lt; numCSSProperties;
-    }
-
-    void setPropertyHandler(CSSPropertyID property, const PropertyHandler&amp; handler)
-    {
-        ASSERT(valid(property));
-        ASSERT(!propertyHandler(property).isValid());
-        ASSERT_WITH_MESSAGE(!isExpandedShorthand(property), &quot;Shorthand property id = %d shouldn't be inserted into StyleBuilder. Shorthands should be expanded at parsing time.&quot;, property);
-        m_propertyMap[index(property)] = handler;
-    }
-
-    void setPropertyHandler(CSSPropertyID newProperty, CSSPropertyID equivalentProperty)
-    {
-        ASSERT(valid(newProperty));
-        ASSERT(valid(equivalentProperty));
-        ASSERT(!propertyHandler(newProperty).isValid());
-        ASSERT_WITH_MESSAGE(!isExpandedShorthand(newProperty), &quot;Shorthand property id = %d shouldn't be inserted into StyleBuilder. Shorthands should be expanded at parsing time.&quot;, newProperty);
-        ASSERT_WITH_MESSAGE(!isExpandedShorthand(equivalentProperty), &quot;Shorthand property id = %d shouldn't be inserted into StyleBuilder. Shorthands should be expanded at parsing time.&quot;, equivalentProperty);
-        m_propertyMap[index(newProperty)] = m_propertyMap[index(equivalentProperty)];
-    }
-
-    PropertyHandler m_propertyMap[numCSSProperties];
-
-    friend class WTF::NeverDestroyed&lt;DeprecatedStyleBuilder&gt;;
-};
-
-}
-
-#endif // DeprecatedStyleBuilder_h
</del></span></pre></div>
<a id="trunkSourceWebCorecssStyleResolvercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleResolver.cpp (177868 => 177869)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleResolver.cpp        2015-01-02 20:07:40 UTC (rev 177868)
+++ trunk/Source/WebCore/css/StyleResolver.cpp        2015-01-02 22:40:14 UTC (rev 177869)
</span><span class="lines">@@ -65,7 +65,6 @@
</span><span class="cx"> #include &quot;Counter.h&quot;
</span><span class="cx"> #include &quot;CounterContent.h&quot;
</span><span class="cx"> #include &quot;CursorList.h&quot;
</span><del>-#include &quot;DeprecatedStyleBuilder.h&quot;
</del><span class="cx"> #include &quot;DocumentStyleSheetCollection.h&quot;
</span><span class="cx"> #include &quot;ElementRuleCollector.h&quot;
</span><span class="cx"> #include &quot;FilterOperation.h&quot;
</span><span class="lines">@@ -260,7 +259,6 @@
</span><span class="cx"> #if ENABLE(CSS_DEVICE_ADAPTATION)
</span><span class="cx">     , m_viewportStyleResolver(ViewportStyleResolver::create(&amp;document))
</span><span class="cx"> #endif
</span><del>-    , m_deprecatedStyleBuilder(DeprecatedStyleBuilder::sharedStyleBuilder())
</del><span class="cx">     , m_styleMap(this)
</span><span class="cx"> {
</span><span class="cx">     Element* root = m_document.documentElement();
</span><span class="lines">@@ -1182,7 +1180,7 @@
</span><span class="cx">         // Try to match the new mask objects through the list from the old style.
</span><span class="cx">         // This should work perfectly and optimal when the list of masks remained
</span><span class="cx">         // the same and also work correctly (but slower) when they were reordered.
</span><del>-        FillLayer* newMaskLayer = newStyle-&gt;accessMaskLayers();
</del><ins>+        FillLayer* newMaskLayer = &amp;newStyle-&gt;ensureMaskLayers();
</ins><span class="cx">         int countOldStyleMaskImages = oldStyleMaskImages.size();
</span><span class="cx">         while (newMaskLayer &amp;&amp; countOldStyleMaskImages) {
</span><span class="cx">             RefPtr&lt;MaskImageOperation&gt; newMaskImage = newMaskLayer-&gt;maskImage();
</span><span class="lines">@@ -2181,19 +2179,7 @@
</span><span class="cx">     if (isInherit &amp;&amp; !state.parentStyle()-&gt;hasExplicitlyInheritedProperties() &amp;&amp; !CSSProperty::isInheritedProperty(id))
</span><span class="cx">         state.parentStyle()-&gt;setHasExplicitlyInheritedProperties();
</span><span class="cx"> 
</span><del>-    // Check lookup table for implementations and use when available.
-    const PropertyHandler&amp; handler = m_deprecatedStyleBuilder.propertyHandler(id);
-    if (handler.isValid()) {
-        if (isInherit)
-            handler.applyInheritValue(id, this);
-        else if (isInitial)
-            handler.applyInitialValue(id, this);
-        else
-            handler.applyValue(id, this, value);
-        return;
-    }
-
-    // Use the new StyleBuilder.
</del><ins>+    // Use the StyleBuilder.
</ins><span class="cx">     if (StyleBuilder::applyProperty(id, *this, *value, isInitial, isInherit))
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="lines">@@ -2814,7 +2800,7 @@
</span><span class="cx">     }
</span><span class="cx"> #endif
</span><span class="cx">     
</span><del>-    // These properties are aliased and DeprecatedStyleBuilder already applied the property on the prefixed version.
</del><ins>+    // These properties are aliased and StyleBuilder already applied the property on the prefixed version.
</ins><span class="cx">     case CSSPropertyAnimationDelay:
</span><span class="cx">     case CSSPropertyAnimationDirection:
</span><span class="cx">     case CSSPropertyAnimationDuration:
</span><span class="lines">@@ -2828,7 +2814,7 @@
</span><span class="cx">     case CSSPropertyTransitionProperty:
</span><span class="cx">     case CSSPropertyTransitionTimingFunction:
</span><span class="cx">         return;
</span><del>-    // These properties are implemented in the DeprecatedStyleBuilder lookup table or in the new StyleBuilder.
</del><ins>+    // These properties are implemented in the StyleBuilder lookup table or in the new StyleBuilder.
</ins><span class="cx">     case CSSPropertyBackgroundAttachment:
</span><span class="cx">     case CSSPropertyBackgroundClip:
</span><span class="cx">     case CSSPropertyBackgroundColor:
</span><span class="lines">@@ -3660,7 +3646,7 @@
</span><span class="cx"> 
</span><span class="cx">         switch (currentProperty) {
</span><span class="cx">         case CSSPropertyBackgroundImage: {
</span><del>-            for (FillLayer* backgroundLayer = m_state.style()-&gt;accessBackgroundLayers(); backgroundLayer; backgroundLayer = backgroundLayer-&gt;next()) {
</del><ins>+            for (FillLayer* backgroundLayer = &amp;m_state.style()-&gt;ensureBackgroundLayers(); backgroundLayer; backgroundLayer = backgroundLayer-&gt;next()) {
</ins><span class="cx">                 auto* styleImage = backgroundLayer-&gt;image();
</span><span class="cx">                 if (is&lt;StylePendingImage&gt;(styleImage))
</span><span class="cx">                     backgroundLayer-&gt;setImage(loadPendingImage(downcast&lt;StylePendingImage&gt;(*styleImage)));
</span><span class="lines">@@ -3720,7 +3706,7 @@
</span><span class="cx">             break;
</span><span class="cx">         }
</span><span class="cx">         case CSSPropertyWebkitMaskImage: {
</span><del>-            for (FillLayer* maskLayer = m_state.style()-&gt;accessMaskLayers(); maskLayer; maskLayer = maskLayer-&gt;next()) {
</del><ins>+            for (FillLayer* maskLayer = &amp;m_state.style()-&gt;ensureMaskLayers(); maskLayer; maskLayer = maskLayer-&gt;next()) {
</ins><span class="cx">                 RefPtr&lt;MaskImageOperation&gt; maskImage = maskLayer-&gt;maskImage();
</span><span class="cx">                 auto* styleImage = maskImage.get() ? maskImage-&gt;image() : nullptr;
</span><span class="cx">                 if (is&lt;StylePendingImage&gt;(styleImage))
</span></span></pre></div>
<a id="trunkSourceWebCorecssStyleResolverh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleResolver.h (177868 => 177869)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleResolver.h        2015-01-02 20:07:40 UTC (rev 177868)
+++ trunk/Source/WebCore/css/StyleResolver.h        2015-01-02 22:40:14 UTC (rev 177869)
</span><span class="lines">@@ -64,7 +64,6 @@
</span><span class="cx"> class CSSValue;
</span><span class="cx"> class ContainerNode;
</span><span class="cx"> class Document;
</span><del>-class DeprecatedStyleBuilder;
</del><span class="cx"> class Element;
</span><span class="cx"> class Frame;
</span><span class="cx"> class FrameView;
</span><span class="lines">@@ -533,14 +532,11 @@
</span><span class="cx">     RefPtr&lt;ViewportStyleResolver&gt; m_viewportStyleResolver;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    const DeprecatedStyleBuilder&amp; m_deprecatedStyleBuilder;
-
</del><span class="cx">     CSSToStyleMap m_styleMap;
</span><span class="cx">     InspectorCSSOMWrappers m_inspectorCSSOMWrappers;
</span><span class="cx"> 
</span><span class="cx">     State m_state;
</span><span class="cx"> 
</span><del>-    friend class DeprecatedStyleBuilder;
</del><span class="cx">     friend bool operator==(const MatchedProperties&amp;, const MatchedProperties&amp;);
</span><span class="cx">     friend bool operator!=(const MatchedProperties&amp;, const MatchedProperties&amp;);
</span><span class="cx">     friend bool operator==(const MatchRanges&amp;, const MatchRanges&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCorecssmakeproppl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/makeprop.pl (177868 => 177869)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/makeprop.pl        2015-01-02 20:07:40 UTC (rev 177868)
+++ trunk/Source/WebCore/css/makeprop.pl        2015-01-02 22:40:14 UTC (rev 177869)
</span><span class="lines">@@ -47,6 +47,7 @@
</span><span class="cx">   AutoFunctions =&gt; 1,
</span><span class="cx">   Converter =&gt; 1,
</span><span class="cx">   Custom =&gt; 1,
</span><ins>+  FillLayerProperty =&gt; 1,
</ins><span class="cx">   FontProperty =&gt; 1,
</span><span class="cx">   Getter =&gt; 1,
</span><span class="cx">   Initial =&gt; 1,
</span><span class="lines">@@ -374,7 +375,7 @@
</span><span class="cx">   return $renderStyle . &quot;-&gt;setVisitedLink&quot; . getNameForMethods($name);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-sub getAnimationClearMethod {
</del><ins>+sub getClearFunction {
</ins><span class="cx">   my $name = shift;
</span><span class="cx"> 
</span><span class="cx">   return &quot;clear&quot; . getNameForMethods($name);
</span><span class="lines">@@ -396,7 +397,7 @@
</span><span class="cx">   die &quot;Unrecognized animation property name.&quot;;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-sub getAnimationTestMethod {
</del><ins>+sub getTestFunction {
</ins><span class="cx">   my $name = shift;
</span><span class="cx"> 
</span><span class="cx">   return &quot;is&quot; . getNameForMethods($name) . &quot;Set&quot;;
</span><span class="lines">@@ -408,6 +409,36 @@
</span><span class="cx">   return &quot;mapAnimation&quot; . getNameForMethods($name);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+sub getLayersFunction {
+  my $name = shift;
+
+  return &quot;backgroundLayers&quot; if $name =~ /background-/;
+  return &quot;maskLayers&quot; if $name =~ /mask-/;
+  die &quot;Unrecognized FillLayer property name.&quot;;
+}
+
+sub getLayersAccessorFunction {
+  my $name = shift;
+
+  return &quot;ensureBackgroundLayers&quot; if $name =~ /background-/;
+  return &quot;ensureMaskLayers&quot; if $name =~ /mask-/;
+  die &quot;Unrecognized FillLayer property name.&quot;;
+}
+
+sub getFillLayerType {
+my $name = shift;
+
+  return &quot;BackgroundFillLayer&quot; if $name =~ /background-/;
+  return &quot;MaskFillLayer&quot; if $name =~ /mask-/;
+}
+
+sub getFillLayerMapfunction {
+  my $name = shift;
+
+  return &quot;mapFill&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">@@ -428,7 +459,11 @@
</span><span class="cx">     $propertiesWithStyleBuilderOptions{$name}{&quot;Setter&quot;} = &quot;set&quot; . $nameForMethods;
</span><span class="cx">   }
</span><span class="cx">   if (!exists($propertiesWithStyleBuilderOptions{$name}{&quot;Initial&quot;})) {
</span><del>-    $propertiesWithStyleBuilderOptions{$name}{&quot;Initial&quot;} = &quot;initial&quot; . $nameForMethods;
</del><ins>+    if (exists($propertiesWithStyleBuilderOptions{$name}{&quot;FillLayerProperty&quot;})) {
+      $propertiesWithStyleBuilderOptions{$name}{&quot;Initial&quot;} = &quot;initialFill&quot; . $nameForMethods;
+    } else {
+      $propertiesWithStyleBuilderOptions{$name}{&quot;Initial&quot;} = &quot;initial&quot; . $nameForMethods;
+    }
</ins><span class="cx">   }
</span><span class="cx">   if (!exists($propertiesWithStyleBuilderOptions{$name}{&quot;Custom&quot;})) {
</span><span class="cx">     $propertiesWithStyleBuilderOptions{$name}{&quot;Custom&quot;} = &quot;&quot;;
</span><span class="lines">@@ -501,7 +536,7 @@
</span><span class="cx">     $setterContent .= $indent . &quot;list.animation(0).setAnimationMode(Animation::AnimateAll);\n&quot;;
</span><span class="cx">   }
</span><span class="cx">   $setterContent .= $indent . &quot;for (size_t i = 1; i &lt; list.size(); ++i)\n&quot;;
</span><del>-  $setterContent .= $indent . &quot;    list.animation(i).&quot; . getAnimationClearMethod($name) . &quot;();\n&quot;;
</del><ins>+  $setterContent .= $indent . &quot;    list.animation(i).&quot; . getClearFunction($name) . &quot;();\n&quot;;
</ins><span class="cx"> 
</span><span class="cx">   return $setterContent;
</span><span class="cx"> }
</span><span class="lines">@@ -514,7 +549,7 @@
</span><span class="cx">   $setterContent .= $indent . &quot;AnimationList&amp; list = styleResolver.style()-&gt;&quot; . getEnsureAnimationsOrTransitionsMethod($name) . &quot;();\n&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;const AnimationList* parentList = styleResolver.parentStyle()-&gt;&quot; . getAnimationsOrTransitionsMethod($name) . &quot;();\n&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;size_t i = 0, parentSize = parentList ? parentList-&gt;size() : 0;\n&quot;;
</span><del>-  $setterContent .= $indent . &quot;for ( ; i &lt; parentSize &amp;&amp; parentList-&gt;animation(i).&quot; . getAnimationTestMethod($name) . &quot;(); ++i) {\n&quot;;
</del><ins>+  $setterContent .= $indent . &quot;for ( ; i &lt; parentSize &amp;&amp; parentList-&gt;animation(i).&quot; . getTestFunction($name) . &quot;(); ++i) {\n&quot;;
</ins><span class="cx">   $setterContent .= $indent . &quot;    if (list.size() &lt;= i)\n&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;        list.append(Animation::create());\n&quot;;
</span><span class="cx">   my $getter = $propertiesWithStyleBuilderOptions{$name}{&quot;Getter&quot;};
</span><span class="lines">@@ -525,7 +560,7 @@
</span><span class="cx">   $setterContent .= &quot;\n&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;/* Reset any remaining animations to not have the property set. */\n&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;for ( ; i &lt; list.size(); ++i)\n&quot;;
</span><del>-  $setterContent .= $indent . &quot;    list.animation(i).&quot; . getAnimationClearMethod($name) . &quot;();\n&quot;;
</del><ins>+  $setterContent .= $indent . &quot;    list.animation(i).&quot; . getClearFunction($name) . &quot;();\n&quot;;
</ins><span class="cx"> 
</span><span class="cx">   return $setterContent;
</span><span class="cx"> }
</span><span class="lines">@@ -553,12 +588,101 @@
</span><span class="cx">   $setterContent .= $indent . &quot;}\n&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;for ( ; childIndex &lt; list.size(); ++childIndex) {\n&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;    /* Reset all remaining animations to not have the property set. */\n&quot;;
</span><del>-  $setterContent .= $indent . &quot;    list.animation(childIndex).&quot; . getAnimationClearMethod($name) . &quot;();\n&quot;;
</del><ins>+  $setterContent .= $indent . &quot;    list.animation(childIndex).&quot; . getClearFunction($name) . &quot;();\n&quot;;
</ins><span class="cx">   $setterContent .= $indent . &quot;}\n&quot;;
</span><span class="cx"> 
</span><span class="cx">   return $setterContent;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+sub generateFillLayerPropertyInitialValueSetter {
+  my $name = shift;
+  my $indent = shift;
+
+  my $getter = $propertiesWithStyleBuilderOptions{$name}{&quot;Getter&quot;};
+  my $setter = $propertiesWithStyleBuilderOptions{$name}{&quot;Setter&quot;};
+  my $clearFunction = getClearFunction($name);
+  my $testFunction = getTestFunction($name);
+  my $initial = &quot;FillLayer::&quot; . $propertiesWithStyleBuilderOptions{$name}{&quot;Initial&quot;} . &quot;(&quot; . getFillLayerType($name) . &quot;)&quot;;
+
+  my $setterContent = &quot;&quot;;
+  $setterContent .= $indent . &quot;// Check for (single-layer) no-op before clearing anything.\n&quot;;
+  $setterContent .= $indent . &quot;const FillLayer&amp; layers = *styleResolver.style()-&gt;&quot; . getLayersFunction($name) . &quot;();\n&quot;;
+  $setterContent .= $indent . &quot;if (!layers.next() &amp;&amp; (!layers.&quot; . $testFunction . &quot;() || layers.&quot; . $getter . &quot;() == $initial))\n&quot;;
+  $setterContent .= $indent . &quot;    return;\n&quot;;
+  $setterContent .= &quot;\n&quot;;
+  $setterContent .= $indent . &quot;FillLayer* child = &amp;styleResolver.style()-&gt;&quot; . getLayersAccessorFunction($name) . &quot;();\n&quot;;
+  $setterContent .= $indent . &quot;child-&gt;&quot; . $setter . &quot;(&quot; . $initial . &quot;);\n&quot;;
+  $setterContent .= $indent . &quot;for (child = child-&gt;next(); child; child = child-&gt;next())\n&quot;;
+  $setterContent .= $indent . &quot;    child-&gt;&quot; . $clearFunction . &quot;();\n&quot;;
+
+  return $setterContent;
+}
+
+sub generateFillLayerPropertyInheritValueSetter {
+  my $name = shift;
+  my $indent = shift;
+
+  my $getter = $propertiesWithStyleBuilderOptions{$name}{&quot;Getter&quot;};
+  my $setter = $propertiesWithStyleBuilderOptions{$name}{&quot;Setter&quot;};
+  my $clearFunction = getClearFunction($name);
+  my $testFunction = getTestFunction($name);
+
+  my $setterContent = &quot;&quot;;
+  $setterContent .= $indent . &quot;// Check for no-op before copying anything.\n&quot;;
+  $setterContent .= $indent . &quot;if (*styleResolver.parentStyle()-&gt;&quot; . getLayersFunction($name) .&quot;() == *styleResolver.style()-&gt;&quot; . getLayersFunction($name) . &quot;())\n&quot;;
+  $setterContent .= $indent . &quot;    return;\n&quot;;
+  $setterContent .= &quot;\n&quot;;
+  $setterContent .= $indent . &quot;auto* child = &amp;styleResolver.style()-&gt;&quot; . getLayersAccessorFunction($name) . &quot;();\n&quot;;
+  $setterContent .= $indent . &quot;FillLayer* previousChild = nullptr;\n&quot;;
+  $setterContent .= $indent . &quot;for (auto* parent = styleResolver.parentStyle()-&gt;&quot; . getLayersFunction($name) . &quot;(); parent &amp;&amp; parent-&gt;&quot; . $testFunction . &quot;(); parent = parent-&gt;next()) {\n&quot;;
+  $setterContent .= $indent . &quot;    if (!child) {\n&quot;;
+  $setterContent .= $indent . &quot;        previousChild-&gt;setNext(std::make_unique&lt;FillLayer&gt;(&quot; . getFillLayerType($name) . &quot;));\n&quot;;
+  $setterContent .= $indent . &quot;        child = previousChild-&gt;next();\n&quot;;
+  $setterContent .= $indent . &quot;    }\n&quot;;
+  $setterContent .= $indent . &quot;    child-&gt;&quot; . $setter . &quot;(parent-&gt;&quot; . $getter . &quot;());\n&quot;;
+  $setterContent .= $indent . &quot;    previousChild = child;\n&quot;;
+  $setterContent .= $indent . &quot;    child = previousChild-&gt;next();\n&quot;;
+  $setterContent .= $indent . &quot;}\n&quot;;
+  $setterContent .= $indent . &quot;for (; child; child = child-&gt;next())\n&quot;;
+  $setterContent .= $indent . &quot;    child-&gt;&quot; . $clearFunction . &quot;();\n&quot;;
+
+  return $setterContent;
+}
+
+sub generateFillLayerPropertyValueSetter {
+  my $name = shift;
+  my $indent = shift;
+
+  my $CSSPropertyId = &quot;CSSProperty&quot; . $nameToId{$name};
+
+  my $setterContent = &quot;&quot;;
+  $setterContent .= $indent . &quot;FillLayer* child = &amp;styleResolver.style()-&gt;&quot; . getLayersAccessorFunction($name) . &quot;();\n&quot;;
+  $setterContent .= $indent . &quot;FillLayer* previousChild = nullptr;\n&quot;;
+  $setterContent .= $indent . &quot;if (is&lt;CSSValueList&gt;(value)\n&quot;;
+  $setterContent .= &quot;#if ENABLE(CSS_IMAGE_SET)\n&quot;;
+  $setterContent .= $indent . &quot;&amp;&amp; !is&lt;CSSImageSetValue&gt;(value)\n&quot;;
+  $setterContent .= &quot;#endif\n&quot;;
+  $setterContent .= $indent . &quot;) {\n&quot;;
+  $setterContent .= $indent . &quot;    // Walk each value and put it into a layer, creating new layers as needed.\n&quot;;
+  $setterContent .= $indent . &quot;    for (auto&amp; item : downcast&lt;CSSValueList&gt;(value)) {\n&quot;;
+  $setterContent .= $indent . &quot;        if (!child) {\n&quot;;
+  $setterContent .= $indent . &quot;            previousChild-&gt;setNext(std::make_unique&lt;FillLayer&gt;(&quot; . getFillLayerType($name) . &quot;));\n&quot;;
+  $setterContent .= $indent . &quot;            child = previousChild-&gt;next();\n&quot;;
+  $setterContent .= $indent . &quot;        }\n&quot;;
+  $setterContent .= $indent . &quot;        styleResolver.styleMap()-&gt;&quot; . getFillLayerMapfunction($name) . &quot;(&quot; . $CSSPropertyId . &quot;, *child, item);\n&quot;;
+  $setterContent .= $indent . &quot;        previousChild = child;\n&quot;;
+  $setterContent .= $indent . &quot;        child = child-&gt;next();\n&quot;;
+  $setterContent .= $indent . &quot;    }\n&quot;;
+  $setterContent .= $indent . &quot;} else {\n&quot;;
+  $setterContent .= $indent . &quot;    styleResolver.styleMap()-&gt;&quot; . getFillLayerMapfunction($name) . &quot;(&quot; . $CSSPropertyId . &quot;, *child, value);\n&quot;;
+  $setterContent .= $indent . &quot;    child = child-&gt;next();\n&quot;;
+  $setterContent .= $indent . &quot;}\n&quot;;
+  $setterContent .= $indent . &quot;for (; child; child = child-&gt;next())\n&quot;;
+  $setterContent .= $indent . &quot;    child-&gt;&quot; . getClearFunction($name) . &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">@@ -580,6 +704,8 @@
</span><span class="cx">     $setterContent .= $indent . &quot;    FontDescription fontDescription = styleResolver.fontDescription();\n&quot;;
</span><span class="cx">     $setterContent .= $indent . &quot;    fontDescription.&quot; . $setter . &quot;(FontDescription::&quot; . $initial . &quot;());\n&quot;;
</span><span class="cx">     $setterContent .= $indent . &quot;    styleResolver.setFontDescription(fontDescription);\n&quot;;
</span><ins>+  } elsif (exists $propertiesWithStyleBuilderOptions{$name}{&quot;FillLayerProperty&quot;}) {
+    $setterContent .= generateFillLayerPropertyInitialValueSetter($name, $indent . &quot;    &quot;);
</ins><span class="cx">   } else {
</span><span class="cx">     my $setValue = $style . &quot;-&gt;&quot; . $setter;
</span><span class="cx">     $setterContent .= $indent . &quot;    &quot; . $setValue . &quot;(RenderStyle::&quot; . $initial . &quot;());\n&quot;;
</span><span class="lines">@@ -622,6 +748,9 @@
</span><span class="cx">     $setterContent .= $indent . &quot;    fontDescription.&quot; . $setter . &quot;(styleResolver.parentFontDescription().&quot; . $getter . &quot;());\n&quot;;
</span><span class="cx">     $setterContent .= $indent . &quot;    styleResolver.setFontDescription(fontDescription);\n&quot;;
</span><span class="cx">     $didCallSetValue = 1;
</span><ins>+  } elsif (exists $propertiesWithStyleBuilderOptions{$name}{&quot;FillLayerProperty&quot;}) {
+    $setterContent .= generateFillLayerPropertyInheritValueSetter($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; .  $getter . &quot;()&quot;;
</span><span class="lines">@@ -671,6 +800,9 @@
</span><span class="cx">     $setterContent .= $indent . &quot;    fontDescription.&quot; . $setter . &quot;(&quot; . $convertedValue . &quot;);\n&quot;;
</span><span class="cx">     $setterContent .= $indent . &quot;    styleResolver.setFontDescription(fontDescription);\n&quot;;
</span><span class="cx">     $didCallSetValue = 1;
</span><ins>+  } elsif (exists $propertiesWithStyleBuilderOptions{$name}{&quot;FillLayerProperty&quot;}) {
+    $setterContent .= generateFillLayerPropertyValueSetter($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; . $setter;
</span></span></pre></div>
<a id="trunkSourceWebCorepageanimationCSSPropertyAnimationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/animation/CSSPropertyAnimation.cpp (177868 => 177869)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/animation/CSSPropertyAnimation.cpp        2015-01-02 20:07:40 UTC (rev 177868)
+++ trunk/Source/WebCore/page/animation/CSSPropertyAnimation.cpp        2015-01-02 22:40:14 UTC (rev 177869)
</span><span class="lines">@@ -920,7 +920,7 @@
</span><span class="cx"> class FillLayersPropertyWrapper : public AnimationPropertyWrapperBase {
</span><span class="cx"> public:
</span><span class="cx">     typedef const FillLayer* (RenderStyle::*LayersGetter)() const;
</span><del>-    typedef FillLayer* (RenderStyle::*LayersAccessor)();
</del><ins>+    typedef FillLayer&amp; (RenderStyle::*LayersAccessor)();
</ins><span class="cx"> 
</span><span class="cx">     FillLayersPropertyWrapper(CSSPropertyID prop, LayersGetter getter, LayersAccessor accessor)
</span><span class="cx">         : AnimationPropertyWrapperBase(prop)
</span><span class="lines">@@ -969,7 +969,7 @@
</span><span class="cx">     {
</span><span class="cx">         const FillLayer* aLayer = (a-&gt;*m_layersGetter)();
</span><span class="cx">         const FillLayer* bLayer = (b-&gt;*m_layersGetter)();
</span><del>-        FillLayer* dstLayer = (dst-&gt;*m_layersAccessor)();
</del><ins>+        FillLayer* dstLayer = &amp;(dst-&gt;*m_layersAccessor)();
</ins><span class="cx"> 
</span><span class="cx">         while (aLayer &amp;&amp; bLayer &amp;&amp; dstLayer) {
</span><span class="cx">             m_fillLayerPropertyWrapper-&gt;blend(anim, dstLayer, aLayer, bLayer, progress);
</span><span class="lines">@@ -1188,7 +1188,7 @@
</span><span class="cx"> 
</span><span class="cx">         new PropertyWrapperVisitedAffectedColor(CSSPropertyBackgroundColor, &amp;RenderStyle::backgroundColor, &amp;RenderStyle::setBackgroundColor, &amp;RenderStyle::visitedLinkBackgroundColor, &amp;RenderStyle::setVisitedLinkBackgroundColor),
</span><span class="cx"> 
</span><del>-        new FillLayersPropertyWrapper(CSSPropertyBackgroundImage, &amp;RenderStyle::backgroundLayers, &amp;RenderStyle::accessBackgroundLayers),
</del><ins>+        new FillLayersPropertyWrapper(CSSPropertyBackgroundImage, &amp;RenderStyle::backgroundLayers, &amp;RenderStyle::ensureBackgroundLayers),
</ins><span class="cx">         new StyleImagePropertyWrapper(CSSPropertyListStyleImage, &amp;RenderStyle::listStyleImage, &amp;RenderStyle::setListStyleImage),
</span><span class="cx">         new MaskImagePropertyWrapper(),
</span><span class="cx"> 
</span><span class="lines">@@ -1200,14 +1200,14 @@
</span><span class="cx">         new StyleImagePropertyWrapper(CSSPropertyWebkitMaskBoxImageSource, &amp;RenderStyle::maskBoxImageSource, &amp;RenderStyle::setMaskBoxImageSource),
</span><span class="cx">         new PropertyWrapper&lt;const NinePieceImage&amp;&gt;(CSSPropertyWebkitMaskBoxImage, &amp;RenderStyle::maskBoxImage, &amp;RenderStyle::setMaskBoxImage),
</span><span class="cx"> 
</span><del>-        new FillLayersPropertyWrapper(CSSPropertyBackgroundPositionX, &amp;RenderStyle::backgroundLayers, &amp;RenderStyle::accessBackgroundLayers),
-        new FillLayersPropertyWrapper(CSSPropertyBackgroundPositionY, &amp;RenderStyle::backgroundLayers, &amp;RenderStyle::accessBackgroundLayers),
-        new FillLayersPropertyWrapper(CSSPropertyBackgroundSize, &amp;RenderStyle::backgroundLayers, &amp;RenderStyle::accessBackgroundLayers),
-        new FillLayersPropertyWrapper(CSSPropertyWebkitBackgroundSize, &amp;RenderStyle::backgroundLayers, &amp;RenderStyle::accessBackgroundLayers),
</del><ins>+        new FillLayersPropertyWrapper(CSSPropertyBackgroundPositionX, &amp;RenderStyle::backgroundLayers, &amp;RenderStyle::ensureBackgroundLayers),
+        new FillLayersPropertyWrapper(CSSPropertyBackgroundPositionY, &amp;RenderStyle::backgroundLayers, &amp;RenderStyle::ensureBackgroundLayers),
+        new FillLayersPropertyWrapper(CSSPropertyBackgroundSize, &amp;RenderStyle::backgroundLayers, &amp;RenderStyle::ensureBackgroundLayers),
+        new FillLayersPropertyWrapper(CSSPropertyWebkitBackgroundSize, &amp;RenderStyle::backgroundLayers, &amp;RenderStyle::ensureBackgroundLayers),
</ins><span class="cx"> 
</span><del>-        new FillLayersPropertyWrapper(CSSPropertyWebkitMaskPositionX, &amp;RenderStyle::maskLayers, &amp;RenderStyle::accessMaskLayers),
-        new FillLayersPropertyWrapper(CSSPropertyWebkitMaskPositionY, &amp;RenderStyle::maskLayers, &amp;RenderStyle::accessMaskLayers),
-        new FillLayersPropertyWrapper(CSSPropertyWebkitMaskSize, &amp;RenderStyle::maskLayers, &amp;RenderStyle::accessMaskLayers),
</del><ins>+        new FillLayersPropertyWrapper(CSSPropertyWebkitMaskPositionX, &amp;RenderStyle::maskLayers, &amp;RenderStyle::ensureMaskLayers),
+        new FillLayersPropertyWrapper(CSSPropertyWebkitMaskPositionY, &amp;RenderStyle::maskLayers, &amp;RenderStyle::ensureMaskLayers),
+        new FillLayersPropertyWrapper(CSSPropertyWebkitMaskSize, &amp;RenderStyle::maskLayers, &amp;RenderStyle::ensureMaskLayers),
</ins><span class="cx"> 
</span><span class="cx">         new PropertyWrapper&lt;float&gt;(CSSPropertyFontSize,
</span><span class="cx">             // Must pass a specified size to setFontSize if Text Autosizing is enabled, but a computed size
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleFillLayercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/FillLayer.cpp (177868 => 177869)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/FillLayer.cpp        2015-01-02 20:07:40 UTC (rev 177868)
+++ trunk/Source/WebCore/rendering/style/FillLayer.cpp        2015-01-02 22:40:14 UTC (rev 177869)
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx">     , m_composite(FillLayer::initialFillComposite(type))
</span><span class="cx">     , m_sizeType(FillLayer::initialFillSizeType(type))
</span><span class="cx">     , m_blendMode(FillLayer::initialFillBlendMode(type))
</span><del>-    , m_maskSourceType(FillLayer::initialMaskSourceType(type))
</del><ins>+    , m_maskSourceType(FillLayer::initialFillMaskSourceType(type))
</ins><span class="cx">     , m_imageSet(false)
</span><span class="cx">     , m_attachmentSet(false)
</span><span class="cx">     , m_clipSet(false)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleFillLayerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/FillLayer.h (177868 => 177869)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/FillLayer.h        2015-01-02 20:07:40 UTC (rev 177868)
+++ trunk/Source/WebCore/rendering/style/FillLayer.h        2015-01-02 22:40:14 UTC (rev 177869)
</span><span class="lines">@@ -172,7 +172,7 @@
</span><span class="cx">     static Length initialFillXPosition(EFillLayerType) { return Length(0.0f, Percent); }
</span><span class="cx">     static Length initialFillYPosition(EFillLayerType) { return Length(0.0f, Percent); }
</span><span class="cx">     static StyleImage* initialFillImage(EFillLayerType) { return 0; }
</span><del>-    static EMaskSourceType initialMaskSourceType(EFillLayerType) { return MaskAlpha; }
</del><ins>+    static EMaskSourceType initialFillMaskSourceType(EFillLayerType) { return MaskAlpha; }
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     friend class RenderStyle;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleRenderStyleh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/RenderStyle.h (177868 => 177869)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/RenderStyle.h        2015-01-02 20:07:40 UTC (rev 177868)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.h        2015-01-02 22:40:14 UTC (rev 177869)
</span><span class="lines">@@ -123,7 +123,6 @@
</span><span class="cx"> class RenderStyle: public RefCounted&lt;RenderStyle&gt; {
</span><span class="cx">     friend class CSSPropertyAnimationWrapperMap; // Used by CSS animations. We can't allow them to animate based off visited colors.
</span><span class="cx">     friend class ApplyStyleCommand; // Editing has to only reveal unvisited info.
</span><del>-    friend class DeprecatedStyleBuilder; // Sets members directly.
</del><span class="cx">     friend class EditingStyle; // Editing has to only reveal unvisited info.
</span><span class="cx">     friend class ComputedStyleExtractor; // Ignores visited styles, so needs to be able to see unvisited info.
</span><span class="cx">     friend class PropertyWrapperMaybeInvalidColor; // Used by CSS animations. We can't allow them to animate based off visited colors.
</span><span class="lines">@@ -797,7 +796,7 @@
</span><span class="cx">     const Length&amp; backgroundYPosition() const { return m_background-&gt;background().yPosition(); }
</span><span class="cx">     EFillSizeType backgroundSizeType() const { return m_background-&gt;background().sizeType(); }
</span><span class="cx">     const LengthSize&amp; backgroundSizeLength() const { return m_background-&gt;background().sizeLength(); }
</span><del>-    FillLayer* accessBackgroundLayers() { return &amp;(m_background.access()-&gt;m_background); }
</del><ins>+    FillLayer&amp; ensureBackgroundLayers() { return m_background.access()-&gt;m_background; }
</ins><span class="cx">     const FillLayer* backgroundLayers() const { return &amp;(m_background-&gt;background()); }
</span><span class="cx"> 
</span><span class="cx">     EFillRepeat maskRepeatX() const { return static_cast&lt;EFillRepeat&gt;(rareNonInheritedData-&gt;m_mask.repeatX()); }
</span><span class="lines">@@ -809,7 +808,7 @@
</span><span class="cx">     const Length&amp; maskYPosition() const { return rareNonInheritedData-&gt;m_mask.yPosition(); }
</span><span class="cx">     EFillSizeType maskSizeType() const { return rareNonInheritedData-&gt;m_mask.sizeType(); }
</span><span class="cx">     const LengthSize&amp; maskSizeLength() const { return rareNonInheritedData-&gt;m_mask.sizeLength(); }
</span><del>-    FillLayer* accessMaskLayers() { return &amp;(rareNonInheritedData.access()-&gt;m_mask); }
</del><ins>+    FillLayer&amp; ensureMaskLayers() { return rareNonInheritedData.access()-&gt;m_mask; }
</ins><span class="cx">     const FillLayer* maskLayers() const { return &amp;(rareNonInheritedData-&gt;m_mask); }
</span><span class="cx">     const NinePieceImage&amp; maskBoxImage() const { return rareNonInheritedData-&gt;m_maskBoxImage; }
</span><span class="cx">     StyleImage* maskBoxImageSource() const { return rareNonInheritedData-&gt;m_maskBoxImage.image(); }
</span><span class="lines">@@ -1364,8 +1363,8 @@
</span><span class="cx">     void adjustBackgroundLayers()
</span><span class="cx">     {
</span><span class="cx">         if (backgroundLayers()-&gt;next()) {
</span><del>-            accessBackgroundLayers()-&gt;cullEmptyLayers();
-            accessBackgroundLayers()-&gt;fillUnsetProperties();
</del><ins>+            ensureBackgroundLayers().cullEmptyLayers();
+            ensureBackgroundLayers().fillUnsetProperties();
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -1375,8 +1374,8 @@
</span><span class="cx">     void adjustMaskLayers()
</span><span class="cx">     {
</span><span class="cx">         if (maskLayers()-&gt;next()) {
</span><del>-            accessMaskLayers()-&gt;cullEmptyLayers();
-            accessMaskLayers()-&gt;fillUnsetProperties();
</del><ins>+            ensureMaskLayers().cullEmptyLayers();
+            ensureMaskLayers().fillUnsetProperties();
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>