| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2014 Google Inc. All rights reserved. | 2 * Copyright (C) 2014 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 124 SVGLengthContext lengthContext(contextElement()); | 124 SVGLengthContext lengthContext(contextElement()); |
| 125 target()->setValue(value, lengthContext); | 125 target()->setValue(value, lengthContext); |
| 126 commitChange(); | 126 commitChange(); |
| 127 } | 127 } |
| 128 | 128 |
| 129 float SVGLengthTearOff::valueInSpecifiedUnits() | 129 float SVGLengthTearOff::valueInSpecifiedUnits() |
| 130 { | 130 { |
| 131 return target()->valueInSpecifiedUnits(); | 131 return target()->valueInSpecifiedUnits(); |
| 132 } | 132 } |
| 133 | 133 |
| 134 void SVGLengthTearOff::setValueInSpecifiedUnits(float value, ExceptionState& es) | 134 void SVGLengthTearOff::setValueInSpecifiedUnits(float value, ExceptionState& exc
eptionState) |
| 135 { | 135 { |
| 136 if (isImmutable()) { | 136 if (isImmutable()) { |
| 137 es.throwDOMException(NoModificationAllowedError, "The attribute is read-
only."); | 137 exceptionState.throwDOMException(NoModificationAllowedError, "The attrib
ute is read-only."); |
| 138 return; | 138 return; |
| 139 } | 139 } |
| 140 target()->setValueInSpecifiedUnits(value); | 140 target()->setValueInSpecifiedUnits(value); |
| 141 commitChange(); | 141 commitChange(); |
| 142 } | 142 } |
| 143 | 143 |
| 144 String SVGLengthTearOff::valueAsString() | 144 String SVGLengthTearOff::valueAsString() |
| 145 { | 145 { |
| 146 // TODO(shanmuga.m@samsung.com): Not all <length> properties have 0 (with no
unit) as the default (lacuna) value, Need to return default value instead of 0 | 146 // TODO(shanmuga.m@samsung.com): Not all <length> properties have 0 (with no
unit) as the default (lacuna) value, Need to return default value instead of 0 |
| 147 return hasExposedLengthUnit() ? target()->valueAsString() : String::number(0
); | 147 return hasExposedLengthUnit() ? target()->valueAsString() : String::number(0
); |
| 148 } | 148 } |
| 149 | 149 |
| 150 void SVGLengthTearOff::setValueAsString(const String& str, ExceptionState& es) | 150 void SVGLengthTearOff::setValueAsString(const String& str, ExceptionState& excep
tionState) |
| 151 { | 151 { |
| 152 if (isImmutable()) { | 152 if (isImmutable()) { |
| 153 es.throwDOMException(NoModificationAllowedError, "The attribute is read-
only."); | 153 exceptionState.throwDOMException(NoModificationAllowedError, "The attrib
ute is read-only."); |
| 154 return; | 154 return; |
| 155 } | 155 } |
| 156 | 156 |
| 157 String oldValue = target()->valueAsString(); | 157 String oldValue = target()->valueAsString(); |
| 158 | 158 |
| 159 target()->setValueAsString(str, es); | 159 SVGParsingError status = target()->setValueAsString(str); |
| 160 | 160 |
| 161 if (!es.hadException() && !hasExposedLengthUnit()) { | 161 if (status == NoError && !hasExposedLengthUnit()) { |
| 162 target()->setValueAsString(oldValue, ASSERT_NO_EXCEPTION); // rollback t
o old value | 162 target()->setValueAsString(oldValue); // rollback to old value |
| 163 es.throwDOMException(SyntaxError, "The value provided ('" + str + "') is
invalid."); | 163 status = ParsingAttributeFailedError; |
| 164 } |
| 165 if (status != NoError) { |
| 166 exceptionState.throwDOMException(SyntaxError, "The value provided ('" +
str + "') is invalid."); |
| 164 return; | 167 return; |
| 165 } | 168 } |
| 166 | 169 |
| 167 commitChange(); | 170 commitChange(); |
| 168 } | 171 } |
| 169 | 172 |
| 170 void SVGLengthTearOff::newValueSpecifiedUnits(unsigned short unitType, float val
ueInSpecifiedUnits, ExceptionState& exceptionState) | 173 void SVGLengthTearOff::newValueSpecifiedUnits(unsigned short unitType, float val
ueInSpecifiedUnits, ExceptionState& exceptionState) |
| 171 { | 174 { |
| 172 if (isImmutable()) { | 175 if (isImmutable()) { |
| 173 exceptionState.throwDOMException(NoModificationAllowedError, "The object
is read-only."); | 176 exceptionState.throwDOMException(NoModificationAllowedError, "The object
is read-only."); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 205 target()->convertToSpecifiedUnits(toCSSUnitType(unitType), lengthContext); | 208 target()->convertToSpecifiedUnits(toCSSUnitType(unitType), lengthContext); |
| 206 commitChange(); | 209 commitChange(); |
| 207 } | 210 } |
| 208 | 211 |
| 209 SVGLengthTearOff::SVGLengthTearOff(PassRefPtrWillBeRawPtr<SVGLength> target, SVG
Element* contextElement, PropertyIsAnimValType propertyIsAnimVal, const Qualifie
dName& attributeName) | 212 SVGLengthTearOff::SVGLengthTearOff(PassRefPtrWillBeRawPtr<SVGLength> target, SVG
Element* contextElement, PropertyIsAnimValType propertyIsAnimVal, const Qualifie
dName& attributeName) |
| 210 : SVGPropertyTearOff<SVGLength>(target, contextElement, propertyIsAnimVal, a
ttributeName) | 213 : SVGPropertyTearOff<SVGLength>(target, contextElement, propertyIsAnimVal, a
ttributeName) |
| 211 { | 214 { |
| 212 } | 215 } |
| 213 | 216 |
| 214 } | 217 } |
| OLD | NEW |