| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org> | 2 * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org> |
| 3 * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org> | 3 * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org> |
| 4 * Copyright (C) 2008 Apple Inc. All rights reserved. | 4 * Copyright (C) 2008 Apple Inc. All rights reserved. |
| 5 * Copyright (C) Research In Motion Limited 2011. All rights reserved. | 5 * Copyright (C) Research In Motion Limited 2011. All rights reserved. |
| 6 * | 6 * |
| 7 * This library is free software; you can redistribute it and/or | 7 * This library is free software; you can redistribute it and/or |
| 8 * modify it under the terms of the GNU Library General Public | 8 * modify it under the terms of the GNU Library General Public |
| 9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
| 10 * version 2 of the License, or (at your option) any later version. | 10 * version 2 of the License, or (at your option) any later version. |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 105 | 105 |
| 106 bool SVGAnimateElement::hasValidAttributeType() { | 106 bool SVGAnimateElement::hasValidAttributeType() { |
| 107 SVGElement* targetElement = this->targetElement(); | 107 SVGElement* targetElement = this->targetElement(); |
| 108 if (!targetElement) | 108 if (!targetElement) |
| 109 return false; | 109 return false; |
| 110 | 110 |
| 111 return animatedPropertyType() != AnimatedUnknown && | 111 return animatedPropertyType() != AnimatedUnknown && |
| 112 !hasInvalidCSSAttributeType(); | 112 !hasInvalidCSSAttributeType(); |
| 113 } | 113 } |
| 114 | 114 |
| 115 SVGAnimateElement::ShouldApplyAnimationType |
| 116 SVGAnimateElement::shouldApplyAnimation(SVGElement* targetElement, |
| 117 const QualifiedName& attributeName) { |
| 118 if (!hasValidAttributeType() || attributeName == anyQName() || |
| 119 !targetElement || !targetElement->inActiveDocument() || |
| 120 !targetElement->parentNode()) |
| 121 return DontApplyAnimation; |
| 122 |
| 123 // Always animate CSS properties using the ApplyCSSAnimation code path, |
| 124 // regardless of the attributeType value. |
| 125 if (isTargetAttributeCSSProperty(targetElement, attributeName)) { |
| 126 if (targetElement->isPresentationAttributeWithSVGDOM(attributeName)) |
| 127 return ApplyXMLandCSSAnimation; |
| 128 |
| 129 return ApplyCSSAnimation; |
| 130 } |
| 131 // If attributeType="CSS" and attributeName doesn't point to a CSS property, |
| 132 // ignore the animation. |
| 133 if (getAttributeType() == AttributeTypeCSS) |
| 134 return DontApplyAnimation; |
| 135 |
| 136 return ApplyXMLAnimation; |
| 137 } |
| 138 |
| 115 SVGPropertyBase* SVGAnimateElement::adjustForInheritance( | 139 SVGPropertyBase* SVGAnimateElement::adjustForInheritance( |
| 116 SVGPropertyBase* propertyValue, | 140 SVGPropertyBase* propertyValue, |
| 117 AnimatedPropertyValueType valueType) const { | 141 AnimatedPropertyValueType valueType) const { |
| 118 if (valueType != InheritValue) | 142 if (valueType != InheritValue) |
| 119 return propertyValue; | 143 return propertyValue; |
| 120 // TODO(fs): At the moment the computed style gets returned as a String and | 144 // TODO(fs): At the moment the computed style gets returned as a String and |
| 121 // needs to get parsed again. In the future we might want to work with the | 145 // needs to get parsed again. In the future we might want to work with the |
| 122 // value type directly to avoid the String parsing. | 146 // value type directly to avoid the String parsing. |
| 123 DCHECK(targetElement()); | 147 DCHECK(targetElement()); |
| 124 Element* parent = targetElement()->parentElement(); | 148 Element* parent = targetElement()->parentElement(); |
| (...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 385 DEFINE_TRACE(SVGAnimateElement) { | 409 DEFINE_TRACE(SVGAnimateElement) { |
| 386 visitor->trace(m_fromProperty); | 410 visitor->trace(m_fromProperty); |
| 387 visitor->trace(m_toProperty); | 411 visitor->trace(m_toProperty); |
| 388 visitor->trace(m_toAtEndOfDurationProperty); | 412 visitor->trace(m_toAtEndOfDurationProperty); |
| 389 visitor->trace(m_animatedProperty); | 413 visitor->trace(m_animatedProperty); |
| 390 visitor->trace(m_animator); | 414 visitor->trace(m_animator); |
| 391 SVGAnimationElement::trace(visitor); | 415 SVGAnimationElement::trace(visitor); |
| 392 } | 416 } |
| 393 | 417 |
| 394 } // namespace blink | 418 } // namespace blink |
| OLD | NEW |