| Index: third_party/WebKit/Source/core/animation/StringKeyframe.cpp
|
| diff --git a/third_party/WebKit/Source/core/animation/StringKeyframe.cpp b/third_party/WebKit/Source/core/animation/StringKeyframe.cpp
|
| index 15628a5a428bae15546a6daaea1702f623c7c26b..fede64bc40798a7910c658a4798accee376826dd 100644
|
| --- a/third_party/WebKit/Source/core/animation/StringKeyframe.cpp
|
| +++ b/third_party/WebKit/Source/core/animation/StringKeyframe.cpp
|
| @@ -87,28 +87,16 @@ PassRefPtr<Keyframe> StringKeyframe::clone() const
|
| return adoptRef(new StringKeyframe(*this));
|
| }
|
|
|
| -PassOwnPtr<Keyframe::PropertySpecificKeyframe> StringKeyframe::createPropertySpecificKeyframe(PropertyHandle property) const
|
| +PassRefPtr<Keyframe::PropertySpecificKeyframe> StringKeyframe::createPropertySpecificKeyframe(PropertyHandle property) const
|
| {
|
| if (property.isCSSProperty())
|
| - return adoptPtr(new CSSPropertySpecificKeyframe(offset(), &easing(), cssPropertyValue(property.cssProperty()), composite()));
|
| + return CSSPropertySpecificKeyframe::create(offset(), &easing(), cssPropertyValue(property.cssProperty()), composite());
|
|
|
| if (property.isPresentationAttribute())
|
| - return adoptPtr(new CSSPropertySpecificKeyframe(offset(), &easing(), presentationAttributeValue(property.presentationAttribute()), composite()));
|
| + return CSSPropertySpecificKeyframe::create(offset(), &easing(), presentationAttributeValue(property.presentationAttribute()), composite());
|
|
|
| ASSERT(property.isSVGAttribute());
|
| - return adoptPtr(new SVGPropertySpecificKeyframe(offset(), &easing(), svgPropertyValue(property.svgAttribute()), composite()));
|
| -}
|
| -
|
| -StringKeyframe::CSSPropertySpecificKeyframe::CSSPropertySpecificKeyframe(double offset, PassRefPtr<TimingFunction> easing, CSSValue* value, EffectModel::CompositeOperation op)
|
| - : Keyframe::PropertySpecificKeyframe(offset, easing, op)
|
| - , m_value(value)
|
| -{ }
|
| -
|
| -StringKeyframe::CSSPropertySpecificKeyframe::CSSPropertySpecificKeyframe(double offset, PassRefPtr<TimingFunction> easing, CSSValue* value)
|
| - : Keyframe::PropertySpecificKeyframe(offset, easing, EffectModel::CompositeReplace)
|
| - , m_value(value)
|
| -{
|
| - ASSERT(!isNull(m_offset));
|
| + return SVGPropertySpecificKeyframe::create(offset(), &easing(), svgPropertyValue(property.svgAttribute()), composite());
|
| }
|
|
|
| bool StringKeyframe::CSSPropertySpecificKeyframe::populateAnimatableValue(CSSPropertyID property, Element& element, const ComputedStyle* baseStyle, bool force) const
|
| @@ -143,7 +131,7 @@ PassRefPtr<Interpolation> StringKeyframe::CSSPropertySpecificKeyframe::maybeCrea
|
| {
|
| const InterpolationTypes* applicableTypes = PropertyInterpolationTypesMapping::get(propertyHandle);
|
| if (applicableTypes)
|
| - return InvalidatableInterpolation::create(propertyHandle, *applicableTypes, *this, end);
|
| + return InvalidatableInterpolation::create(propertyHandle, *applicableTypes, const_cast<CSSPropertySpecificKeyframe*>(this), &end);
|
|
|
| // TODO(alancutter): Remove the remainder of this function.
|
|
|
| @@ -284,46 +272,33 @@ PassRefPtr<Interpolation> StringKeyframe::CSSPropertySpecificKeyframe::maybeCrea
|
|
|
| }
|
|
|
| -PassOwnPtr<Keyframe::PropertySpecificKeyframe> StringKeyframe::CSSPropertySpecificKeyframe::neutralKeyframe(double offset, PassRefPtr<TimingFunction> easing) const
|
| -{
|
| - return adoptPtr(new CSSPropertySpecificKeyframe(offset, easing, static_cast<CSSValue*>(0), EffectModel::CompositeAdd));
|
| -}
|
| -
|
| -PassOwnPtr<Keyframe::PropertySpecificKeyframe> StringKeyframe::CSSPropertySpecificKeyframe::cloneWithOffset(double offset) const
|
| -{
|
| - Keyframe::PropertySpecificKeyframe* theClone = new CSSPropertySpecificKeyframe(offset, m_easing, m_value.get());
|
| - toCSSPropertySpecificKeyframe(theClone)->m_animatableValueCache = m_animatableValueCache;
|
| - return adoptPtr(theClone);
|
| -}
|
| -
|
| -SVGPropertySpecificKeyframe::SVGPropertySpecificKeyframe(double offset, PassRefPtr<TimingFunction> easing, const String& value, EffectModel::CompositeOperation op)
|
| - : Keyframe::PropertySpecificKeyframe(offset, easing, op)
|
| - , m_value(value)
|
| +PassRefPtr<Keyframe::PropertySpecificKeyframe> StringKeyframe::CSSPropertySpecificKeyframe::neutralKeyframe(double offset, PassRefPtr<TimingFunction> easing) const
|
| {
|
| + return create(offset, easing, nullptr, EffectModel::CompositeAdd);
|
| }
|
|
|
| -SVGPropertySpecificKeyframe::SVGPropertySpecificKeyframe(double offset, PassRefPtr<TimingFunction> easing, const String& value)
|
| - : Keyframe::PropertySpecificKeyframe(offset, easing, EffectModel::CompositeReplace)
|
| - , m_value(value)
|
| +PassRefPtr<Keyframe::PropertySpecificKeyframe> StringKeyframe::CSSPropertySpecificKeyframe::cloneWithOffset(double offset) const
|
| {
|
| - ASSERT(!isNull(m_offset));
|
| + RefPtr<CSSPropertySpecificKeyframe> clone = create(offset, m_easing, m_value.get(), m_composite);
|
| + clone->m_animatableValueCache = m_animatableValueCache;
|
| + return clone.release();
|
| }
|
|
|
| -PassOwnPtr<Keyframe::PropertySpecificKeyframe> SVGPropertySpecificKeyframe::cloneWithOffset(double offset) const
|
| +PassRefPtr<Keyframe::PropertySpecificKeyframe> SVGPropertySpecificKeyframe::cloneWithOffset(double offset) const
|
| {
|
| - return adoptPtr(new SVGPropertySpecificKeyframe(offset, m_easing, m_value));
|
| + return create(offset, m_easing, m_value, m_composite);
|
| }
|
|
|
| -PassOwnPtr<Keyframe::PropertySpecificKeyframe> SVGPropertySpecificKeyframe::neutralKeyframe(double offset, PassRefPtr<TimingFunction> easing) const
|
| +PassRefPtr<Keyframe::PropertySpecificKeyframe> SVGPropertySpecificKeyframe::neutralKeyframe(double offset, PassRefPtr<TimingFunction> easing) const
|
| {
|
| - return adoptPtr(new SVGPropertySpecificKeyframe(offset, easing, String(), EffectModel::CompositeAdd));
|
| + return create(offset, easing, String(), EffectModel::CompositeAdd);
|
| }
|
|
|
| PassRefPtr<Interpolation> SVGPropertySpecificKeyframe::maybeCreateInterpolation(PropertyHandle propertyHandle, Keyframe::PropertySpecificKeyframe& end, Element*, const ComputedStyle*) const
|
| {
|
| const InterpolationTypes* applicableTypes = PropertyInterpolationTypesMapping::get(propertyHandle);
|
| ASSERT(applicableTypes);
|
| - return InvalidatableInterpolation::create(propertyHandle, *applicableTypes, *this, end);
|
| + return InvalidatableInterpolation::create(propertyHandle, *applicableTypes, const_cast<SVGPropertySpecificKeyframe*>(this), &end);
|
| }
|
|
|
| } // namespace blink
|
|
|