Index: third_party/WebKit/Source/core/svg/SVGLength.cpp |
diff --git a/third_party/WebKit/Source/core/svg/SVGLength.cpp b/third_party/WebKit/Source/core/svg/SVGLength.cpp |
index 51f0d2ab6f122f9f2556264d58c2efecd73ba677..f6113660a69c2cfe46eda49e81441d50bed844ae 100644 |
--- a/third_party/WebKit/Source/core/svg/SVGLength.cpp |
+++ b/third_party/WebKit/Source/core/svg/SVGLength.cpp |
@@ -21,16 +21,12 @@ |
#include "core/svg/SVGLength.h" |
-#include "bindings/core/v8/ExceptionState.h" |
#include "core/SVGNames.h" |
#include "core/css/CSSPrimitiveValue.h" |
#include "core/css/CSSValue.h" |
#include "core/css/CSSValuePool.h" |
#include "core/css/parser/CSSParser.h" |
-#include "core/dom/ExceptionCode.h" |
#include "core/svg/SVGAnimationElement.h" |
-#include "core/svg/SVGParserUtilities.h" |
-#include "platform/animation/AnimationUtilities.h" |
#include "wtf/MathExtras.h" |
#include "wtf/text/WTFString.h" |
@@ -65,14 +61,11 @@ PassRefPtrWillBeRawPtr<SVGLength> SVGLength::clone() const |
PassRefPtrWillBeRawPtr<SVGPropertyBase> SVGLength::cloneForAnimation(const String& value) const |
{ |
RefPtrWillBeRawPtr<SVGLength> length = create(); |
- |
length->m_unitMode = m_unitMode; |
- TrackExceptionState exceptionState; |
- length->setValueAsString(value, exceptionState); |
- if (exceptionState.hadException()) { |
- length->m_value = CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::UserUnits); |
- } |
+ SVGParsingError status = length->setValueAsString(value); |
+ if (status != NoError) |
+ length->m_value = cssValuePool().createValue(0, CSSPrimitiveValue::UnitType::UserUnits); |
return length.release(); |
} |
@@ -139,28 +132,25 @@ float SVGLength::scaleByPercentage(float input) const |
return result; |
} |
-void SVGLength::setValueAsString(const String& string, ExceptionState& exceptionState) |
+SVGParsingError SVGLength::setValueAsString(const String& string) |
{ |
if (string.isEmpty()) { |
m_value = cssValuePool().createValue(0, CSSPrimitiveValue::UnitType::UserUnits); |
- return; |
+ return NoError; |
} |
CSSParserContext svgParserContext(SVGAttributeMode, 0); |
RefPtrWillBeRawPtr<CSSValue> parsed = CSSParser::parseSingleValue(CSSPropertyX, string, svgParserContext); |
- if (!parsed || !parsed->isPrimitiveValue()) { |
- exceptionState.throwDOMException(SyntaxError, "The value provided ('" + string + "') is invalid."); |
- return; |
- } |
+ if (!parsed || !parsed->isPrimitiveValue()) |
+ return ParsingAttributeFailedError; |
CSSPrimitiveValue* newValue = toCSSPrimitiveValue(parsed.get()); |
// TODO(fs): Enable calc for SVG lengths |
- if (newValue->isCalculated() || !isSupportedCSSUnitType(newValue->typeWithCalcResolved())) { |
- exceptionState.throwDOMException(SyntaxError, "The value provided ('" + string + "') is invalid."); |
- return; |
- } |
+ if (newValue->isCalculated() || !isSupportedCSSUnitType(newValue->typeWithCalcResolved())) |
+ return ParsingAttributeFailedError; |
m_value = newValue; |
+ return NoError; |
} |
String SVGLength::valueAsString() const |