<!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>[172641] 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/172641">172641</a></dd>
<dt>Author</dt> <dd>krit@webkit.org</dd>
<dt>Date</dt> <dd>2014-08-15 12:38:10 -0700 (Fri, 15 Aug 2014)</dd>
</dl>
<h3>Log Message</h3>
<pre>Turn cx/cy to presentation attributes
https://bugs.webkit.org/show_bug.cgi?id=135975
Reviewed by Dean Jackson.
This follows the patch for width and height presentation attributes and
Source/WebCore:
turns x and y 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::setCx):
(WebCore::SVGRenderStyle::setCy):
(WebCore::SVGRenderStyle::cx):
(WebCore::SVGRenderStyle::cy):
* 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):
* svg/SVGCircleElement.cpp:
(WebCore::SVGCircleElement::svgAttributeChanged):
(WebCore::SVGCircleElement::selfHasRelativeLengths): Deleted.
* svg/SVGCircleElement.h:
* svg/SVGElement.cpp:
(WebCore::populateAttributeNameToCSSPropertyIDMap):
(WebCore::populateCSSPropertyWithSVGDOMNameToAnimatedPropertyTypeMap):
* svg/SVGEllipseElement.cpp:
(WebCore::SVGEllipseElement::svgAttributeChanged):
(WebCore::SVGEllipseElement::selfHasRelativeLengths): Deleted.
* svg/SVGEllipseElement.h:
LayoutTests:
turns cx and cy to presentation attributes as well:
http://trac.webkit.org/changeset/171341
* svg/css/parse-length-expected.txt:
* 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="#trunkLayoutTestssvgcssparselengthexpectedtxt">trunk/LayoutTests/svg/css/parse-length-expected.txt</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="#trunkSourceWebCoresvgSVGCircleElementh">trunk/Source/WebCore/svg/SVGCircleElement.h</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="#trunkSourceWebCoresvgSVGEllipseElementh">trunk/Source/WebCore/svg/SVGEllipseElement.h</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (172640 => 172641)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2014-08-15 19:11:55 UTC (rev 172640)
+++ trunk/LayoutTests/ChangeLog        2014-08-15 19:38:10 UTC (rev 172641)
</span><span class="lines">@@ -1,3 +1,20 @@
</span><ins>+2014-08-15 Dirk Schulze <krit@webkit.org>
+
+ Turn cx/cy to presentation attributes
+ https://bugs.webkit.org/show_bug.cgi?id=135975
+
+ Reviewed by Dean Jackson.
+
+ This follows the patch for width and height presentation attributes and
+ turns cx and cy to presentation attributes as well:
+
+ http://trac.webkit.org/changeset/171341
+
+ * svg/css/parse-length-expected.txt:
+ * svg/css/parse-length.html:
+ * transitions/svg-layout-transition-expected.txt:
+ * transitions/svg-layout-transition.html:
+
</ins><span class="cx"> 2014-08-14 Benjamin Poulain <benjamin@webkit.org>
</span><span class="cx">
</span><span class="cx"> CSS JIT: compile the :empty pseudo class
</span></span></pre></div>
<a id="trunkLayoutTestssvgcssparselengthexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/svg/css/parse-length-expected.txt (172640 => 172641)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/css/parse-length-expected.txt        2014-08-15 19:11:55 UTC (rev 172640)
+++ trunk/LayoutTests/svg/css/parse-length-expected.txt        2014-08-15 19:38:10 UTC (rev 172641)
</span><span class="lines">@@ -25,6 +25,20 @@
</span><span class="cx"> On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
</span><span class="cx">
</span><span class="cx">
</span><ins>+PASS computedStyle("cx", " 100") is "100px"
+PASS computedStyle("cx", "100 ") is "100px"
+PASS computedStyle("cx", "100px") is "100px"
+PASS computedStyle("cx", "1em") is "16px"
+PASS computedStyle("cx", "1ex") is "12.800000190734863px"
+PASS computedStyle("cx", "20%") is "20%"
+PASS computedStyle("cx", "-200px") is "-200px"
+PASS computedStyle("cy", " 100") is "100px"
+PASS computedStyle("cy", "100 ") is "100px"
+PASS computedStyle("cy", "100px") is "100px"
+PASS computedStyle("cy", "1em") is "16px"
+PASS computedStyle("cy", "1ex") is "12.800000190734863px"
+PASS computedStyle("cy", "20%") is "20%"
+PASS computedStyle("cy", "-200px") is "-200px"
</ins><span class="cx"> PASS computedStyle("width", "auto") is "auto"
</span><span class="cx"> PASS computedStyle("width", " 100") is "100px"
</span><span class="cx"> PASS computedStyle("width", "100 ") is "100px"
</span><span class="lines">@@ -46,6 +60,16 @@
</span><span class="cx"> PASS computedStyle("y", "1ex") is "12.800000190734863px"
</span><span class="cx"> PASS computedStyle("y", "20%") is "20%"
</span><span class="cx"> PASS computedStyle("y", "-200px") is "-200px"
</span><ins>+PASS computedStyle("cx", "auto") is "0px"
+PASS computedStyle("cx", "100 px") is "0px"
+PASS computedStyle("cx", "100px;") is "0px"
+PASS computedStyle("cx", "100px !important") is "0px"
+PASS computedStyle("cx", "{ 100px }") is "0px"
+PASS computedStyle("cy", "auto") is "0px"
+PASS computedStyle("cy", "100 px") is "0px"
+PASS computedStyle("cy", "100px;") is "0px"
+PASS computedStyle("cy", "100px !important") is "0px"
+PASS computedStyle("cy", "{ 100px }") is "0px"
</ins><span class="cx"> PASS computedStyle("width", "100 px") is "auto"
</span><span class="cx"> PASS computedStyle("width", "100px;") is "auto"
</span><span class="cx"> PASS computedStyle("width", "100px !important") is "auto"
</span></span></pre></div>
<a id="trunkLayoutTestssvgcssparselengthhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/svg/css/parse-length.html (172640 => 172641)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/css/parse-length.html        2014-08-15 19:11:55 UTC (rev 172640)
+++ trunk/LayoutTests/svg/css/parse-length.html        2014-08-15 19:38:10 UTC (rev 172641)
</span><span class="lines">@@ -32,6 +32,24 @@
</span><span class="cx"> testComputed(property, value, "0px");
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+// Test 'cx'.
+testComputed("cx", " 100", "100px");
+testComputed("cx", "100 ", "100px");
+testComputed("cx", "100px", "100px");
+testComputed("cx", "1em", "16px");
+testComputed("cx", "1ex", "12.800000190734863px");
+testComputed("cx", "20%", "20%");
+testComputed("cx", "-200px", "-200px");
+
+// Test 'cx'.
+testComputed("cy", " 100", "100px");
+testComputed("cy", "100 ", "100px");
+testComputed("cy", "100px", "100px");
+testComputed("cy", "1em", "16px");
+testComputed("cy", "1ex", "12.800000190734863px");
+testComputed("cy", "20%", "20%");
+testComputed("cy", "-200px", "-200px");
+
</ins><span class="cx"> // Test 'width'.
</span><span class="cx"> testComputed("width", "auto", "auto");
</span><span class="cx"> testComputed("width", " 100", "100px");
</span><span class="lines">@@ -62,6 +80,20 @@
</span><span class="cx"> testComputed("y", "20%", "20%");
</span><span class="cx"> testComputed("y", "-200px", "-200px");
</span><span class="cx">
</span><ins>+// Negative tests for 'cx'.
+negativeTestZero("cx", "auto", "auto");
+negativeTestZero("cx", "100 px");
+negativeTestZero("cx", "100px;");
+negativeTestZero("cx", "100px !important");
+negativeTestZero("cx", "{ 100px }");
+
+// Negative tests for 'cy'.
+negativeTestZero("cy", "auto");
+negativeTestZero("cy", "100 px");
+negativeTestZero("cy", "100px;");
+negativeTestZero("cy", "100px !important");
+negativeTestZero("cy", "{ 100px }");
+
</ins><span class="cx"> // Negative tests for 'width'.
</span><span class="cx"> negativeTest("width", "100 px");
</span><span class="cx"> negativeTest("width", "100px;");
</span></span></pre></div>
<a id="trunkLayoutTeststransitionssvglayouttransitionexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/transitions/svg-layout-transition-expected.txt (172640 => 172641)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/transitions/svg-layout-transition-expected.txt        2014-08-15 19:11:55 UTC (rev 172640)
+++ trunk/LayoutTests/transitions/svg-layout-transition-expected.txt        2014-08-15 19:38:10 UTC (rev 172641)
</span><span class="lines">@@ -1,3 +1,5 @@
</span><ins>+PASS - "cx" property for "cx" element at 0.5s saw something close to: 150
+PASS - "cy" property for "cy" element at 0.5s saw something close to: 150
</ins><span class="cx"> PASS - "x" property for "x" element at 0.5s saw something close to: 150
</span><span class="cx"> PASS - "y" property for "y" element at 0.5s saw something close to: 150
</span><span class="cx"> PASS - "width" property for "width" 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 (172640 => 172641)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/transitions/svg-layout-transition.html        2014-08-15 19:11:55 UTC (rev 172640)
+++ trunk/LayoutTests/transitions/svg-layout-transition.html        2014-08-15 19:38:10 UTC (rev 172641)
</span><span class="lines">@@ -8,6 +8,20 @@
</span><span class="cx"> -webkit-transition-timing-function: linear;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+ #cx {
+ -webkit-transition-property: cx;
+ }
+ #cx.final {
+ cx: 200px;
+ }
+
+ #cy {
+ -webkit-transition-property: cy;
+ }
+ #cy.final {
+ cy: 200px;
+ }
+
</ins><span class="cx"> #x {
</span><span class="cx"> -webkit-transition-property: x;
</span><span class="cx"> }
</span><span class="lines">@@ -42,6 +56,8 @@
</span><span class="cx">
</span><span class="cx"> const expectedValues = [
</span><span class="cx"> // [time, element-id, property, expected-value, tolerance]
</span><ins>+ [0.5, 'cx', 'cx', 150, 20],
+ [0.5, 'cy', 'cy', 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">@@ -50,6 +66,8 @@
</span><span class="cx">
</span><span class="cx"> function setupTest()
</span><span class="cx"> {
</span><ins>+ document.getElementById('cx').setAttribute('class', 'init final');
+ document.getElementById('cy').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">@@ -61,6 +79,8 @@
</span><span class="cx"> </head>
</span><span class="cx"> <body>
</span><span class="cx"> <svg>
</span><ins>+ <circle cx="100" cy="100" r="100" class="init" id="cx"/>
+ <circle cx="100" cy="100" r="100" class="init" id="cy"/>
</ins><span class="cx"> <rect x="100" y="100" width="100" height="100" class="init" id="x"/>
</span><span class="cx"> <rect x="100" y="100" width="100" height="100" class="init" id="y"/>
</span><span class="cx"> <rect x="100" y="100" width="100" height="100" class="init" id="width"/>
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (172640 => 172641)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-08-15 19:11:55 UTC (rev 172640)
+++ trunk/Source/WebCore/ChangeLog        2014-08-15 19:38:10 UTC (rev 172641)
</span><span class="lines">@@ -1,3 +1,55 @@
</span><ins>+2014-08-15 Dirk Schulze <krit@webkit.org>
+
+ Turn cx/cy to presentation attributes
+ https://bugs.webkit.org/show_bug.cgi?id=135975
+
+ Reviewed by Dean Jackson.
+
+ This follows the patch for width and height presentation attributes and
+ turns x and y 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::setCx):
+ (WebCore::SVGRenderStyle::setCy):
+ (WebCore::SVGRenderStyle::cx):
+ (WebCore::SVGRenderStyle::cy):
+ * 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):
+ * svg/SVGCircleElement.cpp:
+ (WebCore::SVGCircleElement::svgAttributeChanged):
+ (WebCore::SVGCircleElement::selfHasRelativeLengths): Deleted.
+ * svg/SVGCircleElement.h:
+ * svg/SVGElement.cpp:
+ (WebCore::populateAttributeNameToCSSPropertyIDMap):
+ (WebCore::populateCSSPropertyWithSVGDOMNameToAnimatedPropertyTypeMap):
+ * svg/SVGEllipseElement.cpp:
+ (WebCore::SVGEllipseElement::svgAttributeChanged):
+ (WebCore::SVGEllipseElement::selfHasRelativeLengths): Deleted.
+ * svg/SVGEllipseElement.h:
+
</ins><span class="cx"> 2014-08-15 Adenilson Cavalcanti <cavalcantii@gmail.com>
</span><span class="cx">
</span><span class="cx"> Fix typo in Path comment
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSComputedStyleDeclarationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp (172640 => 172641)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp        2014-08-15 19:11:55 UTC (rev 172640)
+++ trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp        2014-08-15 19:38:10 UTC (rev 172641)
</span><span class="lines">@@ -404,6 +404,8 @@
</span><span class="cx"> CSSPropertyBufferedRendering,
</span><span class="cx"> CSSPropertyClipPath,
</span><span class="cx"> CSSPropertyClipRule,
</span><ins>+ CSSPropertyCx,
+ CSSPropertyCy,
</ins><span class="cx"> CSSPropertyMask,
</span><span class="cx"> CSSPropertyFilter,
</span><span class="cx"> CSSPropertyFloodColor,
</span><span class="lines">@@ -2966,6 +2968,10 @@
</span><span class="cx"> break;
</span><span class="cx">
</span><span class="cx"> // New positioning properties for SVG.
</span><ins>+ case CSSPropertyCx:
+ return zoomAdjustedPixelValueForLength(style->svgStyle().cx(), style.get());
+ case CSSPropertyCy:
+ return zoomAdjustedPixelValueForLength(style->svgStyle().cy(), style.get());
</ins><span class="cx"> case CSSPropertyX:
</span><span class="cx"> return zoomAdjustedPixelValueForLength(style->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 (172640 => 172641)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSParser.cpp        2014-08-15 19:11:55 UTC (rev 172640)
+++ trunk/Source/WebCore/css/CSSParser.cpp        2014-08-15 19:38:10 UTC (rev 172641)
</span><span class="lines">@@ -562,6 +562,8 @@
</span><span class="cx"> return RuntimeEnabledFeatures::sharedFeatures().cssShapesEnabled();
</span><span class="cx"> #endif
</span><span class="cx"> case CSSPropertyBottom:
</span><ins>+ case CSSPropertyCx:
+ case CSSPropertyCy:
</ins><span class="cx"> case CSSPropertyLeft:
</span><span class="cx"> case CSSPropertyMarginBottom:
</span><span class="cx"> case CSSPropertyMarginLeft:
</span></span></pre></div>
<a id="trunkSourceWebCorecssDeprecatedStyleBuildercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/DeprecatedStyleBuilder.cpp (172640 => 172641)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/DeprecatedStyleBuilder.cpp        2014-08-15 19:11:55 UTC (rev 172640)
+++ trunk/Source/WebCore/css/DeprecatedStyleBuilder.cpp        2014-08-15 19:38:10 UTC (rev 172641)
</span><span class="lines">@@ -2594,6 +2594,8 @@
</span><span class="cx"> // UAs must treat 'word-wrap' as an alternate name for the 'overflow-wrap' property. So using the same handlers.
</span><span class="cx"> setPropertyHandler(CSSPropertyWordWrap, ApplyPropertyDefault<EOverflowWrap, &RenderStyle::overflowWrap, EOverflowWrap, &RenderStyle::setOverflowWrap, EOverflowWrap, &RenderStyle::initialOverflowWrap>::createHandler());
</span><span class="cx">
</span><ins>+ setPropertyHandler(CSSPropertyCx, ApplyPropertyLength<&RenderStyle::cx, &RenderStyle::setCx, &RenderStyle::initialZeroLength>::createHandler());
+ setPropertyHandler(CSSPropertyCy, ApplyPropertyLength<&RenderStyle::cy, &RenderStyle::setCy, &RenderStyle::initialZeroLength>::createHandler());
</ins><span class="cx"> setPropertyHandler(CSSPropertyX, ApplyPropertyLength<&RenderStyle::x, &RenderStyle::setX, &RenderStyle::initialZeroLength>::createHandler());
</span><span class="cx"> setPropertyHandler(CSSPropertyY, ApplyPropertyLength<&RenderStyle::y, &RenderStyle::setY, &RenderStyle::initialZeroLength>::createHandler());
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorecssSVGCSSParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/SVGCSSParser.cpp (172640 => 172641)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/SVGCSSParser.cpp        2014-08-15 19:11:55 UTC (rev 172640)
+++ trunk/Source/WebCore/css/SVGCSSParser.cpp        2014-08-15 19:38:10 UTC (rev 172641)
</span><span class="lines">@@ -299,6 +299,8 @@
</span><span class="cx"> m_implicitShorthand = false;
</span><span class="cx"> return true;
</span><span class="cx"> }
</span><ins>+ case CSSPropertyCx:
+ case CSSPropertyCy:
</ins><span class="cx"> case CSSPropertyX:
</span><span class="cx"> case CSSPropertyY:
</span><span class="cx"> valid_primitive = (!id && validUnit(value, FLength | FPercent));
</span></span></pre></div>
<a id="trunkSourceWebCorecssSVGCSSPropertyNamesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/SVGCSSPropertyNames.in (172640 => 172641)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/SVGCSSPropertyNames.in        2014-08-15 19:11:55 UTC (rev 172640)
+++ trunk/Source/WebCore/css/SVGCSSPropertyNames.in        2014-08-15 19:38:10 UTC (rev 172641)
</span><span class="lines">@@ -52,6 +52,8 @@
</span><span class="cx">
</span><span class="cx"> -webkit-svg-shadow
</span><span class="cx">
</span><ins>+cx
+cy
</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 (172640 => 172641)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/animation/CSSPropertyAnimation.cpp        2014-08-15 19:11:55 UTC (rev 172640)
+++ trunk/Source/WebCore/page/animation/CSSPropertyAnimation.cpp        2014-08-15 19:38:10 UTC (rev 172641)
</span><span class="lines">@@ -1256,6 +1256,8 @@
</span><span class="cx"> new PropertyWrapper<SVGLength>(CSSPropertyStrokeDashoffset, &RenderStyle::strokeDashOffset, &RenderStyle::setStrokeDashOffset),
</span><span class="cx"> new PropertyWrapper<float>(CSSPropertyStrokeMiterlimit, &RenderStyle::strokeMiterLimit, &RenderStyle::setStrokeMiterLimit),
</span><span class="cx">
</span><ins>+ new LengthPropertyWrapper<Length>(CSSPropertyCx, &RenderStyle::cx, &RenderStyle::setCx),
+ new LengthPropertyWrapper<Length>(CSSPropertyCy, &RenderStyle::cy, &RenderStyle::setCy),
</ins><span class="cx"> new LengthPropertyWrapper<Length>(CSSPropertyX, &RenderStyle::x, &RenderStyle::setX),
</span><span class="cx"> new LengthPropertyWrapper<Length>(CSSPropertyY, &RenderStyle::y, &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 (172640 => 172641)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/RenderStyle.h        2014-08-15 19:11:55 UTC (rev 172640)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.h        2014-08-15 19:38:10 UTC (rev 172641)
</span><span class="lines">@@ -1665,6 +1665,10 @@
</span><span class="cx"> float strokeMiterLimit() const { return svgStyle().strokeMiterLimit(); }
</span><span class="cx"> void setStrokeMiterLimit(float f) { accessSVGStyle().setStrokeMiterLimit(f); }
</span><span class="cx">
</span><ins>+ const Length& cx() const { return svgStyle().cx(); }
+ void setCx(Length cx) { accessSVGStyle().setCx(cx); }
+ const Length& cy() const { return svgStyle().cy(); }
+ void setCy(Length cy) { accessSVGStyle().setCy(cy); }
</ins><span class="cx"> const Length& x() const { return svgStyle().x(); }
</span><span class="cx"> void setX(Length x) { accessSVGStyle().setX(x); }
</span><span class="cx"> const Length& 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 (172640 => 172641)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/SVGRenderStyle.h        2014-08-15 19:11:55 UTC (rev 172640)
+++ trunk/Source/WebCore/rendering/style/SVGRenderStyle.h        2014-08-15 19:38:10 UTC (rev 172641)
</span><span class="lines">@@ -146,6 +146,16 @@
</span><span class="cx"> void setGlyphOrientationVertical(EGlyphOrientation val) { svg_inherited_flags._glyphOrientationVertical = val; }
</span><span class="cx"> void setMaskType(EMaskType val) { svg_noninherited_flags.f.maskType = val; }
</span><span class="cx"> void setPaintOrder(PaintOrder val) { svg_inherited_flags.paintOrder = val; }
</span><ins>+ void setCx(const Length& obj)
+ {
+ if (!(layout->cx == obj))
+ layout.access()->cx = obj;
+ }
+ void setCy(const Length& obj)
+ {
+ if (!(layout->cy == obj))
+ layout.access()->cy = obj;
+ }
</ins><span class="cx"> void setX(const Length& obj)
</span><span class="cx"> {
</span><span class="cx"> if (!(layout->x == obj))
</span><span class="lines">@@ -353,6 +363,8 @@
</span><span class="cx"> const Color& lightingColor() const { return misc->lightingColor; }
</span><span class="cx"> SVGLength baselineShiftValue() const { return misc->baselineShiftValue; }
</span><span class="cx"> ShadowData* shadow() const { return shadowSVG->shadow.get(); }
</span><ins>+ const Length& cx() const { return layout->cx; }
+ const Length& cy() const { return layout->cy; }
</ins><span class="cx"> const Length& x() const { return layout->x; }
</span><span class="cx"> const Length& y() const { return layout->y; }
</span><span class="cx"> String clipperResource() const { return resources->clipper; }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleSVGRenderStyleDefscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/SVGRenderStyleDefs.cpp (172640 => 172641)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/SVGRenderStyleDefs.cpp        2014-08-15 19:11:55 UTC (rev 172640)
+++ trunk/Source/WebCore/rendering/style/SVGRenderStyleDefs.cpp        2014-08-15 19:38:10 UTC (rev 172641)
</span><span class="lines">@@ -278,13 +278,17 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> StyleLayoutData::StyleLayoutData()
</span><del>- : x(RenderStyle::initialZeroLength())
</del><ins>+ : cx(RenderStyle::initialZeroLength())
+ , cy(RenderStyle::initialZeroLength())
+ , x(RenderStyle::initialZeroLength())
</ins><span class="cx"> , y(RenderStyle::initialZeroLength())
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> inline StyleLayoutData::StyleLayoutData(const StyleLayoutData& other)
</span><span class="cx"> : RefCounted<StyleLayoutData>()
</span><ins>+ , cx(other.cx)
+ , cy(other.cy)
</ins><span class="cx"> , x(other.x)
</span><span class="cx"> , y(other.y)
</span><span class="cx"> {
</span><span class="lines">@@ -297,7 +301,9 @@
</span><span class="cx">
</span><span class="cx"> bool StyleLayoutData::operator==(const StyleLayoutData& other) const
</span><span class="cx"> {
</span><del>- return x == other.x
</del><ins>+ return cx == other.cx
+ && cy == other.cy
+ && x == other.x
</ins><span class="cx"> && y == other.y;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleSVGRenderStyleDefsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/SVGRenderStyleDefs.h (172640 => 172641)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/SVGRenderStyleDefs.h        2014-08-15 19:11:55 UTC (rev 172640)
+++ trunk/Source/WebCore/rendering/style/SVGRenderStyleDefs.h        2014-08-15 19:38:10 UTC (rev 172641)
</span><span class="lines">@@ -302,6 +302,8 @@
</span><span class="cx"> return !(*this == other);
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+ Length cx;
+ Length cy;
</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 (172640 => 172641)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/RenderSVGEllipse.cpp        2014-08-15 19:11:55 UTC (rev 172640)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGEllipse.cpp        2014-08-15 19:38:10 UTC (rev 172641)
</span><span class="lines">@@ -77,21 +77,21 @@
</span><span class="cx">
</span><span class="cx"> void RenderSVGEllipse::calculateRadiiAndCenter()
</span><span class="cx"> {
</span><ins>+ SVGLengthContext lengthContext(&graphicsElement());
+ m_center = FloatPoint(
+ lengthContext.valueForLength(style().svgStyle().cx(), LengthModeWidth),
+ lengthContext.valueForLength(style().svgStyle().cy(), LengthModeHeight));
</ins><span class="cx"> if (isSVGCircleElement(graphicsElement())) {
</span><span class="cx"> SVGCircleElement& circle = toSVGCircleElement(graphicsElement());
</span><span class="cx"> SVGLengthContext lengthContext(&circle);
</span><span class="cx"> float radius = circle.r().value(lengthContext);
</span><span class="cx"> m_radii = FloatSize(radius, radius);
</span><del>- m_center = FloatPoint(circle.cx().value(lengthContext), circle.cy().value(lengthContext));
</del><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> ASSERT(isSVGEllipseElement(graphicsElement()));
</span><span class="cx"> SVGEllipseElement& ellipse = toSVGEllipseElement(graphicsElement());
</span><del>-
- SVGLengthContext lengthContext(&ellipse);
</del><span class="cx"> m_radii = FloatSize(ellipse.rx().value(lengthContext), ellipse.ry().value(lengthContext));
</span><del>- m_center = FloatPoint(ellipse.cx().value(lengthContext), ellipse.cy().value(lengthContext));
</del><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 (172640 => 172641)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/SVGPathData.cpp        2014-08-15 19:11:55 UTC (rev 172640)
+++ trunk/Source/WebCore/rendering/svg/SVGPathData.cpp        2014-08-15 19:38:10 UTC (rev 172641)
</span><span class="lines">@@ -44,8 +44,15 @@
</span><span class="cx">
</span><span class="cx"> SVGLengthContext lengthContext(element);
</span><span class="cx"> float r = circle->r().value(lengthContext);
</span><del>- if (r > 0)
- path.addEllipse(FloatRect(circle->cx().value(lengthContext) - r, circle->cy().value(lengthContext) - r, r * 2, r * 2));
</del><ins>+ if (r > 0) {
+ RenderElement* renderer = circle->renderer();
+ if (!renderer)
+ return;
+ RenderStyle& style = renderer->style();
+ float cx = lengthContext.valueForLength(style.svgStyle().cx(), LengthModeWidth);
+ float cy = lengthContext.valueForLength(style.svgStyle().cy(), LengthModeHeight);
+ path.addEllipse(FloatRect(cx - r, cy - r, r * 2, r * 2));
+ }
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static void updatePathFromEllipseElement(SVGElement* element, Path& path)
</span><span class="lines">@@ -59,7 +66,13 @@
</span><span class="cx"> float ry = ellipse->ry().value(lengthContext);
</span><span class="cx"> if (ry <= 0)
</span><span class="cx"> return;
</span><del>- path.addEllipse(FloatRect(ellipse->cx().value(lengthContext) - rx, ellipse->cy().value(lengthContext) - ry, rx * 2, ry * 2));
</del><ins>+ RenderElement* renderer = ellipse->renderer();
+ if (!renderer)
+ return;
+ RenderStyle& style = renderer->style();
+ float cx = lengthContext.valueForLength(style.svgStyle().cx(), LengthModeWidth);
+ float cy = lengthContext.valueForLength(style.svgStyle().cy(), LengthModeHeight);
+ path.addEllipse(FloatRect(cx - rx, cy - ry, rx * 2, ry * 2));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static void updatePathFromLineElement(SVGElement* element, Path& path)
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGCircleElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGCircleElement.cpp (172640 => 172641)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGCircleElement.cpp        2014-08-15 19:11:55 UTC (rev 172640)
+++ trunk/Source/WebCore/svg/SVGCircleElement.cpp        2014-08-15 19:38:10 UTC (rev 172641)
</span><span class="lines">@@ -106,18 +106,20 @@
</span><span class="cx">
</span><span class="cx"> SVGElementInstance::InvalidationGuard invalidationGuard(this);
</span><span class="cx">
</span><del>- bool isLengthAttribute = attrName == SVGNames::cxAttr
- || attrName == SVGNames::cyAttr
- || attrName == SVGNames::rAttr;
</del><ins>+ if (attrName == SVGNames::cxAttr
+ || attrName == SVGNames::cyAttr) {
+ invalidateSVGPresentationAttributeStyle();
+ return;
+ }
</ins><span class="cx">
</span><del>- if (isLengthAttribute)
</del><ins>+ if (attrName == SVGNames::rAttr)
</ins><span class="cx"> updateRelativeLengthsInformation();
</span><span class="cx">
</span><span class="cx"> RenderSVGShape* renderer = toRenderSVGShape(this->renderer());
</span><span class="cx"> if (!renderer)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- if (isLengthAttribute) {
</del><ins>+ if (attrName == SVGNames::rAttr) {
</ins><span class="cx"> renderer->setNeedsShapeUpdate();
</span><span class="cx"> RenderSVGResource::markForLayoutAndParentResourceInvalidation(*renderer);
</span><span class="cx"> return;
</span><span class="lines">@@ -131,13 +133,6 @@
</span><span class="cx"> ASSERT_NOT_REACHED();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool SVGCircleElement::selfHasRelativeLengths() const
-{
- return cx().isRelative()
- || cy().isRelative()
- || r().isRelative();
-}
-
</del><span class="cx"> RenderPtr<RenderElement> SVGCircleElement::createElementRenderer(PassRef<RenderStyle> style)
</span><span class="cx"> {
</span><span class="cx"> return createRenderer<RenderSVGEllipse>(*this, WTF::move(style));
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGCircleElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGCircleElement.h (172640 => 172641)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGCircleElement.h        2014-08-15 19:11:55 UTC (rev 172640)
+++ trunk/Source/WebCore/svg/SVGCircleElement.h        2014-08-15 19:38:10 UTC (rev 172641)
</span><span class="lines">@@ -42,7 +42,7 @@
</span><span class="cx"> virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
</span><span class="cx"> virtual void svgAttributeChanged(const QualifiedName&) override;
</span><span class="cx">
</span><del>- virtual bool selfHasRelativeLengths() const override;
</del><ins>+ virtual bool selfHasRelativeLengths() const override { return true; }
</ins><span class="cx">
</span><span class="cx"> virtual RenderPtr<RenderElement> createElementRenderer(PassRef<RenderStyle>) override;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGElement.cpp (172640 => 172641)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGElement.cpp        2014-08-15 19:11:55 UTC (rev 172640)
+++ trunk/Source/WebCore/svg/SVGElement.cpp        2014-08-15 19:38:10 UTC (rev 172641)
</span><span class="lines">@@ -92,6 +92,8 @@
</span><span class="cx"> &color_profileAttr,
</span><span class="cx"> &color_renderingAttr,
</span><span class="cx"> &cursorAttr,
</span><ins>+ &cxAttr,
+ &cyAttr,
</ins><span class="cx"> &SVGNames::directionAttr,
</span><span class="cx"> &displayAttr,
</span><span class="cx"> &dominant_baselineAttr,
</span><span class="lines">@@ -244,6 +246,8 @@
</span><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> static const TableEntry table[] = {
</span><ins>+ { cxAttr, AnimatedLength },
+ { cyAttr, 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 (172640 => 172641)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGEllipseElement.cpp        2014-08-15 19:11:55 UTC (rev 172640)
+++ trunk/Source/WebCore/svg/SVGEllipseElement.cpp        2014-08-15 19:38:10 UTC (rev 172641)
</span><span class="lines">@@ -110,9 +110,13 @@
</span><span class="cx">
</span><span class="cx"> SVGElementInstance::InvalidationGuard invalidationGuard(this);
</span><span class="cx">
</span><del>- bool isLengthAttribute = attrName == SVGNames::cxAttr
- || attrName == SVGNames::cyAttr
- || attrName == SVGNames::rxAttr
</del><ins>+ if (attrName == SVGNames::cxAttr
+ || attrName == SVGNames::cyAttr) {
+ invalidateSVGPresentationAttributeStyle();
+ return;
+ }
+
+ bool isLengthAttribute = attrName == SVGNames::rxAttr
</ins><span class="cx"> || attrName == SVGNames::ryAttr;
</span><span class="cx">
</span><span class="cx"> if (isLengthAttribute)
</span><span class="lines">@@ -135,14 +139,6 @@
</span><span class="cx">
</span><span class="cx"> ASSERT_NOT_REACHED();
</span><span class="cx"> }
</span><del>-
-bool SVGEllipseElement::selfHasRelativeLengths() const
-{
- return cx().isRelative()
- || cy().isRelative()
- || rx().isRelative()
- || ry().isRelative();
-}
</del><span class="cx">
</span><span class="cx"> RenderPtr<RenderElement> SVGEllipseElement::createElementRenderer(PassRef<RenderStyle> style)
</span><span class="cx"> {
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGEllipseElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGEllipseElement.h (172640 => 172641)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGEllipseElement.h        2014-08-15 19:11:55 UTC (rev 172640)
+++ trunk/Source/WebCore/svg/SVGEllipseElement.h        2014-08-15 19:38:10 UTC (rev 172641)
</span><span class="lines">@@ -42,7 +42,7 @@
</span><span class="cx"> virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
</span><span class="cx"> virtual void svgAttributeChanged(const QualifiedName&) override;
</span><span class="cx">
</span><del>- virtual bool selfHasRelativeLengths() const override;
</del><ins>+ virtual bool selfHasRelativeLengths() const override { return true; };
</ins><span class="cx">
</span><span class="cx"> virtual RenderPtr<RenderElement> createElementRenderer(PassRef<RenderStyle>) override;
</span><span class="cx">
</span></span></pre>
</div>
</div>
</body>
</html>