Index: third_party/WebKit/Source/core/layout/svg/SVGLayoutTreeAsText.cpp |
diff --git a/third_party/WebKit/Source/core/layout/svg/SVGLayoutTreeAsText.cpp b/third_party/WebKit/Source/core/layout/svg/SVGLayoutTreeAsText.cpp |
index b497c12b8a26e1c52061f1e2321ed9d1d8553fd4..2c75b1cef7e232d54976e0c9489c2b207d7edd64 100644 |
--- a/third_party/WebKit/Source/core/layout/svg/SVGLayoutTreeAsText.cpp |
+++ b/third_party/WebKit/Source/core/layout/svg/SVGLayoutTreeAsText.cpp |
@@ -59,6 +59,7 @@ |
#include "core/svg/SVGLineElement.h" |
#include "core/svg/SVGLinearGradientElement.h" |
#include "core/svg/SVGPathElement.h" |
+#include "core/svg/SVGPathUtilities.h" |
#include "core/svg/SVGPatternElement.h" |
#include "core/svg/SVGPointList.h" |
#include "core/svg/SVGPolyElement.h" |
@@ -344,17 +345,22 @@ static TextStream& operator<<(TextStream& ts, const LayoutSVGShape& shape) { |
SVGElement* svg_element = shape.GetElement(); |
DCHECK(svg_element); |
SVGLengthContext length_context(svg_element); |
+ const ComputedStyle& style = shape.StyleRef(); |
+ const SVGComputedStyle& svg_style = style.SvgStyle(); |
if (isSVGRectElement(*svg_element)) { |
- SVGRectElement& element = toSVGRectElement(*svg_element); |
WriteNameValuePair(ts, "x", |
- element.x()->CurrentValue()->Value(length_context)); |
+ length_context.ValueForLength(svg_style.X(), style, |
+ SVGLengthMode::kWidth)); |
WriteNameValuePair(ts, "y", |
- element.y()->CurrentValue()->Value(length_context)); |
+ length_context.ValueForLength(svg_style.Y(), style, |
+ SVGLengthMode::kHeight)); |
WriteNameValuePair(ts, "width", |
- element.width()->CurrentValue()->Value(length_context)); |
+ length_context.ValueForLength(style.Width(), style, |
+ SVGLengthMode::kWidth)); |
WriteNameValuePair(ts, "height", |
- element.height()->CurrentValue()->Value(length_context)); |
+ length_context.ValueForLength(style.Height(), style, |
+ SVGLengthMode::kHeight)); |
} else if (isSVGLineElement(*svg_element)) { |
SVGLineElement& element = toSVGLineElement(*svg_element); |
WriteNameValuePair(ts, "x1", |
@@ -366,23 +372,28 @@ static TextStream& operator<<(TextStream& ts, const LayoutSVGShape& shape) { |
WriteNameValuePair(ts, "y2", |
element.y2()->CurrentValue()->Value(length_context)); |
} else if (isSVGEllipseElement(*svg_element)) { |
- SVGEllipseElement& element = toSVGEllipseElement(*svg_element); |
WriteNameValuePair(ts, "cx", |
- element.cx()->CurrentValue()->Value(length_context)); |
+ length_context.ValueForLength(svg_style.Cx(), style, |
+ SVGLengthMode::kWidth)); |
WriteNameValuePair(ts, "cy", |
- element.cy()->CurrentValue()->Value(length_context)); |
+ length_context.ValueForLength(svg_style.Cy(), style, |
+ SVGLengthMode::kHeight)); |
WriteNameValuePair(ts, "rx", |
- element.rx()->CurrentValue()->Value(length_context)); |
+ length_context.ValueForLength(svg_style.Rx(), style, |
+ SVGLengthMode::kWidth)); |
WriteNameValuePair(ts, "ry", |
- element.ry()->CurrentValue()->Value(length_context)); |
+ length_context.ValueForLength(svg_style.Ry(), style, |
+ SVGLengthMode::kHeight)); |
} else if (isSVGCircleElement(*svg_element)) { |
- SVGCircleElement& element = toSVGCircleElement(*svg_element); |
WriteNameValuePair(ts, "cx", |
- element.cx()->CurrentValue()->Value(length_context)); |
+ length_context.ValueForLength(svg_style.Cx(), style, |
+ SVGLengthMode::kWidth)); |
WriteNameValuePair(ts, "cy", |
- element.cy()->CurrentValue()->Value(length_context)); |
+ length_context.ValueForLength(svg_style.Cy(), style, |
+ SVGLengthMode::kHeight)); |
WriteNameValuePair(ts, "r", |
- element.r()->CurrentValue()->Value(length_context)); |
+ length_context.ValueForLength(svg_style.R(), style, |
+ SVGLengthMode::kOther)); |
} else if (IsSVGPolyElement(*svg_element)) { |
WriteNameAndQuotedValue(ts, "points", |
ToSVGPolyElement(*svg_element) |
@@ -390,11 +401,10 @@ static TextStream& operator<<(TextStream& ts, const LayoutSVGShape& shape) { |
->CurrentValue() |
->ValueAsString()); |
} else if (isSVGPathElement(*svg_element)) { |
+ const StylePath& path = |
+ svg_style.D() ? *svg_style.D() : *StylePath::EmptyPath(); |
WriteNameAndQuotedValue(ts, "data", |
- toSVGPathElement(*svg_element) |
- .GetPath() |
- ->CurrentValue() |
- ->ValueAsString()); |
+ BuildStringFromByteStream(path.ByteStream())); |
} else { |
NOTREACHED(); |
} |