Index: third_party/WebKit/Source/core/svg/SVGLengthTearOff.cpp |
diff --git a/third_party/WebKit/Source/core/svg/SVGLengthTearOff.cpp b/third_party/WebKit/Source/core/svg/SVGLengthTearOff.cpp |
index f3dabfca2bd2e1bdba58d19ea9e5ecc521a79677..f6f83554953e2f50e774155a7323f7be8867fbf7 100644 |
--- a/third_party/WebKit/Source/core/svg/SVGLengthTearOff.cpp |
+++ b/third_party/WebKit/Source/core/svg/SVGLengthTearOff.cpp |
@@ -129,7 +129,6 @@ float SVGLengthTearOff::value(ExceptionState& exceptionState) |
exceptionState.throwDOMException(NotSupportedError, "Could not resolve relative length."); |
return 0; |
} |
- |
SVGLengthContext lengthContext(contextElement()); |
return target()->value(lengthContext); |
} |
@@ -137,21 +136,18 @@ float SVGLengthTearOff::value(ExceptionState& exceptionState) |
void SVGLengthTearOff::setValue(float value, ExceptionState& exceptionState) |
{ |
if (isImmutable()) { |
- exceptionState.throwDOMException(NoModificationAllowedError, "The attribute is read-only."); |
+ throwReadOnly(exceptionState); |
return; |
} |
- |
if (target()->isRelative() && !canResolveRelativeUnits(contextElement())) { |
exceptionState.throwDOMException(NotSupportedError, "Could not resolve relative length."); |
return; |
} |
- |
SVGLengthContext lengthContext(contextElement()); |
if (target()->isCalculated()) |
target()->setValueAsNumber(value); |
else |
target()->setValue(value, lengthContext); |
- |
commitChange(); |
} |
@@ -159,22 +155,19 @@ float SVGLengthTearOff::valueInSpecifiedUnits() |
{ |
if (target()->isCalculated()) |
return 0; |
- |
return target()->valueInSpecifiedUnits(); |
} |
void SVGLengthTearOff::setValueInSpecifiedUnits(float value, ExceptionState& exceptionState) |
{ |
if (isImmutable()) { |
- exceptionState.throwDOMException(NoModificationAllowedError, "The attribute is read-only."); |
+ throwReadOnly(exceptionState); |
return; |
} |
- |
if (target()->isCalculated()) |
target()->setValueAsNumber(value); |
else |
target()->setValueInSpecifiedUnits(value); |
- |
commitChange(); |
} |
@@ -187,14 +180,11 @@ String SVGLengthTearOff::valueAsString() |
void SVGLengthTearOff::setValueAsString(const String& str, ExceptionState& exceptionState) |
{ |
if (isImmutable()) { |
- exceptionState.throwDOMException(NoModificationAllowedError, "The attribute is read-only."); |
+ throwReadOnly(exceptionState); |
return; |
} |
- |
String oldValue = target()->valueAsString(); |
- |
SVGParsingError status = target()->setValueAsString(str); |
- |
if (status == SVGParseStatus::NoError && !hasExposedLengthUnit()) { |
target()->setValueAsString(oldValue); // rollback to old value |
status = SVGParseStatus::ParsingFailed; |
@@ -203,22 +193,19 @@ void SVGLengthTearOff::setValueAsString(const String& str, ExceptionState& excep |
exceptionState.throwDOMException(SyntaxError, "The value provided ('" + str + "') is invalid."); |
return; |
} |
- |
commitChange(); |
} |
void SVGLengthTearOff::newValueSpecifiedUnits(unsigned short unitType, float valueInSpecifiedUnits, ExceptionState& exceptionState) |
{ |
if (isImmutable()) { |
- exceptionState.throwDOMException(NoModificationAllowedError, "The object is read-only."); |
+ throwReadOnly(exceptionState); |
return; |
} |
- |
if (!isValidLengthUnit(unitType)) { |
exceptionState.throwDOMException(NotSupportedError, "Cannot set value with unknown or invalid units (" + String::number(unitType) + ")."); |
return; |
} |
- |
target()->newValueSpecifiedUnits(toCSSUnitType(unitType), valueInSpecifiedUnits); |
commitChange(); |
} |
@@ -226,21 +213,18 @@ void SVGLengthTearOff::newValueSpecifiedUnits(unsigned short unitType, float val |
void SVGLengthTearOff::convertToSpecifiedUnits(unsigned short unitType, ExceptionState& exceptionState) |
{ |
if (isImmutable()) { |
- exceptionState.throwDOMException(NoModificationAllowedError, "The object is read-only."); |
+ throwReadOnly(exceptionState); |
return; |
} |
- |
if (!isValidLengthUnit(unitType)) { |
exceptionState.throwDOMException(NotSupportedError, "Cannot convert to unknown or invalid units (" + String::number(unitType) + ")."); |
return; |
} |
- |
if ((target()->isRelative() || CSSPrimitiveValue::isRelativeUnit(toCSSUnitType(unitType))) |
&& !canResolveRelativeUnits(contextElement())) { |
exceptionState.throwDOMException(NotSupportedError, "Could not resolve relative length."); |
return; |
} |
- |
SVGLengthContext lengthContext(contextElement()); |
target()->convertToSpecifiedUnits(toCSSUnitType(unitType), lengthContext); |
commitChange(); |