<!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>[169522] 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/169522">169522</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2014-06-01 22:01:12 -0700 (Sun, 01 Jun 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>getBBox() returns (0,0) when width or height is zero.
https://bugs.webkit.org/show_bug.cgi?id=93290

Patch by Nikos Andronikos &lt;nikos.andronikos-webkit@cisra.canon.com.au&gt; on 2014-06-01
Reviewed by Philip Rogers.

Source/WebCore:

The SVG spec states that a width or height of zero for  rects, circles and
ellipses is valid but disables rendering of that shape.
In this case, getBBox() should return the actual bounding box of the element.
Previously, WebKit always returned (0,0,0,0) rather than the
correct bounding box. This patch fixes that.

Rects and ellipses both now follow the same behaviour where
the fall-back code path is only used when the shape will render (e.g. not
when a dimension &lt;= 0).

This necessitates calling calculateRadiiAndCenter for ellipses even
when the calculated values will be discarded in the fall back code path.
But calculateRadiiAndCenter is cheap and this avoids making changes
elsewhere to stop CG drawing a zero width (or height) ellipse.

Tests: svg/custom/getBBox-js-circle-zerodimension.html
       svg/custom/getBBox-js-ellipse-zerodimension.html
       svg/custom/getBBox-js-rect-zerodimension.html

* rendering/svg/RenderSVGEllipse.cpp:
(WebCore::RenderSVGEllipse::updateShapeFromElement):
Only follow fall-back code path when shape renders.
width||height==0 is not an error case so calculate bounding box.

* rendering/svg/RenderSVGRect.cpp:
(WebCore::RenderSVGRect::updateShapeFromElement):
Only follow fall-back code path when shape renders.
rx||ry==0 is not an error case so calculate bounding box.

LayoutTests:

* platform/mac/svg/W3C-SVG-1.1/shapes-circle-02-t-expected.txt:
* platform/mac/svg/W3C-SVG-1.1/shapes-ellipse-02-t-expected.txt:
* platform/mac/svg/W3C-SVG-1.1/shapes-intro-01-t-expected.txt:
* platform/mac/svg/W3C-SVG-1.1/shapes-rect-02-t-expected.txt:
* svg/W3C-SVG-1.1/animate-elem-32-t-expected.txt:
* svg/W3C-SVG-1.1/shapes-circle-02-t-expected.txt:
* svg/W3C-SVG-1.1/shapes-ellipse-02-t-expected.txt:
* svg/W3C-SVG-1.1/shapes-intro-01-t-expected.txt:
* svg/W3C-SVG-1.1/shapes-rect-02-t-expected.txt:
* svg/custom/getBBox-js-circle-zerodimension-expected.txt: Added.
* svg/custom/getBBox-js-circle-zerodimension.html: Added.
* svg/custom/getBBox-js-ellipse-zerodimension-expected.txt: Added.
* svg/custom/getBBox-js-ellipse-zerodimension.html: Added.
* svg/custom/getBBox-js-rect-zerodimension-expected.txt: Added.
* svg/custom/getBBox-js-rect-zerodimension.html: Added.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsplatformmacsvgW3CSVG11animateelem32texpectedtxt">trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-32-t-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacsvgW3CSVG11shapescircle02texpectedtxt">trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/shapes-circle-02-t-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacsvgW3CSVG11shapesellipse02texpectedtxt">trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/shapes-ellipse-02-t-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacsvgW3CSVG11shapesintro01texpectedtxt">trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/shapes-intro-01-t-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacsvgW3CSVG11shapesrect02texpectedtxt">trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/shapes-rect-02-t-expected.txt</a></li>
<li><a href="#trunkLayoutTestssvgW3CSVG11animateelem32texpectedtxt">trunk/LayoutTests/svg/W3C-SVG-1.1/animate-elem-32-t-expected.txt</a></li>
<li><a href="#trunkLayoutTestssvgW3CSVG11shapescircle02texpectedtxt">trunk/LayoutTests/svg/W3C-SVG-1.1/shapes-circle-02-t-expected.txt</a></li>
<li><a href="#trunkLayoutTestssvgW3CSVG11shapesellipse02texpectedtxt">trunk/LayoutTests/svg/W3C-SVG-1.1/shapes-ellipse-02-t-expected.txt</a></li>
<li><a href="#trunkLayoutTestssvgW3CSVG11shapesintro01texpectedtxt">trunk/LayoutTests/svg/W3C-SVG-1.1/shapes-intro-01-t-expected.txt</a></li>
<li><a href="#trunkLayoutTestssvgW3CSVG11shapesrect02texpectedtxt">trunk/LayoutTests/svg/W3C-SVG-1.1/shapes-rect-02-t-expected.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgRenderSVGEllipsecpp">trunk/Source/WebCore/rendering/svg/RenderSVGEllipse.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgRenderSVGRectcpp">trunk/Source/WebCore/rendering/svg/RenderSVGRect.cpp</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestssvgcustomgetBBoxjscirclezerodimensionexpectedtxt">trunk/LayoutTests/svg/custom/getBBox-js-circle-zerodimension-expected.txt</a></li>
<li><a href="#trunkLayoutTestssvgcustomgetBBoxjscirclezerodimensionhtml">trunk/LayoutTests/svg/custom/getBBox-js-circle-zerodimension.html</a></li>
<li><a href="#trunkLayoutTestssvgcustomgetBBoxjsellipsezerodimensionexpectedtxt">trunk/LayoutTests/svg/custom/getBBox-js-ellipse-zerodimension-expected.txt</a></li>
<li><a href="#trunkLayoutTestssvgcustomgetBBoxjsellipsezerodimensionhtml">trunk/LayoutTests/svg/custom/getBBox-js-ellipse-zerodimension.html</a></li>
<li><a href="#trunkLayoutTestssvgcustomgetBBoxjsrectzerodimensionexpectedtxt">trunk/LayoutTests/svg/custom/getBBox-js-rect-zerodimension-expected.txt</a></li>
<li><a href="#trunkLayoutTestssvgcustomgetBBoxjsrectzerodimensionhtml">trunk/LayoutTests/svg/custom/getBBox-js-rect-zerodimension.html</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (169521 => 169522)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2014-06-02 01:53:28 UTC (rev 169521)
+++ trunk/LayoutTests/ChangeLog        2014-06-02 05:01:12 UTC (rev 169522)
</span><span class="lines">@@ -1,3 +1,26 @@
</span><ins>+2014-06-01  Nikos Andronikos  &lt;nikos.andronikos-webkit@cisra.canon.com.au&gt;
+
+        getBBox() returns (0,0) when width or height is zero.
+        https://bugs.webkit.org/show_bug.cgi?id=93290
+
+        Reviewed by Philip Rogers.

