| 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();
|
|
|