<!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>[172642] trunk</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/172642">172642</a></dd>
<dt>Author</dt> <dd>krit@webkit.org</dd>
<dt>Date</dt> <dd>2014-08-15 12:42:38 -0700 (Fri, 15 Aug 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Turn r/rx/ry to presentation attributes
https://bugs.webkit.org/show_bug.cgi?id=135978

Patch by Dirk Schulze &lt;krit@webkit.org&gt; on 2014-08-15
Reviewed by Dean Jackson.

This follows the patch for width and height presentation attributes and
Source/WebCore:

turns rx, ry and r to presentation attributes as well:

​http://trac.webkit.org/changeset/171341

Extended existing tests.

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp:
(WebCore::isSimpleLengthPropertyID):
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
* css/SVGCSSParser.cpp:
(WebCore::CSSParser::parseSVGValue):
* css/SVGCSSPropertyNames.in:
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
* rendering/style/RenderStyle.h:
* rendering/style/SVGRenderStyle.h:
(WebCore::SVGRenderStyle::setR):
(WebCore::SVGRenderStyle::setRx):
(WebCore::SVGRenderStyle::setRy):
(WebCore::SVGRenderStyle::r):
(WebCore::SVGRenderStyle::rx):
(WebCore::SVGRenderStyle::ry):
* rendering/style/SVGRenderStyleDefs.cpp:
(WebCore::StyleLayoutData::StyleLayoutData):
(WebCore::StyleLayoutData::operator==):
* rendering/style/SVGRenderStyleDefs.h:
* rendering/svg/RenderSVGEllipse.cpp:
(WebCore::RenderSVGEllipse::calculateRadiiAndCenter):
* rendering/svg/SVGPathData.cpp:
(WebCore::updatePathFromCircleElement):
(WebCore::updatePathFromEllipseElement):
(WebCore::updatePathFromRectElement):
(WebCore::updatePathFromLineElement): Deleted.
* svg/SVGCircleElement.cpp:
(WebCore::SVGCircleElement::svgAttributeChanged):
* svg/SVGElement.cpp:
(WebCore::populateAttributeNameToCSSPropertyIDMap):
(WebCore::populateCSSPropertyWithSVGDOMNameToAnimatedPropertyTypeMap):
* svg/SVGEllipseElement.cpp:
(WebCore::SVGEllipseElement::svgAttributeChanged):
* svg/SVGRectElement.cpp:
(WebCore::SVGRectElement::svgAttributeChanged):

LayoutTests:

turns r, rx and ry to presentation attributes as well:

​http://trac.webkit.org/changeset/171341

* svg/css/parse-length.html:
* transitions/svg-layout-transition-expected.txt:
* transitions/svg-layout-transition.html:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestssvgcssparselengthhtml">trunk/LayoutTests/svg/css/parse-length.html</a></li>
<li><a href="#trunkLayoutTeststransitionssvglayouttransitionexpectedtxt">trunk/LayoutTests/transitions/svg-layout-transition-expected.txt</a></li>
<li><a href="#trunkLayoutTeststransitionssvglayouttransitionhtml">trunk/LayoutTests/transitions/svg-layout-transition.html</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorecssCSSComputedStyleDeclarationcpp">trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSParsercpp">trunk/Source/WebCore/css/CSSParser.cpp</a></li>
<li><a href="#trunkSourceWebCorecssDeprecatedStyleBuildercpp">trunk/Source/WebCore/css/DeprecatedStyleBuilder.cpp</a></li>
<li><a href="#trunkSourceWebCorecssSVGCSSParsercpp">trunk/Source/WebCore/css/SVGCSSParser.cpp</a></li>
<li><a href="#trunkSourceWebCorecssSVGCSSPropertyNamesin">trunk/Source/WebCore/css/SVGCSSPropertyNames.in</a></li>
<li><a href="#trunkSourceWebCorepageanimationCSSPropertyAnimationcpp">trunk/Source/WebCore/page/animation/CSSPropertyAnimation.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleRenderStyleh">trunk/Source/WebCore/rendering/style/RenderStyle.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleSVGRenderStyleh">trunk/Source/WebCore/rendering/style/SVGRenderStyle.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleSVGRenderStyleDefscpp">trunk/Source/WebCore/rendering/style/SVGRenderStyleDefs.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleSVGRenderStyleDefsh">trunk/Source/WebCore/rendering/style/SVGRenderStyleDefs.h</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgRenderSVGEllipsecpp">trunk/Source/WebCore/rendering/svg/RenderSVGEllipse.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgSVGPathDatacpp">trunk/Source/WebCore/rendering/svg/SVGPathData.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGCircleElementcpp">trunk/Source/WebCore/svg/SVGCircleElement.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGElementcpp">trunk/Source/WebCore/svg/SVGElement.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGEllipseElementcpp">trunk/Source/WebCore/svg/SVGEllipseElement.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGRectElementcpp">trunk/Source/WebCore/svg/SVGRectElement.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (172641 => 172642)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2014-08-15 19:38:10 UTC (rev 172641)
+++ trunk/LayoutTests/ChangeLog        2014-08-15 19:42:38 UTC (rev 172642)
</span><span class="lines">@@ -1,5 +1,21 @@
</span><span class="cx"> 2014-08-15  Dirk Schulze  &lt;krit@webkit.org&gt;
</span><span class="cx"> 
</span><ins>+        Turn r/rx/ry to presentation attributes
+        https://bugs.webkit.org/show_bug.cgi?id=135978
+
+        Reviewed by Dean Jackson.
+
+        This follows the patch for width and height presentation attributes and
+        turns r, rx and ry to presentation attributes as well:
+
+        ​http://trac.webkit.org/changeset/171341
+
+        * svg/css/parse-length.html:
+        * transitions/svg-layout-transition-expected.txt:
+        * transitions/svg-layout-transition.html:
+
+2014-08-15  Dirk Schulze  &lt;krit@webkit.org&gt;
+
</ins><span class="cx">         Turn cx/cy to presentation attributes
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=135975
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestssvgcssparselengthhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/svg/css/parse-length.html (172641 => 172642)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/css/parse-length.html        2014-08-15 19:38:10 UTC (rev 172641)
+++ trunk/LayoutTests/svg/css/parse-length.html        2014-08-15 19:42:38 UTC (rev 172642)
</span><span class="lines">@@ -50,6 +50,33 @@
</span><span class="cx"> testComputed(&quot;cy&quot;, &quot;20%&quot;, &quot;20%&quot;);
</span><span class="cx"> testComputed(&quot;cy&quot;, &quot;-200px&quot;, &quot;-200px&quot;);
</span><span class="cx"> 
</span><ins>+// Test 'r'.
+testComputed(&quot;r&quot;, &quot;  100&quot;, &quot;100px&quot;);
+testComputed(&quot;r&quot;, &quot;100   &quot;, &quot;100px&quot;);
+testComputed(&quot;r&quot;, &quot;100px&quot;, &quot;100px&quot;);
+testComputed(&quot;r&quot;, &quot;1em&quot;, &quot;16px&quot;);
+testComputed(&quot;r&quot;, &quot;1ex&quot;, &quot;12.800000190734863px&quot;);
+testComputed(&quot;r&quot;, &quot;20%&quot;, &quot;20%&quot;);
+testComputed(&quot;r&quot;, &quot;-200px&quot;, &quot;-200px&quot;);
+
+// Test 'rx'.
+testComputed(&quot;rx&quot;, &quot;  100&quot;, &quot;100px&quot;);
+testComputed(&quot;rx&quot;, &quot;100   &quot;, &quot;100px&quot;);
+testComputed(&quot;rx&quot;, &quot;100px&quot;, &quot;100px&quot;);
+testComputed(&quot;rx&quot;, &quot;1em&quot;, &quot;16px&quot;);
+testComputed(&quot;rx&quot;, &quot;1ex&quot;, &quot;12.800000190734863px&quot;);
+testComputed(&quot;rx&quot;, &quot;20%&quot;, &quot;20%&quot;);
+testComputed(&quot;rx&quot;, &quot;-200px&quot;, &quot;-200px&quot;);
+
+// Test 'ry'.
+testComputed(&quot;ry&quot;, &quot;  100&quot;, &quot;100px&quot;);
+testComputed(&quot;ry&quot;, &quot;100   &quot;, &quot;100px&quot;);
+testComputed(&quot;ry&quot;, &quot;100px&quot;, &quot;100px&quot;);
+testComputed(&quot;ry&quot;, &quot;1em&quot;, &quot;16px&quot;);
+testComputed(&quot;ry&quot;, &quot;1ex&quot;, &quot;12.800000190734863px&quot;);
+testComputed(&quot;ry&quot;, &quot;20%&quot;, &quot;20%&quot;);
+testComputed(&quot;ry&quot;, &quot;-200px&quot;, &quot;-200px&quot;);
+
</ins><span class="cx"> // Test 'width'.
</span><span class="cx"> testComputed(&quot;width&quot;, &quot;auto&quot;, &quot;auto&quot;);
</span><span class="cx"> testComputed(&quot;width&quot;, &quot;  100&quot;, &quot;100px&quot;);
</span><span class="lines">@@ -94,6 +121,27 @@
</span><span class="cx"> negativeTestZero(&quot;cy&quot;, &quot;100px !important&quot;);
</span><span class="cx"> negativeTestZero(&quot;cy&quot;, &quot;{ 100px }&quot;);
</span><span class="cx"> 
</span><ins>+// Negative tests for 'r'.
+negativeTestZero(&quot;r&quot;, &quot;auto&quot;, &quot;auto&quot;);
+negativeTestZero(&quot;r&quot;, &quot;100   px&quot;);
+negativeTestZero(&quot;r&quot;, &quot;100px;&quot;);
+negativeTestZero(&quot;r&quot;, &quot;100px !important&quot;);
+negativeTestZero(&quot;r&quot;, &quot;{ 100px }&quot;);
+
+// Negative tests for 'rx'.
+negativeTestZero(&quot;rx&quot;, &quot;auto&quot;, &quot;auto&quot;);
+negativeTestZero(&quot;rx&quot;, &quot;100   px&quot;);
+negativeTestZero(&quot;rx&quot;, &quot;100px;&quot;);
+negativeTestZero(&quot;rx&quot;, &quot;100px !important&quot;);
+negativeTestZero(&quot;rx&quot;, &quot;{ 100px }&quot;);
+
+// Negative tests for 'ry'.
+negativeTestZero(&quot;ry&quot;, &quot;auto&quot;);
+negativeTestZero(&quot;ry&quot;, &quot;100   px&quot;);
+negativeTestZero(&quot;ry&quot;, &quot;100px;&quot;);
+negativeTestZero(&quot;ry&quot;, &quot;100px !important&quot;);
+negativeTestZero(&quot;ry&quot;, &quot;{ 100px }&quot;);
+
</ins><span class="cx"> // Negative tests for 'width'.
</span><span class="cx"> negativeTest(&quot;width&quot;, &quot;100   px&quot;);
</span><span class="cx"> negativeTest(&quot;width&quot;, &quot;100px;&quot;);
</span></span></pre></div>
<a id="trunkLayoutTeststransitionssvglayouttransitionexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/transitions/svg-layout-transition-expected.txt (172641 => 172642)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/transitions/svg-layout-transition-expected.txt        2014-08-15 19:38:10 UTC (rev 172641)
+++ trunk/LayoutTests/transitions/svg-layout-transition-expected.txt        2014-08-15 19:42:38 UTC (rev 172642)
</span><span class="lines">@@ -1,5 +1,8 @@
</span><span class="cx"> PASS - &quot;cx&quot; property for &quot;cx&quot; element at 0.5s saw something close to: 150
</span><span class="cx"> PASS - &quot;cy&quot; property for &quot;cy&quot; element at 0.5s saw something close to: 150
</span><ins>+PASS - &quot;r&quot; property for &quot;r&quot; element at 0.5s saw something close to: 150
+PASS - &quot;rx&quot; property for &quot;rx&quot; element at 0.5s saw something close to: 150
+PASS - &quot;ry&quot; property for &quot;ry&quot; element at 0.5s saw something close to: 150
</ins><span class="cx"> PASS - &quot;x&quot; property for &quot;x&quot; element at 0.5s saw something close to: 150
</span><span class="cx"> PASS - &quot;y&quot; property for &quot;y&quot; element at 0.5s saw something close to: 150
</span><span class="cx"> PASS - &quot;width&quot; property for &quot;width&quot; element at 0.5s saw something close to: 150
</span></span></pre></div>
<a id="trunkLayoutTeststransitionssvglayouttransitionhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/transitions/svg-layout-transition.html (172641 => 172642)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/transitions/svg-layout-transition.html        2014-08-15 19:38:10 UTC (rev 172641)
+++ trunk/LayoutTests/transitions/svg-layout-transition.html        2014-08-15 19:42:38 UTC (rev 172642)
</span><span class="lines">@@ -21,7 +21,28 @@
</span><span class="cx">     #cy.final {
</span><span class="cx">       cy: 200px;
</span><span class="cx">     }
</span><del>-    
</del><ins>+
+    #r {
+      -webkit-transition-property: r;
+    }
+    #r.final {
+      r: 200px;
+    }
+
+    #rx {
+      -webkit-transition-property: rx;
+    }
+    #rx.final {
+      rx: 200px;
+    }
+
+    #ry {
+      -webkit-transition-property: ry;
+    }
+    #ry.final {
+      ry: 200px;
+    }
+
</ins><span class="cx">     #x {
</span><span class="cx">       -webkit-transition-property: x;
</span><span class="cx">     }
</span><span class="lines">@@ -58,6 +79,9 @@
</span><span class="cx">       // [time, element-id, property, expected-value, tolerance]
</span><span class="cx">       [0.5, 'cx', 'cx', 150, 20],
</span><span class="cx">       [0.5, 'cy', 'cy', 150, 20],
</span><ins>+      [0.5, 'r', 'r', 150, 20],
+      [0.5, 'rx', 'rx', 150, 20],
+      [0.5, 'ry', 'ry', 150, 20],
</ins><span class="cx">       [0.5, 'x', 'x', 150, 20],
</span><span class="cx">       [0.5, 'y', 'y', 150, 20],
</span><span class="cx">       [0.5, 'width', 'width', 150, 20],
</span><span class="lines">@@ -68,6 +92,9 @@
</span><span class="cx">     {
</span><span class="cx">       document.getElementById('cx').setAttribute('class', 'init final');
</span><span class="cx">       document.getElementById('cy').setAttribute('class', 'init final');
</span><ins>+      document.getElementById('r').setAttribute('class', 'init final');
+      document.getElementById('rx').setAttribute('class', 'init final');
+      document.getElementById('ry').setAttribute('class', 'init final');
</ins><span class="cx">       document.getElementById('x').setAttribute('class', 'init final');
</span><span class="cx">       document.getElementById('y').setAttribute('class', 'init final');
</span><span class="cx">       document.getElementById('width').setAttribute('class', 'init final');
</span><span class="lines">@@ -81,6 +108,9 @@
</span><span class="cx">   &lt;svg&gt;
</span><span class="cx">     &lt;circle cx=&quot;100&quot; cy=&quot;100&quot; r=&quot;100&quot; class=&quot;init&quot; id=&quot;cx&quot;/&gt;
</span><span class="cx">     &lt;circle cx=&quot;100&quot; cy=&quot;100&quot; r=&quot;100&quot; class=&quot;init&quot; id=&quot;cy&quot;/&gt;
</span><ins>+    &lt;circle cx=&quot;100&quot; cy=&quot;100&quot; r=&quot;100&quot; class=&quot;init&quot; id=&quot;r&quot;/&gt;
+    &lt;ellipse cx=&quot;100&quot; cy=&quot;100&quot; rx=&quot;100&quot; ry=&quot;100&quot; class=&quot;init&quot; id=&quot;rx&quot;/&gt;
+    &lt;ellipse cx=&quot;100&quot; cy=&quot;100&quot; rx=&quot;100&quot; ry=&quot;100&quot; class=&quot;init&quot; id=&quot;ry&quot;/&gt;
</ins><span class="cx">     &lt;rect x=&quot;100&quot; y=&quot;100&quot; width=&quot;100&quot; height=&quot;100&quot; class=&quot;init&quot; id=&quot;x&quot;/&gt;
</span><span class="cx">     &lt;rect x=&quot;100&quot; y=&quot;100&quot; width=&quot;100&quot; height=&quot;100&quot; class=&quot;init&quot; id=&quot;y&quot;/&gt;
</span><span class="cx">     &lt;rect x=&quot;100&quot; y=&quot;100&quot; width=&quot;100&quot; height=&quot;100&quot; class=&quot;init&quot; id=&quot;width&quot;/&gt;
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (172641 => 172642)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-08-15 19:38:10 UTC (rev 172641)
+++ trunk/Source/WebCore/ChangeLog        2014-08-15 19:42:38 UTC (rev 172642)
</span><span class="lines">@@ -1,5 +1,59 @@
</span><span class="cx"> 2014-08-15  Dirk Schulze  &lt;krit@webkit.org&gt;
</span><span class="cx"> 
</span><ins>+        Turn r/rx/ry to presentation attributes
+        https://bugs.webkit.org/show_bug.cgi?id=135978
+
+        Reviewed by Dean Jackson.
+
+        This follows the patch for width and height presentation attributes and
+        turns rx, ry and r to presentation attributes as well:
+
+        ​http://trac.webkit.org/changeset/171341
+
+        Extended existing tests.
+
+        * css/CSSComputedStyleDeclaration.cpp:
+        (WebCore::ComputedStyleExtractor::propertyValue):
+        * css/CSSParser.cpp:
+        (WebCore::isSimpleLengthPropertyID):
+        * css/DeprecatedStyleBuilder.cpp:
+        (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
+        * css/SVGCSSParser.cpp:
+        (WebCore::CSSParser::parseSVGValue):
+        * css/SVGCSSPropertyNames.in:
+        * page/animation/CSSPropertyAnimation.cpp:
+        (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
+        * rendering/style/RenderStyle.h:
+        * rendering/style/SVGRenderStyle.h:
+        (WebCore::SVGRenderStyle::setR):
+        (WebCore::SVGRenderStyle::setRx):
+        (WebCore::SVGRenderStyle::setRy):
+        (WebCore::SVGRenderStyle::r):
+        (WebCore::SVGRenderStyle::rx):
+        (WebCore::SVGRenderStyle::ry):
+        * rendering/style/SVGRenderStyleDefs.cpp:
+        (WebCore::StyleLayoutData::StyleLayoutData):
+        (WebCore::StyleLayoutData::operator==):
+        * rendering/style/SVGRenderStyleDefs.h:
+        * rendering/svg/RenderSVGEllipse.cpp:
+        (WebCore::RenderSVGEllipse::calculateRadiiAndCenter):
+        * rendering/svg/SVGPathData.cpp:
+        (WebCore::updatePathFromCircleElement):
+        (WebCore::updatePathFromEllipseElement):
+        (WebCore::updatePathFromRectElement):
+        (WebCore::updatePathFromLineElement): Deleted.
+        * svg/SVGCircleElement.cpp:
+        (WebCore::SVGCircleElement::svgAttributeChanged):
+        * svg/SVGElement.cpp:
+        (WebCore::populateAttributeNameToCSSPropertyIDMap):
+        (WebCore::populateCSSPropertyWithSVGDOMNameToAnimatedPropertyTypeMap):
+        * svg/SVGEllipseElement.cpp:
+        (WebCore::SVGEllipseElement::svgAttributeChanged):
+        * svg/SVGRectElement.cpp:
+        (WebCore::SVGRectElement::svgAttributeChanged):
+
+2014-08-15  Dirk Schulze  &lt;krit@webkit.org&gt;
+
</ins><span class="cx">         Turn cx/cy to presentation attributes
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=135975
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSComputedStyleDeclarationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp (172641 => 172642)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp        2014-08-15 19:38:10 UTC (rev 172641)
+++ trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp        2014-08-15 19:42:38 UTC (rev 172642)
</span><span class="lines">@@ -424,6 +424,9 @@
</span><span class="cx">     CSSPropertyMarkerStart,
</span><span class="cx">     CSSPropertyMaskType,
</span><span class="cx">     CSSPropertyPaintOrder,
</span><ins>+    CSSPropertyR,
+    CSSPropertyRx,
+    CSSPropertyRy,
</ins><span class="cx">     CSSPropertyShapeRendering,
</span><span class="cx">     CSSPropertyStroke,
</span><span class="cx">     CSSPropertyStrokeDasharray,
</span><span class="lines">@@ -2972,6 +2975,12 @@
</span><span class="cx">             return zoomAdjustedPixelValueForLength(style-&gt;svgStyle().cx(), style.get());
</span><span class="cx">         case CSSPropertyCy:
</span><span class="cx">             return zoomAdjustedPixelValueForLength(style-&gt;svgStyle().cy(), style.get());
</span><ins>+        case CSSPropertyR:
+            return zoomAdjustedPixelValueForLength(style-&gt;svgStyle().r(), style.get());
+        case CSSPropertyRx:
+            return zoomAdjustedPixelValueForLength(style-&gt;svgStyle().rx(), style.get());
+        case CSSPropertyRy:
+            return zoomAdjustedPixelValueForLength(style-&gt;svgStyle().ry(), style.get());
</ins><span class="cx">         case CSSPropertyX:
</span><span class="cx">             return zoomAdjustedPixelValueForLength(style-&gt;svgStyle().x(), style.get());
</span><span class="cx">         case CSSPropertyY:
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSParser.cpp (172641 => 172642)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSParser.cpp        2014-08-15 19:38:10 UTC (rev 172641)
+++ trunk/Source/WebCore/css/CSSParser.cpp        2014-08-15 19:42:38 UTC (rev 172642)
</span><span class="lines">@@ -569,6 +569,9 @@
</span><span class="cx">     case CSSPropertyMarginLeft:
</span><span class="cx">     case CSSPropertyMarginRight:
</span><span class="cx">     case CSSPropertyMarginTop:
</span><ins>+    case CSSPropertyR:
+    case CSSPropertyRx:
+    case CSSPropertyRy:
</ins><span class="cx">     case CSSPropertyRight:
</span><span class="cx">     case CSSPropertyTop:
</span><span class="cx">     case CSSPropertyWebkitMarginAfter:
</span></span></pre></div>
<a id="trunkSourceWebCorecssDeprecatedStyleBuildercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/DeprecatedStyleBuilder.cpp (172641 => 172642)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/DeprecatedStyleBuilder.cpp        2014-08-15 19:38:10 UTC (rev 172641)
+++ trunk/Source/WebCore/css/DeprecatedStyleBuilder.cpp        2014-08-15 19:42:38 UTC (rev 172642)
</span><span class="lines">@@ -2596,6 +2596,9 @@
</span><span class="cx"> 
</span><span class="cx">     setPropertyHandler(CSSPropertyCx, ApplyPropertyLength&lt;&amp;RenderStyle::cx, &amp;RenderStyle::setCx, &amp;RenderStyle::initialZeroLength&gt;::createHandler());
</span><span class="cx">     setPropertyHandler(CSSPropertyCy, ApplyPropertyLength&lt;&amp;RenderStyle::cy, &amp;RenderStyle::setCy, &amp;RenderStyle::initialZeroLength&gt;::createHandler());
</span><ins>+    setPropertyHandler(CSSPropertyR, ApplyPropertyLength&lt;&amp;RenderStyle::r, &amp;RenderStyle::setR, &amp;RenderStyle::initialZeroLength&gt;::createHandler());
+    setPropertyHandler(CSSPropertyRx, ApplyPropertyLength&lt;&amp;RenderStyle::rx, &amp;RenderStyle::setRx, &amp;RenderStyle::initialZeroLength&gt;::createHandler());
+    setPropertyHandler(CSSPropertyRy, ApplyPropertyLength&lt;&amp;RenderStyle::ry, &amp;RenderStyle::setRy, &amp;RenderStyle::initialZeroLength&gt;::createHandler());
</ins><span class="cx">     setPropertyHandler(CSSPropertyX, ApplyPropertyLength&lt;&amp;RenderStyle::x, &amp;RenderStyle::setX, &amp;RenderStyle::initialZeroLength&gt;::createHandler());
</span><span class="cx">     setPropertyHandler(CSSPropertyY, ApplyPropertyLength&lt;&amp;RenderStyle::y, &amp;RenderStyle::setY, &amp;RenderStyle::initialZeroLength&gt;::createHandler());
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorecssSVGCSSParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/SVGCSSParser.cpp (172641 => 172642)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/SVGCSSParser.cpp        2014-08-15 19:38:10 UTC (rev 172641)
+++ trunk/Source/WebCore/css/SVGCSSParser.cpp        2014-08-15 19:42:38 UTC (rev 172642)
</span><span class="lines">@@ -301,6 +301,9 @@
</span><span class="cx">     }
</span><span class="cx">     case CSSPropertyCx:
</span><span class="cx">     case CSSPropertyCy:
</span><ins>+    case CSSPropertyR:
+    case CSSPropertyRx:
+    case CSSPropertyRy:
</ins><span class="cx">     case CSSPropertyX:
</span><span class="cx">     case CSSPropertyY:
</span><span class="cx">         valid_primitive = (!id &amp;&amp; validUnit(value, FLength | FPercent));
</span></span></pre></div>
<a id="trunkSourceWebCorecssSVGCSSPropertyNamesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/SVGCSSPropertyNames.in (172641 => 172642)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/SVGCSSPropertyNames.in        2014-08-15 19:38:10 UTC (rev 172641)
+++ trunk/Source/WebCore/css/SVGCSSPropertyNames.in        2014-08-15 19:42:38 UTC (rev 172642)
</span><span class="lines">@@ -54,6 +54,9 @@
</span><span class="cx"> 
</span><span class="cx"> cx
</span><span class="cx"> cy
</span><ins>+r
+rx
+ry
</ins><span class="cx"> x
</span><span class="cx"> y
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepageanimationCSSPropertyAnimationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/animation/CSSPropertyAnimation.cpp (172641 => 172642)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/animation/CSSPropertyAnimation.cpp        2014-08-15 19:38:10 UTC (rev 172641)
+++ trunk/Source/WebCore/page/animation/CSSPropertyAnimation.cpp        2014-08-15 19:42:38 UTC (rev 172642)
</span><span class="lines">@@ -1258,6 +1258,9 @@
</span><span class="cx"> 
</span><span class="cx">         new LengthPropertyWrapper&lt;Length&gt;(CSSPropertyCx, &amp;RenderStyle::cx, &amp;RenderStyle::setCx),
</span><span class="cx">         new LengthPropertyWrapper&lt;Length&gt;(CSSPropertyCy, &amp;RenderStyle::cy, &amp;RenderStyle::setCy),
</span><ins>+        new LengthPropertyWrapper&lt;Length&gt;(CSSPropertyR, &amp;RenderStyle::r, &amp;RenderStyle::setR),
+        new LengthPropertyWrapper&lt;Length&gt;(CSSPropertyRx, &amp;RenderStyle::rx, &amp;RenderStyle::setRx),
+        new LengthPropertyWrapper&lt;Length&gt;(CSSPropertyRy, &amp;RenderStyle::ry, &amp;RenderStyle::setRy),
</ins><span class="cx">         new LengthPropertyWrapper&lt;Length&gt;(CSSPropertyX, &amp;RenderStyle::x, &amp;RenderStyle::setX),
</span><span class="cx">         new LengthPropertyWrapper&lt;Length&gt;(CSSPropertyY, &amp;RenderStyle::y, &amp;RenderStyle::setY),
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleRenderStyleh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/RenderStyle.h (172641 => 172642)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/RenderStyle.h        2014-08-15 19:38:10 UTC (rev 172641)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.h        2014-08-15 19:42:38 UTC (rev 172642)
</span><span class="lines">@@ -1669,6 +1669,12 @@
</span><span class="cx">     void setCx(Length cx) { accessSVGStyle().setCx(cx); }
</span><span class="cx">     const Length&amp; cy() const { return svgStyle().cy(); }
</span><span class="cx">     void setCy(Length cy) { accessSVGStyle().setCy(cy); }
</span><ins>+    const Length&amp; r() const { return svgStyle().r(); }
+    void setR(Length r) { accessSVGStyle().setR(r); }
+    const Length&amp; rx() const { return svgStyle().rx(); }
+    void setRx(Length rx) { accessSVGStyle().setRx(rx); }
+    const Length&amp; ry() const { return svgStyle().ry(); }
+    void setRy(Length ry) { accessSVGStyle().setRy(ry); }
</ins><span class="cx">     const Length&amp; x() const { return svgStyle().x(); }
</span><span class="cx">     void setX(Length x) { accessSVGStyle().setX(x); }
</span><span class="cx">     const Length&amp; y() const { return svgStyle().y(); }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleSVGRenderStyleh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/SVGRenderStyle.h (172641 => 172642)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/SVGRenderStyle.h        2014-08-15 19:38:10 UTC (rev 172641)
+++ trunk/Source/WebCore/rendering/style/SVGRenderStyle.h        2014-08-15 19:42:38 UTC (rev 172642)
</span><span class="lines">@@ -156,6 +156,21 @@
</span><span class="cx">         if (!(layout-&gt;cy == obj))
</span><span class="cx">             layout.access()-&gt;cy = obj;
</span><span class="cx">     }
</span><ins>+    void setR(const Length&amp; obj)
+    {
+        if (!(layout-&gt;r == obj))
+            layout.access()-&gt;r = obj;
+    }
+    void setRx(const Length&amp; obj)
+    {
+        if (!(layout-&gt;rx == obj))
+            layout.access()-&gt;rx = obj;
+    }
+    void setRy(const Length&amp; obj)
+    {
+        if (!(layout-&gt;ry == obj))
+            layout.access()-&gt;ry = obj;
+    }
</ins><span class="cx">     void setX(const Length&amp; obj)
</span><span class="cx">     {
</span><span class="cx">         if (!(layout-&gt;x == obj))
</span><span class="lines">@@ -365,6 +380,9 @@
</span><span class="cx">     ShadowData* shadow() const { return shadowSVG-&gt;shadow.get(); }
</span><span class="cx">     const Length&amp; cx() const { return layout-&gt;cx; }
</span><span class="cx">     const Length&amp; cy() const { return layout-&gt;cy; }
</span><ins>+    const Length&amp; r() const { return layout-&gt;r; }
+    const Length&amp; rx() const { return layout-&gt;rx; }
+    const Length&amp; ry() const { return layout-&gt;ry; }
</ins><span class="cx">     const Length&amp; x() const { return layout-&gt;x; }
</span><span class="cx">     const Length&amp; y() const { return layout-&gt;y; }
</span><span class="cx">     String clipperResource() const { return resources-&gt;clipper; }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleSVGRenderStyleDefscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/SVGRenderStyleDefs.cpp (172641 => 172642)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/SVGRenderStyleDefs.cpp        2014-08-15 19:38:10 UTC (rev 172641)
+++ trunk/Source/WebCore/rendering/style/SVGRenderStyleDefs.cpp        2014-08-15 19:42:38 UTC (rev 172642)
</span><span class="lines">@@ -280,6 +280,9 @@
</span><span class="cx"> StyleLayoutData::StyleLayoutData()
</span><span class="cx">     : cx(RenderStyle::initialZeroLength())
</span><span class="cx">     , cy(RenderStyle::initialZeroLength())
</span><ins>+    , r(RenderStyle::initialZeroLength())
+    , rx(RenderStyle::initialZeroLength())
+    , ry(RenderStyle::initialZeroLength())
</ins><span class="cx">     , x(RenderStyle::initialZeroLength())
</span><span class="cx">     , y(RenderStyle::initialZeroLength())
</span><span class="cx"> {
</span><span class="lines">@@ -289,6 +292,9 @@
</span><span class="cx">     : RefCounted&lt;StyleLayoutData&gt;()
</span><span class="cx">     , cx(other.cx)
</span><span class="cx">     , cy(other.cy)
</span><ins>+    , r(other.r)
+    , rx(other.rx)
+    , ry(other.ry)
</ins><span class="cx">     , x(other.x)
</span><span class="cx">     , y(other.y)
</span><span class="cx"> {
</span><span class="lines">@@ -303,6 +309,9 @@
</span><span class="cx"> {
</span><span class="cx">     return cx == other.cx
</span><span class="cx">         &amp;&amp; cy == other.cy
</span><ins>+        &amp;&amp; r == other.r
+        &amp;&amp; rx == other.rx
+        &amp;&amp; ry == other.ry
</ins><span class="cx">         &amp;&amp; x == other.x
</span><span class="cx">         &amp;&amp; y == other.y;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleSVGRenderStyleDefsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/SVGRenderStyleDefs.h (172641 => 172642)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/SVGRenderStyleDefs.h        2014-08-15 19:38:10 UTC (rev 172641)
+++ trunk/Source/WebCore/rendering/style/SVGRenderStyleDefs.h        2014-08-15 19:42:38 UTC (rev 172642)
</span><span class="lines">@@ -304,6 +304,9 @@
</span><span class="cx"> 
</span><span class="cx">         Length cx;
</span><span class="cx">         Length cy;
</span><ins>+        Length r;
+        Length rx;
+        Length ry;
</ins><span class="cx">         Length x;
</span><span class="cx">         Length y;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgRenderSVGEllipsecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/RenderSVGEllipse.cpp (172641 => 172642)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/RenderSVGEllipse.cpp        2014-08-15 19:38:10 UTC (rev 172641)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGEllipse.cpp        2014-08-15 19:42:38 UTC (rev 172642)
</span><span class="lines">@@ -82,16 +82,13 @@
</span><span class="cx">         lengthContext.valueForLength(style().svgStyle().cx(), LengthModeWidth),
</span><span class="cx">         lengthContext.valueForLength(style().svgStyle().cy(), LengthModeHeight));
</span><span class="cx">     if (isSVGCircleElement(graphicsElement())) {
</span><del>-        SVGCircleElement&amp; circle = toSVGCircleElement(graphicsElement());
-        SVGLengthContext lengthContext(&amp;circle);
-        float radius = circle.r().value(lengthContext);
</del><ins>+        float radius = lengthContext.valueForLength(style().svgStyle().r());
</ins><span class="cx">         m_radii = FloatSize(radius, radius);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     ASSERT(isSVGEllipseElement(graphicsElement()));
</span><del>-    SVGEllipseElement&amp; ellipse = toSVGEllipseElement(graphicsElement());
-    m_radii = FloatSize(ellipse.rx().value(lengthContext), ellipse.ry().value(lengthContext));
</del><ins>+    m_radii = FloatSize(lengthContext.valueForLength(style().svgStyle().rx()), lengthContext.valueForLength(style().svgStyle().ry()));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderSVGEllipse::fillShape(GraphicsContext* context) const
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgSVGPathDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/SVGPathData.cpp (172641 => 172642)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/SVGPathData.cpp        2014-08-15 19:38:10 UTC (rev 172641)
+++ trunk/Source/WebCore/rendering/svg/SVGPathData.cpp        2014-08-15 19:42:38 UTC (rev 172642)
</span><span class="lines">@@ -40,15 +40,14 @@
</span><span class="cx"> static void updatePathFromCircleElement(SVGElement* element, Path&amp; path)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(isSVGCircleElement(element));
</span><del>-    SVGCircleElement* circle = toSVGCircleElement(element);
</del><span class="cx"> 
</span><span class="cx">     SVGLengthContext lengthContext(element);
</span><del>-    float r = circle-&gt;r().value(lengthContext);
</del><ins>+    RenderElement* renderer = element-&gt;renderer();
+    if (!renderer)
+        return;
+    RenderStyle&amp; style = renderer-&gt;style();
+    float r = lengthContext.valueForLength(style.svgStyle().r());
</ins><span class="cx">     if (r &gt; 0) {
</span><del>-        RenderElement* renderer = circle-&gt;renderer();
-        if (!renderer)
-            return;
-        RenderStyle&amp; style = renderer-&gt;style();
</del><span class="cx">         float cx = lengthContext.valueForLength(style.svgStyle().cx(), LengthModeWidth);
</span><span class="cx">         float cy = lengthContext.valueForLength(style.svgStyle().cy(), LengthModeHeight);
</span><span class="cx">         path.addEllipse(FloatRect(cx - r, cy - r, r * 2, r * 2));
</span><span class="lines">@@ -57,19 +56,17 @@
</span><span class="cx"> 
</span><span class="cx"> static void updatePathFromEllipseElement(SVGElement* element, Path&amp; path)
</span><span class="cx"> {
</span><del>-    SVGEllipseElement* ellipse = toSVGEllipseElement(element);
-
</del><ins>+    RenderElement* renderer = element-&gt;renderer();
+    if (!renderer)
+        return;
+    RenderStyle&amp; style = renderer-&gt;style();
</ins><span class="cx">     SVGLengthContext lengthContext(element);
</span><del>-    float rx = ellipse-&gt;rx().value(lengthContext);
</del><ins>+    float rx = lengthContext.valueForLength(style.svgStyle().rx(), LengthModeWidth);
</ins><span class="cx">     if (rx &lt;= 0)
</span><span class="cx">         return;
</span><del>-    float ry = ellipse-&gt;ry().value(lengthContext);
</del><ins>+    float ry = lengthContext.valueForLength(style.svgStyle().ry(), LengthModeHeight);
</ins><span class="cx">     if (ry &lt;= 0)
</span><span class="cx">         return;
</span><del>-    RenderElement* renderer = ellipse-&gt;renderer();
-    if (!renderer)
-        return;
-    RenderStyle&amp; style = renderer-&gt;style();
</del><span class="cx">     float cx = lengthContext.valueForLength(style.svgStyle().cx(), LengthModeWidth);
</span><span class="cx">     float cy = lengthContext.valueForLength(style.svgStyle().cy(), LengthModeHeight);
</span><span class="cx">     path.addEllipse(FloatRect(cx - rx, cy - ry, rx * 2, ry * 2));
</span><span class="lines">@@ -119,8 +116,7 @@
</span><span class="cx"> 
</span><span class="cx"> static void updatePathFromRectElement(SVGElement* element, Path&amp; path)
</span><span class="cx"> {
</span><del>-    SVGRectElement* rect = toSVGRectElement(element);
-    RenderElement* renderer = rect-&gt;renderer();
</del><ins>+    RenderElement* renderer = element-&gt;renderer();
</ins><span class="cx">     if (!renderer)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="lines">@@ -134,8 +130,8 @@
</span><span class="cx">         return;
</span><span class="cx">     float x = lengthContext.valueForLength(style.svgStyle().x(), LengthModeWidth);
</span><span class="cx">     float y = lengthContext.valueForLength(style.svgStyle().y(), LengthModeHeight);
</span><del>-    float rx = rect-&gt;rx().value(lengthContext);
-    float ry = rect-&gt;ry().value(lengthContext);
</del><ins>+    float rx = lengthContext.valueForLength(style.svgStyle().rx(), LengthModeWidth);
+    float ry = lengthContext.valueForLength(style.svgStyle().ry(), LengthModeHeight);
</ins><span class="cx">     bool hasRx = rx &gt; 0;
</span><span class="cx">     bool hasRy = ry &gt; 0;
</span><span class="cx">     if (hasRx || hasRy) {
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGCircleElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGCircleElement.cpp (172641 => 172642)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGCircleElement.cpp        2014-08-15 19:38:10 UTC (rev 172641)
+++ trunk/Source/WebCore/svg/SVGCircleElement.cpp        2014-08-15 19:42:38 UTC (rev 172642)
</span><span class="lines">@@ -107,24 +107,16 @@
</span><span class="cx">     SVGElementInstance::InvalidationGuard invalidationGuard(this);
</span><span class="cx"> 
</span><span class="cx">     if (attrName == SVGNames::cxAttr
</span><del>-        || attrName == SVGNames::cyAttr) {
</del><ins>+        || attrName == SVGNames::cyAttr
+        || attrName == SVGNames::rAttr) {
</ins><span class="cx">         invalidateSVGPresentationAttributeStyle();
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (attrName == SVGNames::rAttr)
-        updateRelativeLengthsInformation();
-
</del><span class="cx">     RenderSVGShape* renderer = toRenderSVGShape(this-&gt;renderer());
</span><span class="cx">     if (!renderer)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    if (attrName == SVGNames::rAttr) {
-        renderer-&gt;setNeedsShapeUpdate();
-        RenderSVGResource::markForLayoutAndParentResourceInvalidation(*renderer);
-        return;
-    }
-
</del><span class="cx">     if (SVGLangSpace::isKnownAttribute(attrName) || SVGExternalResourcesRequired::isKnownAttribute(attrName)) {
</span><span class="cx">         RenderSVGResource::markForLayoutAndParentResourceInvalidation(*renderer);
</span><span class="cx">         return;
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGElement.cpp (172641 => 172642)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGElement.cpp        2014-08-15 19:38:10 UTC (rev 172641)
+++ trunk/Source/WebCore/svg/SVGElement.cpp        2014-08-15 19:42:38 UTC (rev 172642)
</span><span class="lines">@@ -126,6 +126,9 @@
</span><span class="cx">         &amp;overflowAttr,
</span><span class="cx">         &amp;paint_orderAttr,
</span><span class="cx">         &amp;pointer_eventsAttr,
</span><ins>+        &amp;rAttr,
+        &amp;rxAttr,
+        &amp;ryAttr,
</ins><span class="cx">         &amp;shape_renderingAttr,
</span><span class="cx">         &amp;stop_colorAttr,
</span><span class="cx">         &amp;stop_opacityAttr,
</span><span class="lines">@@ -248,6 +251,9 @@
</span><span class="cx">     static const TableEntry table[] = {
</span><span class="cx">         { cxAttr, AnimatedLength },
</span><span class="cx">         { cyAttr, AnimatedLength },
</span><ins>+        { rAttr, AnimatedLength },
+        { rxAttr, AnimatedLength },
+        { ryAttr, AnimatedLength },
</ins><span class="cx">         { SVGNames::heightAttr, AnimatedLength },
</span><span class="cx">         { SVGNames::widthAttr, AnimatedLength },
</span><span class="cx">         { xAttr, AnimatedLength },
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGEllipseElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGEllipseElement.cpp (172641 => 172642)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGEllipseElement.cpp        2014-08-15 19:38:10 UTC (rev 172641)
+++ trunk/Source/WebCore/svg/SVGEllipseElement.cpp        2014-08-15 19:42:38 UTC (rev 172642)
</span><span class="lines">@@ -111,27 +111,17 @@
</span><span class="cx">     SVGElementInstance::InvalidationGuard invalidationGuard(this);
</span><span class="cx"> 
</span><span class="cx">     if (attrName == SVGNames::cxAttr
</span><del>-        || attrName == SVGNames::cyAttr) {
</del><ins>+        || attrName == SVGNames::cyAttr
+        || attrName == SVGNames::rxAttr
+        || attrName == SVGNames::ryAttr) {
</ins><span class="cx">         invalidateSVGPresentationAttributeStyle();
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    bool isLengthAttribute = attrName == SVGNames::rxAttr
-                          || attrName == SVGNames::ryAttr;
-
-    if (isLengthAttribute)
-        updateRelativeLengthsInformation();
-
</del><span class="cx">     RenderSVGShape* renderer = toRenderSVGShape(this-&gt;renderer());
</span><span class="cx">     if (!renderer)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    if (isLengthAttribute) {
-        renderer-&gt;setNeedsShapeUpdate();
-        RenderSVGResource::markForLayoutAndParentResourceInvalidation(*renderer);
-        return;
-    }
-
</del><span class="cx">     if (SVGLangSpace::isKnownAttribute(attrName) || SVGExternalResourcesRequired::isKnownAttribute(attrName)) {
</span><span class="cx">         RenderSVGResource::markForLayoutAndParentResourceInvalidation(*renderer);
</span><span class="cx">         return;
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGRectElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGRectElement.cpp (172641 => 172642)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGRectElement.cpp        2014-08-15 19:38:10 UTC (rev 172641)
+++ trunk/Source/WebCore/svg/SVGRectElement.cpp        2014-08-15 19:42:38 UTC (rev 172642)
</span><span class="lines">@@ -125,27 +125,17 @@
</span><span class="cx">     if (attrName == SVGNames::xAttr
</span><span class="cx">         || attrName == SVGNames::yAttr
</span><span class="cx">         || attrName == SVGNames::widthAttr
</span><del>-        || attrName == SVGNames::heightAttr) {
</del><ins>+        || attrName == SVGNames::heightAttr
+        || attrName == SVGNames::rxAttr
+        || attrName == SVGNames::ryAttr) {
</ins><span class="cx">         invalidateSVGPresentationAttributeStyle();
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    bool isLengthAttribute = attrName == SVGNames::rxAttr
-                          || attrName == SVGNames::ryAttr;
-
-    if (isLengthAttribute)
-        updateRelativeLengthsInformation();
-
</del><span class="cx">     RenderSVGShape* renderer = toRenderSVGShape(this-&gt;renderer());
</span><span class="cx">     if (!renderer)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    if (isLengthAttribute) {
-        renderer-&gt;setNeedsShapeUpdate();
-        RenderSVGResource::markForLayoutAndParentResourceInvalidation(*renderer);
-        return;
-    }
-
</del><span class="cx">     if (SVGLangSpace::isKnownAttribute(attrName) || SVGExternalResourcesRequired::isKnownAttribute(attrName)) {
</span><span class="cx">         RenderSVGResource::markForLayoutAndParentResourceInvalidation(*renderer);
</span><span class="cx">         return;
</span></span></pre>
</div>
</div>

</body>
</html>