Chromium Code Reviews| 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 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 59 } | 59 } |
| 60 | 60 |
| 61 if (ptr != end) { | 61 if (ptr != end) { |
| 62 m_value = 0; | 62 m_value = 0; |
| 63 return false; | 63 return false; |
| 64 } | 64 } |
| 65 | 65 |
| 66 return true; | 66 return true; |
| 67 } | 67 } |
| 68 | 68 |
| 69 void SVGNumber::setValueAsString(const String& string, ExceptionState& exception State) | 69 SVGParsingError SVGNumber::setValueAsString(const String& string) |
| 70 { | 70 { |
| 71 if (string.isEmpty()) { | 71 if (string.isEmpty()) { |
| 72 m_value = 0; | 72 m_value = 0; |
| 73 return; | 73 return NoError; |
| 74 } | 74 } |
| 75 | 75 |
| 76 bool valid = false; | 76 bool valid = false; |
| 77 if (string.is8Bit()) { | 77 if (string.is8Bit()) { |
| 78 const LChar* ptr = string.characters8(); | 78 const LChar* ptr = string.characters8(); |
| 79 const LChar* end = ptr + string.length(); | 79 const LChar* end = ptr + string.length(); |
| 80 valid = parse(ptr, end); | 80 valid = parse(ptr, end); |
| 81 } else { | 81 } else { |
| 82 const UChar* ptr = string.characters16(); | 82 const UChar* ptr = string.characters16(); |
| 83 const UChar* end = ptr + string.length(); | 83 const UChar* end = ptr + string.length(); |
| 84 valid = parse(ptr, end); | 84 valid = parse(ptr, end); |
| 85 } | 85 } |
| 86 | 86 |
| 87 if (!valid) { | 87 if (!valid) { |
| 88 exceptionState.throwDOMException(SyntaxError, "The value provided ('" + string + "') is invalid."); | |
| 89 m_value = 0; | 88 m_value = 0; |
|
pdr.
2015/12/23 04:00:08
Nit for contemplation: this isn't required, but we
fs
2015/12/23 10:04:17
Yes, I've been noticing these things here and ther
| |
| 89 return ParsingAttributeFailedError; | |
| 90 } | 90 } |
| 91 return NoError; | |
| 91 } | 92 } |
| 92 | 93 |
| 93 void SVGNumber::add(PassRefPtrWillBeRawPtr<SVGPropertyBase> other, SVGElement*) | 94 void SVGNumber::add(PassRefPtrWillBeRawPtr<SVGPropertyBase> other, SVGElement*) |
| 94 { | 95 { |
| 95 setValue(m_value + toSVGNumber(other)->value()); | 96 setValue(m_value + toSVGNumber(other)->value()); |
| 96 } | 97 } |
| 97 | 98 |
| 98 void SVGNumber::calculateAnimatedValue(SVGAnimationElement* animationElement, fl oat percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> fr om, PassRefPtrWillBeRawPtr<SVGPropertyBase> to, PassRefPtrWillBeRawPtr<SVGProper tyBase> toAtEndOfDuration, SVGElement*) | 99 void SVGNumber::calculateAnimatedValue(SVGAnimationElement* animationElement, fl oat percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> fr om, PassRefPtrWillBeRawPtr<SVGPropertyBase> to, PassRefPtrWillBeRawPtr<SVGProper tyBase> toAtEndOfDuration, SVGElement*) |
| 99 { | 100 { |
| 100 ASSERT(animationElement); | 101 ASSERT(animationElement); |
| 101 | 102 |
| 102 RefPtrWillBeRawPtr<SVGNumber> fromNumber = toSVGNumber(from); | 103 RefPtrWillBeRawPtr<SVGNumber> fromNumber = toSVGNumber(from); |
| 103 RefPtrWillBeRawPtr<SVGNumber> toNumber = toSVGNumber(to); | 104 RefPtrWillBeRawPtr<SVGNumber> toNumber = toSVGNumber(to); |
| 104 RefPtrWillBeRawPtr<SVGNumber> toAtEndOfDurationNumber = toSVGNumber(toAtEndO fDuration); | 105 RefPtrWillBeRawPtr<SVGNumber> toAtEndOfDurationNumber = toSVGNumber(toAtEndO fDuration); |
| 105 | 106 |
| 106 animationElement->animateAdditiveNumber(percentage, repeatCount, fromNumber- >value(), toNumber->value(), toAtEndOfDurationNumber->value(), m_value); | 107 animationElement->animateAdditiveNumber(percentage, repeatCount, fromNumber- >value(), toNumber->value(), toAtEndOfDurationNumber->value(), m_value); |
| 107 } | 108 } |
| 108 | 109 |
| 109 float SVGNumber::calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> other , SVGElement*) | 110 float SVGNumber::calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> other , SVGElement*) |
| 110 { | 111 { |
| 111 return fabsf(m_value - toSVGNumber(other)->value()); | 112 return fabsf(m_value - toSVGNumber(other)->value()); |
| 112 } | 113 } |
| 113 | 114 |
| 114 PassRefPtrWillBeRawPtr<SVGNumber> SVGNumberAcceptPercentage::clone() const | 115 PassRefPtrWillBeRawPtr<SVGNumber> SVGNumberAcceptPercentage::clone() const |
| 115 { | 116 { |
| 116 return create(m_value); | 117 return create(m_value); |
| 117 } | 118 } |
| 118 | 119 |
| 119 void SVGNumberAcceptPercentage::setValueAsString(const String& string, Exception State& exceptionState) | 120 SVGParsingError SVGNumberAcceptPercentage::setValueAsString(const String& string ) |
| 120 { | 121 { |
| 121 bool valid = parseNumberOrPercentage(string, m_value); | 122 if (parseNumberOrPercentage(string, m_value)) |
| 123 return NoError; | |
| 122 | 124 |
| 123 if (!valid) { | 125 m_value = 0; |
| 124 exceptionState.throwDOMException(SyntaxError, "The value provided ('" + string + "') is invalid."); | 126 return ParsingAttributeFailedError; |
| 125 m_value = 0; | |
| 126 } | |
| 127 } | 127 } |
| 128 | 128 |
| 129 SVGNumberAcceptPercentage::SVGNumberAcceptPercentage(float value) | 129 SVGNumberAcceptPercentage::SVGNumberAcceptPercentage(float value) |
| 130 : SVGNumber(value) | 130 : SVGNumber(value) |
| 131 { | 131 { |
| 132 } | 132 } |
| 133 | 133 |
| 134 } | 134 } |
| OLD | NEW |