+        * platform/mac/svg/W3C-SVG-1.1/shapes-circle-02-t-expected.txt:
+        * platform/mac/svg/W3C-SVG-1.1/shapes-ellipse-02-t-expected.txt:
+        * platform/mac/svg/W3C-SVG-1.1/shapes-intro-01-t-expected.txt:
+        * platform/mac/svg/W3C-SVG-1.1/shapes-rect-02-t-expected.txt:
+        * svg/W3C-SVG-1.1/animate-elem-32-t-expected.txt:
+        * svg/W3C-SVG-1.1/shapes-circle-02-t-expected.txt:
+        * svg/W3C-SVG-1.1/shapes-ellipse-02-t-expected.txt:
+        * svg/W3C-SVG-1.1/shapes-intro-01-t-expected.txt:
+        * svg/W3C-SVG-1.1/shapes-rect-02-t-expected.txt:
+        * svg/custom/getBBox-js-circle-zerodimension-expected.txt: Added.
+        * svg/custom/getBBox-js-circle-zerodimension.html: Added.
+        * svg/custom/getBBox-js-ellipse-zerodimension-expected.txt: Added.
+        * svg/custom/getBBox-js-ellipse-zerodimension.html: Added.
+        * svg/custom/getBBox-js-rect-zerodimension-expected.txt: Added.
+        * svg/custom/getBBox-js-rect-zerodimension.html: Added.
+
</ins><span class="cx"> 2014-06-01  Gyuyoung Kim  &lt;gyuyoung.kim@samsung.com&gt;
</span><span class="cx"> 
</span><span class="cx">         EFL gardening. Unskip some iframe tests which have passed since buildbot OS bump up.
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacsvgW3CSVG11animateelem32texpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-32-t-expected.txt (169521 => 169522)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-32-t-expected.txt        2014-06-02 01:53:28 UTC (rev 169521)
+++ trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-32-t-expected.txt        2014-06-02 05:01:12 UTC (rev 169522)
</span><span class="lines">@@ -40,15 +40,15 @@
</span><span class="cx">         RenderSVGRect {rect} at (393,49) size 37x62 [stroke={[type=SOLID] [color=#000000]}] [x=394.00] [y=50.00] [width=35.00] [height=60.00]
</span><span class="cx">         RenderSVGRect {rect} at (393,154) size 37x62 [stroke={[type=SOLID] [color=#000000]}] [x=394.00] [y=155.00] [width=35.00] [height=60.00]
</span><span class="cx">         RenderSVGRect {rect} at (209,259) size 62x12 [stroke={[type=SOLID] [color=#000000]}] [x=210.00] [y=260.00] [width=60.00] [height=10.00]
</span><del>-      RenderSVGRect {rect} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#00FF00]}] [x=55.00] [y=55.00] [width=0.00] [height=50.00]
-      RenderSVGRect {rect} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#00FF00]}] [x=135.00] [y=55.00] [width=25.00] [height=0.00]
</del><ins>+      RenderSVGRect {rect} at (54,54) size 2x52 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#00FF00]}] [x=55.00] [y=55.00] [width=0.00] [height=50.00]
+      RenderSVGRect {rect} at (134,54) size 27x2 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#00FF00]}] [x=135.00] [y=55.00] [width=25.00] [height=0.00]
</ins><span class="cx">       RenderSVGRect {rect} at (0,0) size 0x0 [fill={[type=SOLID] [color=#FF0000]}] [x=55.00] [y=160.00] [width=0.00] [height=50.00]
</span><span class="cx">       RenderSVGRect {rect} at (0,0) size 0x0 [fill={[type=SOLID] [color=#FF0000]}] [x=135.00] [y=160.00] [width=25.00] [height=0.00]
</span><del>-      RenderSVGEllipse {circle} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#00FF00]}] [cx=240.00] [cy=80.00] [r=0.00]
</del><ins>+      RenderSVGEllipse {circle} at (239,79) size 2x2 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#00FF00]}] [cx=240.00] [cy=80.00] [r=0.00]
</ins><span class="cx">       RenderSVGEllipse {circle} at (0,0) size 0x0 [fill={[type=SOLID] [color=#FF0000]}] [cx=240.00] [cy=185.00] [r=0.00]
</span><del>-      RenderSVGEllipse {ellipse} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#0000FF]}] [fill={[type=SOLID] [color=#00FF00]}] [cx=332.00] [cy=80.00] [rx=0.00] [ry=25.00]
</del><ins>+      RenderSVGEllipse {ellipse} at (331,54) size 2x52 [stroke={[type=SOLID] [color=#0000FF]}] [fill={[type=SOLID] [color=#00FF00]}] [cx=332.00] [cy=80.00] [rx=0.00] [ry=25.00]
</ins><span class="cx">       RenderSVGEllipse {ellipse} at (0,0) size 0x0 [fill={[type=SOLID] [color=#FF0000]}] [cx=332.00] [cy=185.00] [rx=0.00] [ry=25.00]
</span><del>-      RenderSVGEllipse {ellipse} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#0000FF]}] [fill={[type=SOLID] [color=#00FF00]}] [cx=411.00] [cy=80.00] [rx=12.00] [ry=0.00]
</del><ins>+      RenderSVGEllipse {ellipse} at (398,79) size 26x2 [stroke={[type=SOLID] [color=#0000FF]}] [fill={[type=SOLID] [color=#00FF00]}] [cx=411.00] [cy=80.00] [rx=12.00] [ry=0.00]
</ins><span class="cx">       RenderSVGEllipse {ellipse} at (0,0) size 0x0 [fill={[type=SOLID] [color=#FF0000]}] [cx=411.00] [cy=185.00] [rx=12.00] [ry=0.00]
</span><span class="cx">       RenderSVGPath {line} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#0000FF]}] [fill={[type=SOLID] [color=#000000]}] [x1=240.00] [y1=265.00] [x2=240.00] [y2=265.00]
</span><span class="cx">     RenderSVGText {text} at (10,304) size 284x46 contains 1 chunk(s)
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacsvgW3CSVG11shapescircle02texpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/shapes-circle-02-t-expected.txt (169521 => 169522)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/shapes-circle-02-t-expected.txt        2014-06-02 01:53:28 UTC (rev 169521)
+++ trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/shapes-circle-02-t-expected.txt        2014-06-02 05:01:12 UTC (rev 169522)
</span><span class="lines">@@ -6,7 +6,7 @@
</span><span class="cx">       RenderSVGEllipse {circle} at (0,0) size 51x51 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [cx=0.00] [cy=0.00] [r=50.00]
</span><span class="cx">       RenderSVGEllipse {circle} at (0,49) size 51x102 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [cx=0.00] [cy=100.00] [r=50.00]
</span><span class="cx">       RenderSVGEllipse {circle} at (49,0) size 102x51 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [cx=100.00] [cy=0.00] [r=50.00]
</span><del>-      RenderSVGEllipse {circle} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [cx=100.00] [cy=100.00] [r=0.00]
</del><ins>+      RenderSVGEllipse {circle} at (99,99) size 2x2 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [cx=100.00] [cy=100.00] [r=0.00]
</ins><span class="cx">       RenderSVGEllipse {circle} at (49,49) size 102x102 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [cx=100.00] [cy=100.00] [r=50.00]
</span><span class="cx">     RenderSVGText {text} at (10,304) size 264x46 contains 1 chunk(s)
</span><span class="cx">       RenderSVGInlineText {#text} at (0,0) size 264x46
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacsvgW3CSVG11shapesellipse02texpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/shapes-ellipse-02-t-expected.txt (169521 => 169522)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/shapes-ellipse-02-t-expected.txt        2014-06-02 01:53:28 UTC (rev 169521)
+++ trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/shapes-ellipse-02-t-expected.txt        2014-06-02 05:01:12 UTC (rev 169522)
</span><span class="lines">@@ -4,8 +4,8 @@
</span><span class="cx">   RenderSVGRoot {svg} at (0,0) size 480x360
</span><span class="cx">     RenderSVGContainer {g} at (0,0) size 351x301
</span><span class="cx">       RenderSVGEllipse {ellipse} at (0,0) size 101x51 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [cx=0.00] [cy=0.00] [rx=100.00] [ry=50.00]
</span><del>-      RenderSVGEllipse {ellipse} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [cx=100.00] [cy=150.00] [rx=0.00] [ry=50.00]
-      RenderSVGEllipse {ellipse} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [cx=200.00] [cy=50.00] [rx=100.00] [ry=0.00]
</del><ins>+      RenderSVGEllipse {ellipse} at (99,99) size 2x102 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [cx=100.00] [cy=150.00] [rx=0.00] [ry=50.00]
+      RenderSVGEllipse {ellipse} at (99,49) size 202x2 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [cx=200.00] [cy=50.00] [rx=100.00] [ry=0.00]
</ins><span class="cx">       RenderSVGEllipse {ellipse} at (149,199) size 202x102 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [cx=250.00] [cy=250.00] [rx=100.00] [ry=50.00]
</span><span class="cx">     RenderSVGText {text} at (10,304) size 264x46 contains 1 chunk(s)
</span><span class="cx">       RenderSVGInlineText {#text} at (0,0) size 264x46
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacsvgW3CSVG11shapesintro01texpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/shapes-intro-01-t-expected.txt (169521 => 169522)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/shapes-intro-01-t-expected.txt        2014-06-02 01:53:28 UTC (rev 169521)
+++ trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/shapes-intro-01-t-expected.txt        2014-06-02 05:01:12 UTC (rev 169522)
</span><span class="lines">@@ -40,15 +40,15 @@
</span><span class="cx">         RenderSVGText {text} at (235,282) size 52x10 contains 1 chunk(s)
</span><span class="cx">           RenderSVGInlineText {#text} at (0,0) size 52x9
</span><span class="cx">             chunk 1 text run 1 at (235.00,290.00) startOffset 0 endOffset 16 width 52.00: &quot;Zero length line&quot;
</span><del>-      RenderSVGRect {rect} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#000000]}] [x=55.00] [y=55.00] [width=0.00] [height=50.00]
</del><ins>+      RenderSVGRect {rect} at (54,54) size 2x52 [stroke={[type=SOLID] [color=#000000]}] [x=55.00] [y=55.00] [width=0.00] [height=50.00]
</ins><span class="cx">       RenderSVGRect {rect} at (0,0) size 0x0 [fill={[type=SOLID] [color=#FF0000]}] [x=55.00] [y=160.00] [width=0.00] [height=50.00]
</span><del>-      RenderSVGRect {rect} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#0000FF]}] [fill={[type=SOLID] [color=#00FF00]}] [x=135.00] [y=55.00] [width=25.00] [height=0.00]
</del><ins>+      RenderSVGRect {rect} at (134,54) size 27x2 [stroke={[type=SOLID] [color=#0000FF]}] [fill={[type=SOLID] [color=#00FF00]}] [x=135.00] [y=55.00] [width=25.00] [height=0.00]
</ins><span class="cx">       RenderSVGRect {rect} at (0,0) size 0x0 [fill={[type=SOLID] [color=#00FF00]}] [x=135.00] [y=160.00] [width=25.00] [height=0.00]
</span><del>-      RenderSVGEllipse {circle} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#000000]}] [cx=240.00] [cy=80.00] [r=0.00]
</del><ins>+      RenderSVGEllipse {circle} at (239,79) size 2x2 [stroke={[type=SOLID] [color=#000000]}] [cx=240.00] [cy=80.00] [r=0.00]
</ins><span class="cx">       RenderSVGEllipse {circle} at (0,0) size 0x0 [fill={[type=SOLID] [color=#FF0000]}] [cx=240.00] [cy=185.00] [r=0.00]
</span><del>-      RenderSVGEllipse {ellipse} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#0000FF]}] [fill={[type=SOLID] [color=#00FF00]}] [cx=332.00] [cy=80.00] [rx=0.00] [ry=25.00]
</del><ins>+      RenderSVGEllipse {ellipse} at (331,54) size 2x52 [stroke={[type=SOLID] [color=#0000FF]}] [fill={[type=SOLID] [color=#00FF00]}] [cx=332.00] [cy=80.00] [rx=0.00] [ry=25.00]
</ins><span class="cx">       RenderSVGEllipse {ellipse} at (0,0) size 0x0 [fill={[type=SOLID] [color=#00FF00]}] [cx=332.00] [cy=185.00] [rx=0.00] [ry=25.00]
</span><del>-      RenderSVGEllipse {ellipse} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#000000]}] [cx=411.00] [cy=80.00] [rx=12.00] [ry=0.00]
</del><ins>+      RenderSVGEllipse {ellipse} at (398,79) size 26x2 [stroke={[type=SOLID] [color=#000000]}] [cx=411.00] [cy=80.00] [rx=12.00] [ry=0.00]
</ins><span class="cx">       RenderSVGEllipse {ellipse} at (0,0) size 0x0 [fill={[type=SOLID] [color=#FF0000]}] [cx=411.00] [cy=185.00] [rx=12.00] [ry=0.00]
</span><span class="cx">       RenderSVGPath {line} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#0000FF]}] [fill={[type=SOLID] [color=#000000]}] [x1=240.00] [y1=265.00] [x2=240.00] [y2=265.00]
</span><span class="cx">     RenderSVGText {text} at (10,304) size 264x46 contains 1 chunk(s)
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacsvgW3CSVG11shapesrect02texpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/shapes-rect-02-t-expected.txt (169521 => 169522)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/shapes-rect-02-t-expected.txt        2014-06-02 01:53:28 UTC (rev 169521)
+++ trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/shapes-rect-02-t-expected.txt        2014-06-02 05:01:12 UTC (rev 169522)
</span><span class="lines">@@ -2,11 +2,11 @@
</span><span class="cx">   RenderView at (0,0) size 480x360
</span><span class="cx"> layer at (0,0) size 480x360
</span><span class="cx">   RenderSVGRoot {svg} at (0,0) size 480x360
</span><del>-    RenderSVGContainer {g} at (0,0) size 181x277
</del><ins>+    RenderSVGContainer {g} at (0,0) size 401x277
</ins><span class="cx">       RenderSVGRect {rect} at (0,45) size 51x82 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [x=0.00] [y=46.00] [width=50.00] [height=80.00]
</span><span class="cx">       RenderSVGRect {rect} at (129,0) size 52x81 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [x=130.00] [y=0.00] [width=50.00] [height=80.00]
</span><del>-      RenderSVGRect {rect} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [x=250.00] [y=46.00] [width=0.00] [height=80.00]
-      RenderSVGRect {rect} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [x=350.00] [y=46.00] [width=50.00] [height=0.00]
</del><ins>+      RenderSVGRect {rect} at (249,45) size 2x82 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [x=250.00] [y=46.00] [width=0.00] [height=80.00]
+      RenderSVGRect {rect} at (349,45) size 52x2 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [x=350.00] [y=46.00] [width=50.00] [height=0.00]
</ins><span class="cx">       RenderSVGRect {rect} at (29,195) size 52x82 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [x=30.00] [y=196.00] [width=50.00] [height=80.00]
</span><span class="cx">       RenderSVGRect {rect} at (129,195) size 52x82 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [x=130.00] [y=196.00] [width=50.00] [height=80.00]
</span><span class="cx">     RenderSVGText {text} at (10,304) size 264x46 contains 1 chunk(s)
</span></span></pre></div>
<a id="trunkLayoutTestssvgW3CSVG11animateelem32texpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/svg/W3C-SVG-1.1/animate-elem-32-t-expected.txt (169521 => 169522)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/W3C-SVG-1.1/animate-elem-32-t-expected.txt        2014-06-02 01:53:28 UTC (rev 169521)
+++ trunk/LayoutTests/svg/W3C-SVG-1.1/animate-elem-32-t-expected.txt        2014-06-02 05:01:12 UTC (rev 169522)
</span><span class="lines">@@ -3,29 +3,29 @@
</span><span class="cx"> layer at (0,0) size 480x360
</span><span class="cx">   RenderSVGRoot {svg} at (0,0) size 480x360
</span><span class="cx">     RenderSVGContainer {g} at (5,49) size 458x243
</span><del>-      RenderSVGContainer {g} at (5,83) size 458x209
-        RenderSVGText {text} at (5,83) size 26x9 contains 1 chunk(s)
</del><ins>+      RenderSVGContainer {g} at (5,82) size 458x210
+        RenderSVGText {text} at (5,82) size 26x10 contains 1 chunk(s)
</ins><span class="cx">           RenderSVGInlineText {#text} at (0,0) size 26x9
</span><span class="cx">             chunk 1 text run 1 at (5.00,90.00) startOffset 0 endOffset 7 width 26.00: &quot;Stroked&quot;
</span><del>-        RenderSVGText {text} at (5,188) size 35x9 contains 1 chunk(s)
</del><ins>+        RenderSVGText {text} at (5,187) size 35x10 contains 1 chunk(s)
</ins><span class="cx">           RenderSVGInlineText {#text} at (0,0) size 35x9
</span><span class="cx">             chunk 1 text run 1 at (5.00,195.00) startOffset 0 endOffset 9 width 35.00: &quot;Unstroked&quot;
</span><del>-        RenderSVGText {text} at (50,128) size 51x9 contains 1 chunk(s)
</del><ins>+        RenderSVGText {text} at (50,127) size 51x10 contains 1 chunk(s)
</ins><span class="cx">           RenderSVGInlineText {#text} at (0,0) size 51x9
</span><span class="cx">             chunk 1 text run 1 at (50.00,135.00) startOffset 0 endOffset 15 width 51.00: &quot;Zero width rect&quot;
</span><del>-        RenderSVGText {text} at (130,128) size 53x9 contains 1 chunk(s)
</del><ins>+        RenderSVGText {text} at (130,127) size 53x10 contains 1 chunk(s)
</ins><span class="cx">           RenderSVGInlineText {#text} at (0,0) size 53x9
</span><span class="cx">             chunk 1 text run 1 at (130.00,135.00) startOffset 0 endOffset 16 width 53.00: &quot;Zero height rect&quot;
</span><del>-        RenderSVGText {text} at (210,128) size 60x9 contains 1 chunk(s)
</del><ins>+        RenderSVGText {text} at (210,127) size 60x10 contains 1 chunk(s)
</ins><span class="cx">           RenderSVGInlineText {#text} at (0,0) size 60x9
</span><span class="cx">             chunk 1 text run 1 at (210.00,135.00) startOffset 0 endOffset 18 width 60.00: &quot;Zero radius circle&quot;
</span><del>-        RenderSVGText {text} at (315,128) size 69x9 contains 1 chunk(s)
</del><ins>+        RenderSVGText {text} at (315,127) size 69x10 contains 1 chunk(s)
</ins><span class="cx">           RenderSVGInlineText {#text} at (0,0) size 69x9
</span><span class="cx">             chunk 1 text run 1 at (315.00,135.00) startOffset 0 endOffset 21 width 69.00: &quot;Zero x radius ellipse&quot;
</span><del>-        RenderSVGText {text} at (394,128) size 69x9 contains 1 chunk(s)
</del><ins>+        RenderSVGText {text} at (394,127) size 69x10 contains 1 chunk(s)
</ins><span class="cx">           RenderSVGInlineText {#text} at (0,0) size 69x9
</span><span class="cx">             chunk 1 text run 1 at (394.00,135.00) startOffset 0 endOffset 21 width 69.00: &quot;Zero y radius ellipse&quot;
</span><del>-        RenderSVGText {text} at (210,283) size 52x9 contains 1 chunk(s)
</del><ins>+        RenderSVGText {text} at (210,282) size 52x10 contains 1 chunk(s)
</ins><span class="cx">           RenderSVGInlineText {#text} at (0,0) size 52x9
</span><span class="cx">             chunk 1 text run 1 at (210.00,290.00) startOffset 0 endOffset 16 width 52.00: &quot;Zero length line&quot;
</span><span class="cx">       RenderSVGContainer {g} at (49,49) size 381x222
</span><span class="lines">@@ -40,18 +40,18 @@
</span><span class="cx">         RenderSVGRect {rect} at (393,49) size 37x62 [stroke={[type=SOLID] [color=#000000]}] [x=394.00] [y=50.00] [width=35.00] [height=60.00]
</span><span class="cx">         RenderSVGRect {rect} at (393,154) size 37x62 [stroke={[type=SOLID] [color=#000000]}] [x=394.00] [y=155.00] [width=35.00] [height=60.00]
</span><span class="cx">         RenderSVGRect {rect} at (209,259) size 62x12 [stroke={[type=SOLID] [color=#000000]}] [x=210.00] [y=260.00] [width=60.00] [height=10.00]
</span><del>-      RenderSVGRect {rect} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#00FF00]}] [x=55.00] [y=55.00] [width=0.00] [height=50.00]
-      RenderSVGRect {rect} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#00FF00]}] [x=135.00] [y=55.00] [width=25.00] [height=0.00]
</del><ins>+      RenderSVGRect {rect} at (54,54) size 2x52 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#00FF00]}] [x=55.00] [y=55.00] [width=0.00] [height=50.00]
+      RenderSVGRect {rect} at (134,54) size 27x2 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#00FF00]}] [x=135.00] [y=55.00] [width=25.00] [height=0.00]
</ins><span class="cx">       RenderSVGRect {rect} at (0,0) size 0x0 [fill={[type=SOLID] [color=#FF0000]}] [x=55.00] [y=160.00] [width=0.00] [height=50.00]
</span><span class="cx">       RenderSVGRect {rect} at (0,0) size 0x0 [fill={[type=SOLID] [color=#FF0000]}] [x=135.00] [y=160.00] [width=25.00] [height=0.00]
</span><del>-      RenderSVGEllipse {circle} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#00FF00]}] [cx=240.00] [cy=80.00] [r=0.00]
</del><ins>+      RenderSVGEllipse {circle} at (239,79) size 2x2 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#00FF00]}] [cx=240.00] [cy=80.00] [r=0.00]
</ins><span class="cx">       RenderSVGEllipse {circle} at (0,0) size 0x0 [fill={[type=SOLID] [color=#FF0000]}] [cx=240.00] [cy=185.00] [r=0.00]
</span><del>-      RenderSVGEllipse {ellipse} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#0000FF]}] [fill={[type=SOLID] [color=#00FF00]}] [cx=332.00] [cy=80.00] [rx=0.00] [ry=25.00]
</del><ins>+      RenderSVGEllipse {ellipse} at (331,54) size 2x52 [stroke={[type=SOLID] [color=#0000FF]}] [fill={[type=SOLID] [color=#00FF00]}] [cx=332.00] [cy=80.00] [rx=0.00] [ry=25.00]
</ins><span class="cx">       RenderSVGEllipse {ellipse} at (0,0) size 0x0 [fill={[type=SOLID] [color=#FF0000]}] [cx=332.00] [cy=185.00] [rx=0.00] [ry=25.00]
</span><del>-      RenderSVGEllipse {ellipse} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#0000FF]}] [fill={[type=SOLID] [color=#00FF00]}] [cx=411.00] [cy=80.00] [rx=12.00] [ry=0.00]
</del><ins>+      RenderSVGEllipse {ellipse} at (398,79) size 26x2 [stroke={[type=SOLID] [color=#0000FF]}] [fill={[type=SOLID] [color=#00FF00]}] [cx=411.00] [cy=80.00] [rx=12.00] [ry=0.00]
</ins><span class="cx">       RenderSVGEllipse {ellipse} at (0,0) size 0x0 [fill={[type=SOLID] [color=#FF0000]}] [cx=411.00] [cy=185.00] [rx=12.00] [ry=0.00]
</span><span class="cx">       RenderSVGPath {line} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#0000FF]}] [fill={[type=SOLID] [color=#000000]}] [x1=240.00] [y1=265.00] [x2=240.00] [y2=265.00]
</span><del>-    RenderSVGText {text} at (10,304) size 284x45 contains 1 chunk(s)
-      RenderSVGInlineText {#text} at (0,0) size 284x45
</del><ins>+    RenderSVGText {text} at (10,304) size 284x46 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 284x46
</ins><span class="cx">         chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 17 width 284.00: &quot;$Revision: 1.16 $&quot;
</span><span class="cx">     RenderSVGRect {rect} at (0,0) size 480x360 [stroke={[type=SOLID] [color=#000000]}] [x=1.00] [y=1.00] [width=478.00] [height=358.00]
</span></span></pre></div>
<a id="trunkLayoutTestssvgW3CSVG11shapescircle02texpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/svg/W3C-SVG-1.1/shapes-circle-02-t-expected.txt (169521 => 169522)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/W3C-SVG-1.1/shapes-circle-02-t-expected.txt        2014-06-02 01:53:28 UTC (rev 169521)
+++ trunk/LayoutTests/svg/W3C-SVG-1.1/shapes-circle-02-t-expected.txt        2014-06-02 05:01:12 UTC (rev 169522)
</span><span class="lines">@@ -6,9 +6,9 @@
</span><span class="cx">       RenderSVGEllipse {circle} at (0,0) size 51x51 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [cx=0.00] [cy=0.00] [r=50.00]
</span><span class="cx">       RenderSVGEllipse {circle} at (0,49) size 51x102 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [cx=0.00] [cy=100.00] [r=50.00]
</span><span class="cx">       RenderSVGEllipse {circle} at (49,0) size 102x51 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [cx=100.00] [cy=0.00] [r=50.00]
</span><del>-      RenderSVGEllipse {circle} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [cx=100.00] [cy=100.00] [r=0.00]
</del><ins>+      RenderSVGEllipse {circle} at (99,99) size 2x2 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [cx=100.00] [cy=100.00] [r=0.00]
</ins><span class="cx">       RenderSVGEllipse {circle} at (49,49) size 102x102 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [cx=100.00] [cy=100.00] [r=50.00]
</span><del>-    RenderSVGText {text} at (10,304) size 264x45 contains 1 chunk(s)
-      RenderSVGInlineText {#text} at (0,0) size 264x45
</del><ins>+    RenderSVGText {text} at (10,304) size 264x46 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 264x46
</ins><span class="cx">         chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 264.00: &quot;$Revision: 1.3 $&quot;
</span><span class="cx">     RenderSVGRect {rect} at (0,0) size 480x360 [stroke={[type=SOLID] [color=#000000]}] [x=1.00] [y=1.00] [width=478.00] [height=358.00]
</span></span></pre></div>
<a id="trunkLayoutTestssvgW3CSVG11shapesellipse02texpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/svg/W3C-SVG-1.1/shapes-ellipse-02-t-expected.txt (169521 => 169522)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/W3C-SVG-1.1/shapes-ellipse-02-t-expected.txt        2014-06-02 01:53:28 UTC (rev 169521)
+++ trunk/LayoutTests/svg/W3C-SVG-1.1/shapes-ellipse-02-t-expected.txt        2014-06-02 05:01:12 UTC (rev 169522)
</span><span class="lines">@@ -4,8 +4,8 @@
</span><span class="cx">   RenderSVGRoot {svg} at (0,0) size 480x360
</span><span class="cx">     RenderSVGContainer {g} at (0,0) size 351x301
</span><span class="cx">       RenderSVGEllipse {ellipse} at (0,0) size 101x51 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [cx=0.00] [cy=0.00] [rx=100.00] [ry=50.00]
</span><del>-      RenderSVGEllipse {ellipse} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [cx=100.00] [cy=150.00] [rx=0.00] [ry=50.00]
-      RenderSVGEllipse {ellipse} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [cx=200.00] [cy=50.00] [rx=100.00] [ry=0.00]
</del><ins>+      RenderSVGEllipse {ellipse} at (0,0) size 2x102 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [cx=100.00] [cy=150.00] [rx=0.00] [ry=50.00]
+      RenderSVGEllipse {ellipse} at (0,0) size 202x2 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [cx=200.00] [cy=50.00] [rx=100.00] [ry=0.00]
</ins><span class="cx">       RenderSVGEllipse {ellipse} at (149,199) size 202x102 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [cx=250.00] [cy=250.00] [rx=100.00] [ry=50.00]
</span><span class="cx">     RenderSVGText {text} at (10,304) size 264x45 contains 1 chunk(s)
</span><span class="cx">       RenderSVGInlineText {#text} at (0,0) size 264x45
</span></span></pre></div>
<a id="trunkLayoutTestssvgW3CSVG11shapesintro01texpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/svg/W3C-SVG-1.1/shapes-intro-01-t-expected.txt (169521 => 169522)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/W3C-SVG-1.1/shapes-intro-01-t-expected.txt        2014-06-02 01:53:28 UTC (rev 169521)
+++ trunk/LayoutTests/svg/W3C-SVG-1.1/shapes-intro-01-t-expected.txt        2014-06-02 05:01:12 UTC (rev 169522)
</span><span class="lines">@@ -15,43 +15,43 @@
</span><span class="cx">         RenderSVGRect {rect} at (393,49) size 37x62 [stroke={[type=SOLID] [color=#000000]}] [x=394.00] [y=50.00] [width=35.00] [height=60.00]
</span><span class="cx">         RenderSVGRect {rect} at (393,154) size 37x62 [stroke={[type=SOLID] [color=#000000]}] [x=394.00] [y=155.00] [width=35.00] [height=60.00]
</span><span class="cx">         RenderSVGRect {rect} at (234,259) size 12x12 [stroke={[type=SOLID] [color=#000000]}] [x=235.00] [y=260.00] [width=10.00] [height=10.00]
</span><del>-      RenderSVGContainer {g} at (5,83) size 458x209
-        RenderSVGText {text} at (5,83) size 26x9 contains 1 chunk(s)
</del><ins>+      RenderSVGContainer {g} at (5,82) size 458x210
+        RenderSVGText {text} at (5,82) size 26x10 contains 1 chunk(s)
</ins><span class="cx">           RenderSVGInlineText {#text} at (0,0) size 26x9
</span><span class="cx">             chunk 1 text run 1 at (5.00,90.00) startOffset 0 endOffset 7 width 26.00: &quot;Stroked&quot;
</span><del>-        RenderSVGText {text} at (5,188) size 35x9 contains 1 chunk(s)
</del><ins>+        RenderSVGText {text} at (5,187) size 35x10 contains 1 chunk(s)
</ins><span class="cx">           RenderSVGInlineText {#text} at (0,0) size 35x9
</span><span class="cx">             chunk 1 text run 1 at (5.00,195.00) startOffset 0 endOffset 9 width 35.00: &quot;Unstroked&quot;
</span><del>-        RenderSVGText {text} at (50,128) size 51x9 contains 1 chunk(s)
</del><ins>+        RenderSVGText {text} at (50,127) size 51x10 contains 1 chunk(s)
</ins><span class="cx">           RenderSVGInlineText {#text} at (0,0) size 51x9
</span><span class="cx">             chunk 1 text run 1 at (50.00,135.00) startOffset 0 endOffset 15 width 51.00: &quot;Zero width rect&quot;
</span><del>-        RenderSVGText {text} at (130,128) size 53x9 contains 1 chunk(s)
</del><ins>+        RenderSVGText {text} at (130,127) size 53x10 contains 1 chunk(s)
</ins><span class="cx">           RenderSVGInlineText {#text} at (0,0) size 53x9
</span><span class="cx">             chunk 1 text run 1 at (130.00,135.00) startOffset 0 endOffset 16 width 53.00: &quot;Zero height rect&quot;
</span><del>-        RenderSVGText {text} at (210,128) size 60x9 contains 1 chunk(s)
</del><ins>+        RenderSVGText {text} at (210,127) size 60x10 contains 1 chunk(s)
</ins><span class="cx">           RenderSVGInlineText {#text} at (0,0) size 60x9
</span><span class="cx">             chunk 1 text run 1 at (210.00,135.00) startOffset 0 endOffset 18 width 60.00: &quot;Zero radius circle&quot;
</span><del>-        RenderSVGText {text} at (315,128) size 69x9 contains 1 chunk(s)
</del><ins>+        RenderSVGText {text} at (315,127) size 69x10 contains 1 chunk(s)
</ins><span class="cx">           RenderSVGInlineText {#text} at (0,0) size 69x9
</span><span class="cx">             chunk 1 text run 1 at (315.00,135.00) startOffset 0 endOffset 21 width 69.00: &quot;Zero x radius ellipse&quot;
</span><del>-        RenderSVGText {text} at (394,128) size 69x9 contains 1 chunk(s)
</del><ins>+        RenderSVGText {text} at (394,127) size 69x10 contains 1 chunk(s)
</ins><span class="cx">           RenderSVGInlineText {#text} at (0,0) size 69x9
</span><span class="cx">             chunk 1 text run 1 at (394.00,135.00) startOffset 0 endOffset 21 width 69.00: &quot;Zero y radius ellipse&quot;
</span><del>-        RenderSVGText {text} at (235,283) size 52x9 contains 1 chunk(s)
</del><ins>+        RenderSVGText {text} at (235,282) size 52x10 contains 1 chunk(s)
</ins><span class="cx">           RenderSVGInlineText {#text} at (0,0) size 52x9
</span><span class="cx">             chunk 1 text run 1 at (235.00,290.00) startOffset 0 endOffset 16 width 52.00: &quot;Zero length line&quot;
</span><del>-      RenderSVGRect {rect} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#000000]}] [x=55.00] [y=55.00] [width=0.00] [height=50.00]
</del><ins>+      RenderSVGRect {rect} at (54,54) size 2x52 [stroke={[type=SOLID] [color=#000000]}] [x=55.00] [y=55.00] [width=0.00] [height=50.00]
</ins><span class="cx">       RenderSVGRect {rect} at (0,0) size 0x0 [fill={[type=SOLID] [color=#FF0000]}] [x=55.00] [y=160.00] [width=0.00] [height=50.00]
</span><del>-      RenderSVGRect {rect} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#0000FF]}] [fill={[type=SOLID] [color=#00FF00]}] [x=135.00] [y=55.00] [width=25.00] [height=0.00]
</del><ins>+      RenderSVGRect {rect} at (134,54) size 27x2 [stroke={[type=SOLID] [color=#0000FF]}] [fill={[type=SOLID] [color=#00FF00]}] [x=135.00] [y=55.00] [width=25.00] [height=0.00]
</ins><span class="cx">       RenderSVGRect {rect} at (0,0) size 0x0 [fill={[type=SOLID] [color=#00FF00]}] [x=135.00] [y=160.00] [width=25.00] [height=0.00]
</span><del>-      RenderSVGEllipse {circle} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#000000]}] [cx=240.00] [cy=80.00] [r=0.00]
</del><ins>+      RenderSVGEllipse {circle} at (239,79) size 2x2 [stroke={[type=SOLID] [color=#000000]}] [cx=240.00] [cy=80.00] [r=0.00]
</ins><span class="cx">       RenderSVGEllipse {circle} at (0,0) size 0x0 [fill={[type=SOLID] [color=#FF0000]}] [cx=240.00] [cy=185.00] [r=0.00]
</span><del>-      RenderSVGEllipse {ellipse} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#0000FF]}] [fill={[type=SOLID] [color=#00FF00]}] [cx=332.00] [cy=80.00] [rx=0.00] [ry=25.00]
</del><ins>+      RenderSVGEllipse {ellipse} at (331,54) size 2x52 [stroke={[type=SOLID] [color=#0000FF]}] [fill={[type=SOLID] [color=#00FF00]}] [cx=332.00] [cy=80.00] [rx=0.00] [ry=25.00]
</ins><span class="cx">       RenderSVGEllipse {ellipse} at (0,0) size 0x0 [fill={[type=SOLID] [color=#00FF00]}] [cx=332.00] [cy=185.00] [rx=0.00] [ry=25.00]
</span><del>-      RenderSVGEllipse {ellipse} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#000000]}] [cx=411.00] [cy=80.00] [rx=12.00] [ry=0.00]
</del><ins>+      RenderSVGEllipse {ellipse} at (398,79) size 26x2 [stroke={[type=SOLID] [color=#000000]}] [cx=411.00] [cy=80.00] [rx=12.00] [ry=0.00]
</ins><span class="cx">       RenderSVGEllipse {ellipse} at (0,0) size 0x0 [fill={[type=SOLID] [color=#FF0000]}] [cx=411.00] [cy=185.00] [rx=12.00] [ry=0.00]
</span><span class="cx">       RenderSVGPath {line} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#0000FF]}] [fill={[type=SOLID] [color=#000000]}] [x1=240.00] [y1=265.00] [x2=240.00] [y2=265.00]
</span><del>-    RenderSVGText {text} at (10,304) size 264x45 contains 1 chunk(s)
-      RenderSVGInlineText {#text} at (0,0) size 264x45
</del><ins>+    RenderSVGText {text} at (10,304) size 264x46 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 264x46
</ins><span class="cx">         chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 264.00: &quot;$Revision: 1.9 $&quot;
</span><span class="cx">     RenderSVGRect {rect} at (0,0) size 480x360 [stroke={[type=SOLID] [color=#000000]}] [x=1.00] [y=1.00] [width=478.00] [height=358.00]
</span></span></pre></div>
<a id="trunkLayoutTestssvgW3CSVG11shapesrect02texpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/svg/W3C-SVG-1.1/shapes-rect-02-t-expected.txt (169521 => 169522)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/W3C-SVG-1.1/shapes-rect-02-t-expected.txt        2014-06-02 01:53:28 UTC (rev 169521)
+++ trunk/LayoutTests/svg/W3C-SVG-1.1/shapes-rect-02-t-expected.txt        2014-06-02 05:01:12 UTC (rev 169522)
</span><span class="lines">@@ -2,14 +2,14 @@
</span><span class="cx">   RenderView at (0,0) size 480x360
</span><span class="cx"> layer at (0,0) size 480x360
</span><span class="cx">   RenderSVGRoot {svg} at (0,0) size 480x360
</span><del>-    RenderSVGContainer {g} at (0,0) size 181x277
</del><ins>+    RenderSVGContainer {g} at (0,0) size 401x277
</ins><span class="cx">       RenderSVGRect {rect} at (0,45) size 51x82 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [x=0.00] [y=46.00] [width=50.00] [height=80.00]
</span><span class="cx">       RenderSVGRect {rect} at (129,0) size 52x81 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [x=130.00] [y=0.00] [width=50.00] [height=80.00]
</span><del>-      RenderSVGRect {rect} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [x=250.00] [y=46.00] [width=0.00] [height=80.00]
-      RenderSVGRect {rect} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [x=350.00] [y=46.00] [width=50.00] [height=0.00]
</del><ins>+      RenderSVGRect {rect} at (249,45) size 2x82 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [x=250.00] [y=46.00] [width=0.00] [height=80.00]
+      RenderSVGRect {rect} at (349,45) size 52x2 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [x=350.00] [y=46.00] [width=50.00] [height=0.00]
</ins><span class="cx">       RenderSVGRect {rect} at (29,195) size 52x82 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [x=30.00] [y=196.00] [width=50.00] [height=80.00]
</span><span class="cx">       RenderSVGRect {rect} at (129,195) size 52x82 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [x=130.00] [y=196.00] [width=50.00] [height=80.00]
</span><del>-    RenderSVGText {text} at (10,304) size 264x45 contains 1 chunk(s)
-      RenderSVGInlineText {#text} at (0,0) size 264x45
</del><ins>+    RenderSVGText {text} at (10,304) size 264x46 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 264x46
</ins><span class="cx">         chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 264.00: &quot;$Revision: 1.4 $&quot;
</span><span class="cx">     RenderSVGRect {rect} at (0,0) size 480x360 [stroke={[type=SOLID] [color=#000000]}] [x=1.00] [y=1.00] [width=478.00] [height=358.00]
</span></span></pre></div>
<a id="trunkLayoutTestssvgcustomgetBBoxjscirclezerodimensionexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/svg/custom/getBBox-js-circle-zerodimension-expected.txt (0 => 169522)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/custom/getBBox-js-circle-zerodimension-expected.txt                                (rev 0)
+++ trunk/LayoutTests/svg/custom/getBBox-js-circle-zerodimension-expected.txt        2014-06-02 05:01:12 UTC (rev 169522)
</span><span class="lines">@@ -0,0 +1,7 @@
</span><ins>+Bug 93290: getBBox() returns (0,0) incorrectly when width or height is zero.
+
+For this test to pass, you should see 'Passed' times below.
+
+passed; passed; passed;
+
+
</ins></span></pre></div>
<a id="trunkLayoutTestssvgcustomgetBBoxjscirclezerodimensionhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/svg/custom/getBBox-js-circle-zerodimension.html (0 => 169522)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/custom/getBBox-js-circle-zerodimension.html                                (rev 0)
+++ trunk/LayoutTests/svg/custom/getBBox-js-circle-zerodimension.html        2014-06-02 05:01:12 UTC (rev 169522)
</span><span class="lines">@@ -0,0 +1,49 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+  &lt;script&gt;
+    function check_bbox(bbox, test_name)
+    {
+        var result_str = &quot;&quot;;
+        
+        if (bbox.x == 50 &amp;&amp; bbox.y == 50 &amp;&amp; bbox.width == 0 &amp;&amp; bbox.height == 0) {                           
+            result_str += &quot; passed&quot;;
+        } else {
+            result_str += test_name + &quot;: failed&quot;
+            result_str += &quot;(&quot;+bbox.x+&quot;,&quot;+bbox.y+&quot;:&quot;+bbox.width + &quot;,&quot; + bbox.height+&quot;)&quot;;
+        }
+        
+        var p_result = document.querySelector(&quot;#result&quot;);
+        p_result.appendChild(document.createTextNode(result_str + &quot;; &quot;));
+    }
+  
+    function run()
+    {
+        if (window.testRunner)
+            testRunner.dumpAsText();
+        
+        var svg = document.querySelector(&quot;svg&quot;);        
+        var circle = document.createElementNS(&quot;http://www.w3.org/2000/svg&quot;, &quot;circle&quot;);
+        circle.setAttribute(&quot;cx&quot;, &quot;50&quot;);
+        circle.setAttribute(&quot;cy&quot;, &quot;50&quot;);
+        circle.setAttribute(&quot;r&quot;, &quot;0&quot;);
+        circle.setAttribute(&quot;height&quot;, &quot;0&quot;);
+        svg.appendChild(circle);
+        check_bbox(circle.getBBox(), &quot;zero radius circle&quot;);
+        
+        circle.setAttribute(&quot;stroke-width&quot;, &quot;10&quot;);
+        circle.setAttribute(&quot;stroke&quot;, &quot;red&quot;);
+        check_bbox(circle.getBBox(), &quot;with stroke&quot;);

+        circle.setAttribute(&quot;vector-effect&quot;, &quot;non-scaling-stroke&quot;);
+        check_bbox(circle.getBBox(), &quot;with non-scaling-stroke&quot;);
+    }
+  &lt;/script&gt;
+
+&lt;body onload=&quot;run()&quot;&gt;
+&lt;p&gt;Bug &lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=93290&quot;&gt;93290&lt;/a&gt;: getBBox() returns (0,0) incorrectly when width or height is zero.&lt;/p&gt;
+&lt;p&gt;For this test to pass, you should see 'Passed' times below.&lt;/p&gt;
+&lt;p id=&quot;result&quot;&gt;&lt;/p&gt;
+&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
+&lt;/svg&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestssvgcustomgetBBoxjsellipsezerodimensionexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/svg/custom/getBBox-js-ellipse-zerodimension-expected.txt (0 => 169522)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/custom/getBBox-js-ellipse-zerodimension-expected.txt                                (rev 0)
+++ trunk/LayoutTests/svg/custom/getBBox-js-ellipse-zerodimension-expected.txt        2014-06-02 05:01:12 UTC (rev 169522)
</span><span class="lines">@@ -0,0 +1,7 @@
</span><ins>+Bug 93290: getBBox() returns (0,0) incorrectly when width or height is zero.
+
+For this test to pass, you should see 'Passed' three times below.
+
+Passed; Passed; Passed;
+
+
</ins></span></pre></div>
<a id="trunkLayoutTestssvgcustomgetBBoxjsellipsezerodimensionhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/svg/custom/getBBox-js-ellipse-zerodimension.html (0 => 169522)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/custom/getBBox-js-ellipse-zerodimension.html                                (rev 0)
+++ trunk/LayoutTests/svg/custom/getBBox-js-ellipse-zerodimension.html        2014-06-02 05:01:12 UTC (rev 169522)
</span><span class="lines">@@ -0,0 +1,50 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+  &lt;script&gt;
+    function check_bbox(bbox, test_name)
+    {
+        var result_str = &quot;&quot;;
+
+        if (bbox.x == 0 &amp;&amp; bbox.y == 50 &amp;&amp; bbox.width == 100 &amp;&amp; bbox.height == 0) {                           
+            result_str += &quot;Passed&quot;;
+        } else {
+            result_str += test_name + &quot;: Failed&quot;;
+            result_str += &quot;(&quot;+bbox.x+&quot;,&quot;+bbox.y+&quot;:&quot;+bbox.width + &quot;,&quot; + bbox.height+&quot;)&quot;;
+        }
+        
+        var p_result = document.querySelector(&quot;#result&quot;);
+        p_result.appendChild(document.createTextNode(result_str + &quot;; &quot;));
+    }
+  
+    function run()
+    {
+        if (window.testRunner)
+            testRunner.dumpAsText();
+        
+        var svg = document.querySelector(&quot;svg&quot;);        
+        var ellipse = document.createElementNS(&quot;http://www.w3.org/2000/svg&quot;, &quot;ellipse&quot;);
+        ellipse.setAttribute(&quot;cx&quot;, &quot;50&quot;);
+        ellipse.setAttribute(&quot;cy&quot;, &quot;50&quot;);
+        ellipse.setAttribute(&quot;rx&quot;, &quot;50&quot;);
+        ellipse.setAttribute(&quot;ry&quot;, &quot;0&quot;);
+        ellipse.setAttribute(&quot;height&quot;, &quot;0&quot;);
+        svg.appendChild(ellipse);
+        check_bbox(ellipse.getBBox(), &quot;zero height ellipse&quot;);
+        
+        ellipse.setAttribute(&quot;stroke-width&quot;, &quot;10&quot;);
+        ellipse.setAttribute(&quot;stroke&quot;, &quot;red&quot;);
+        check_bbox(ellipse.getBBox(), &quot;with stroke&quot;);

+        ellipse.setAttribute(&quot;vector-effect&quot;, &quot;non-scaling-stroke&quot;);
+        check_bbox(ellipse.getBBox(), &quot;with non-scaling-stroke&quot;);
+    }
+  &lt;/script&gt;
+
+&lt;body onload=&quot;run()&quot;&gt;
+&lt;p&gt;Bug &lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=93290&quot;&gt;93290&lt;/a&gt;: getBBox() returns (0,0) incorrectly when width or height is zero.&lt;/p&gt;
+&lt;p&gt;For this test to pass, you should see 'Passed' three times below.&lt;/a&gt;
+&lt;p id=&quot;result&quot;&gt;&lt;/p&gt;
+&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
+&lt;/svg&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestssvgcustomgetBBoxjsrectzerodimensionexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/svg/custom/getBBox-js-rect-zerodimension-expected.txt (0 => 169522)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/custom/getBBox-js-rect-zerodimension-expected.txt                                (rev 0)
+++ trunk/LayoutTests/svg/custom/getBBox-js-rect-zerodimension-expected.txt        2014-06-02 05:01:12 UTC (rev 169522)
</span><span class="lines">@@ -0,0 +1,7 @@
</span><ins>+Bug 93290: getBBox() returns (0,0) incorrectly when width or height is zero.
+
+For this test to pass, you should see 'Passed' four times below.
+
+Passed; Passed; Passed; Passed;
+
+
</ins></span></pre></div>
<a id="trunkLayoutTestssvgcustomgetBBoxjsrectzerodimensionhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/svg/custom/getBBox-js-rect-zerodimension.html (0 => 169522)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/custom/getBBox-js-rect-zerodimension.html                                (rev 0)
+++ trunk/LayoutTests/svg/custom/getBBox-js-rect-zerodimension.html        2014-06-02 05:01:12 UTC (rev 169522)
</span><span class="lines">@@ -0,0 +1,54 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+  &lt;script&gt;
+    function check_rect_bbox(bbox, test_name)
+    {
+        var result_str = &quot;&quot;;
+
+        if (bbox.x == 50 &amp;&amp; bbox.y == 50 &amp;&amp; bbox.width == 50 &amp;&amp; bbox.height == 0) {                           
+            result_str = &quot;Passed&quot;;
+            } else {
+            result_str += test_name + &quot;: Failed&quot;;
+            result_str += &quot;(&quot;+bbox.x+&quot;,&quot;+bbox.y+&quot;:&quot;+bbox.width + &quot;,&quot; + bbox.height+&quot;)&quot;;
+        }
+        
+        var p_result = document.querySelector(&quot;#result&quot;);
+        p_result.appendChild(document.createTextNode(result_str + &quot;; &quot;));
+    }
+  
+    function run()
+    {
+        if (window.testRunner)
+            testRunner.dumpAsText();
+        
+        var svg = document.querySelector(&quot;svg&quot;);        
+        var rect = document.createElementNS(&quot;http://www.w3.org/2000/svg&quot;, &quot;rect&quot;);
+        rect.setAttribute(&quot;x&quot;, &quot;50&quot;);
+        rect.setAttribute(&quot;y&quot;, &quot;50&quot;);
+        rect.setAttribute(&quot;width&quot;, &quot;50&quot;);
+        rect.setAttribute(&quot;height&quot;, &quot;0&quot;);
+        svg.appendChild(rect);
+        check_rect_bbox(rect.getBBox(), &quot;Rectangle with zero height&quot;);
+        
+        rect.setAttribute(&quot;stroke-width&quot;, &quot;10&quot;);
+        rect.setAttribute(&quot;stroke&quot;, &quot;red&quot;);
+        check_rect_bbox(rect.getBBox(), &quot;With stroke&quot;);

+        var vector_effect_orig = rect.getAttribute(&quot;vector-effect&quot;);
+        rect.setAttribute(&quot;vector-effect&quot;, &quot;non-scaling-stroke&quot;);
+        check_rect_bbox(rect.getBBox(), &quot;With non-scaling-stroke&quot;);
+        
+        rect.setAttribute(&quot;vector-effect&quot;, vector_effect_orig);
+        rect.setAttribute(&quot;rx&quot;, &quot;10&quot;);
+        check_rect_bbox(rect.getBBox(), &quot;Rounded&quot;);
+    }
+  &lt;/script&gt;
+
+&lt;body onload=&quot;run()&quot;&gt;
+&lt;p&gt;Bug &lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=93290&quot;&gt;93290&lt;/a&gt;: getBBox() returns (0,0) incorrectly when width or height is zero.&lt;/p&gt;
+&lt;p&gt;For this test to pass, you should see 'Passed' four times below.&lt;/a&gt;
+&lt;p id=&quot;result&quot;&gt;&lt;/p&gt;
+&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
+&lt;/svg&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (169521 => 169522)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-06-02 01:53:28 UTC (rev 169521)
+++ trunk/Source/WebCore/ChangeLog        2014-06-02 05:01:12 UTC (rev 169522)
</span><span class="lines">@@ -1,3 +1,39 @@
</span><ins>+2014-06-01  Nikos Andronikos  &lt;nikos.andronikos-webkit@cisra.canon.com.au&gt;
+
+        getBBox() returns (0,0) when width or height is zero.
+        https://bugs.webkit.org/show_bug.cgi?id=93290
+
+        Reviewed by Philip Rogers.
+
+        The SVG spec states that a width or height of zero for  rects, circles and
+        ellipses is valid but disables rendering of that shape.
+        In this case, getBBox() should return the actual bounding box of the element.
+        Previously, WebKit always returned (0,0,0,0) rather than the
+        correct bounding box. This patch fixes that. 
+
+        Rects and ellipses both now follow the same behaviour where
+        the fall-back code path is only used when the shape will render (e.g. not
+        when a dimension &lt;= 0).
+  
+        This necessitates calling calculateRadiiAndCenter for ellipses even
+        when the calculated values will be discarded in the fall back code path.
+        But calculateRadiiAndCenter is cheap and this avoids making changes 
+        elsewhere to stop CG drawing a zero width (or height) ellipse.  
+
+        Tests: svg/custom/getBBox-js-circle-zerodimension.html
+               svg/custom/getBBox-js-ellipse-zerodimension.html
+               svg/custom/getBBox-js-rect-zerodimension.html
+
+        * rendering/svg/RenderSVGEllipse.cpp:
+        (WebCore::RenderSVGEllipse::updateShapeFromElement):
+        Only follow fall-back code path when shape renders. 
+        width||height==0 is not an error case so calculate bounding box.        
+
+        * rendering/svg/RenderSVGRect.cpp:
+        (WebCore::RenderSVGRect::updateShapeFromElement):
+        Only follow fall-back code path when shape renders. 
+        rx||ry==0 is not an error case so calculate bounding box.        
+
</ins><span class="cx"> 2014-06-01  Simon Fraser  &lt;simon.fraser@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Don't scroll to non-integral scroll offsets
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgRenderSVGEllipsecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/RenderSVGEllipse.cpp (169521 => 169522)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/RenderSVGEllipse.cpp        2014-06-02 01:53:28 UTC (rev 169521)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGEllipse.cpp        2014-06-02 05:01:12 UTC (rev 169522)
</span><span class="lines">@@ -52,20 +52,23 @@
</span><span class="cx">     m_center = FloatPoint();
</span><span class="cx">     m_radii = FloatSize();
</span><span class="cx"> 
</span><del>-    // Fallback to RenderSVGShape if shape has a non-scaling stroke.
-    if (hasNonScalingStroke()) {
-        RenderSVGShape::updateShapeFromElement();
-        m_usePathFallback = true;
-        return;
-    } else
-        m_usePathFallback = false;
-
</del><span class="cx">     calculateRadiiAndCenter();
</span><span class="cx"> 
</span><del>-    // Spec: &quot;A value of zero disables rendering of the element.&quot;
-    if (m_radii.width() &lt;= 0 || m_radii.height() &lt;= 0)
</del><ins>+    // Element is invalid if either dimension is negative.
+    if (m_radii.width() &lt; 0 || m_radii.height() &lt; 0)
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><ins>+    // Spec: &quot;A value of zero disables rendering of the element.&quot;
+    if (!m_radii.isEmpty()) {
+        if (hasNonScalingStroke()) {
+            // Fallback to RenderSVGShape if shape has a non-scaling stroke.
+            RenderSVGShape::updateShapeFromElement();
+            m_usePathFallback = true;
+            return;
+        }
+        m_usePathFallback = false;
+    }
+
</ins><span class="cx">     m_fillBoundingBox = FloatRect(m_center.x() - m_radii.width(), m_center.y() - m_radii.height(), 2 * m_radii.width(), 2 * m_radii.height());
</span><span class="cx">     m_strokeBoundingBox = m_fillBoundingBox;
</span><span class="cx">     if (style().svgStyle().hasStroke())
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgRenderSVGRectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/RenderSVGRect.cpp (169521 => 169522)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/RenderSVGRect.cpp        2014-06-02 01:53:28 UTC (rev 169521)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGRect.cpp        2014-06-02 05:01:12 UTC (rev 169522)
</span><span class="lines">@@ -56,18 +56,23 @@
</span><span class="cx">     m_outerStrokeRect = FloatRect();
</span><span class="cx"> 
</span><span class="cx">     SVGLengthContext lengthContext(&amp;rectElement());
</span><del>-    // Fallback to RenderSVGShape if rect has rounded corners or a non-scaling stroke.
-    if (rectElement().rx().value(lengthContext) &gt; 0 || rectElement().ry().value(lengthContext) &gt; 0 || hasNonScalingStroke()) {
-        RenderSVGShape::updateShapeFromElement();
-        m_usePathFallback = true;
</del><ins>+    FloatSize boundingBoxSize(rectElement().width().value(lengthContext), rectElement().height().value(lengthContext));
+
+    // Element is invalid if either dimension is negative.
+    if (boundingBoxSize.width() &lt; 0 || boundingBoxSize.height() &lt; 0)
</ins><span class="cx">         return;
</span><ins>+
+    // Rendering enabled? Spec: &quot;A value of zero disables rendering of the element.&quot;
+    if (!boundingBoxSize.isEmpty()) {
+        if (rectElement().rx().value(lengthContext) &gt; 0 || rectElement().ry().value(lengthContext) &gt; 0 || hasNonScalingStroke()) {
+            // Fall back to RenderSVGShape
+            RenderSVGShape::updateShapeFromElement();
+            m_usePathFallback = true;
+            return;
+        }
+        m_usePathFallback = false;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    m_usePathFallback = false;
-    FloatSize boundingBoxSize(rectElement().width().value(lengthContext), rectElement().height().value(lengthContext));
-    if (boundingBoxSize.isEmpty())
-        return;
-
</del><span class="cx">     m_fillBoundingBox = FloatRect(FloatPoint(rectElement().x().value(lengthContext), rectElement().y().value(lengthContext)), boundingBoxSize);
</span><span class="cx"> 
</span><span class="cx">     // To decide if the stroke contains a point we create two rects which represent the inner and
</span></span></pre>
</div>
</div>

</body>
</html>