Index: Source/core/animation/AnimatableImage.cpp |
diff --git a/Source/core/animation/AnimatableImage.cpp b/Source/core/animation/AnimatableImage.cpp |
index 49df97fcd58d564b424d0fe03a49ea3167b0a7a2..d67c9b4fab7ae71513f9b946d9f92c82ab7b986f 100644 |
--- a/Source/core/animation/AnimatableImage.cpp |
+++ b/Source/core/animation/AnimatableImage.cpp |
@@ -40,48 +40,24 @@ namespace WebCore { |
// FIXME: Once cross-fade works on generated image types, remove this method. |
bool AnimatableImage::usesDefaultInterpolationWith(const AnimatableValue* value) const |
{ |
- RefPtrWillBeRawPtr<CSSValue> fromValue = toCSSValue(); |
- if (fromValue->isImageGeneratorValue()) |
+ if (!m_value->isImageValue()) |
return true; |
- if (!fromValue->isImageValue() && !m_image->isImageResource()) |
- return true; |
- const AnimatableImage* image = toAnimatableImage(value); |
- RefPtrWillBeRawPtr<CSSValue> toValue = image->toCSSValue(); |
- if (toValue->isImageGeneratorValue()) |
- return true; |
- if (!toValue->isImageValue() && !image->m_image->isImageResource()) |
+ if (!toAnimatableImage(value)->toCSSValue()->isImageValue()) |
return true; |
return false; |
} |
PassRefPtr<AnimatableValue> AnimatableImage::interpolateTo(const AnimatableValue* value, double fraction) const |
{ |
- if (fraction <= 0 || fraction >= 1) |
- return defaultInterpolateTo(this, value, fraction); |
- RefPtrWillBeRawPtr<CSSValue> fromValue = toCSSValue(); |
- // FIXME: Once cross-fade works on generated image types, remove this check. |
- if (fromValue->isImageGeneratorValue()) |
+ if (fraction <= 0 || fraction >= 1 || usesDefaultInterpolationWith(value)) |
return defaultInterpolateTo(this, value, fraction); |
- if (!fromValue->isImageValue() && !fromValue->isImageGeneratorValue()) { |
- if (!m_image->isImageResource()) |
- return defaultInterpolateTo(this, value, fraction); |
- ImageResource* resource = static_cast<ImageResource*>(m_image->data()); |
- fromValue = CSSImageValue::create(resource->url(), m_image.get()); |
- } |
- const AnimatableImage* image = toAnimatableImage(value); |
- RefPtrWillBeRawPtr<CSSValue> toValue = image->toCSSValue(); |
- // FIXME: Once cross-fade works on generated image types, remove this check. |
- if (toValue->isImageGeneratorValue()) |
- return defaultInterpolateTo(this, value, fraction); |
- if (!toValue->isImageValue() && !toValue->isImageGeneratorValue()) { |
- if (!image->m_image->isImageResource()) |
- return defaultInterpolateTo(this, value, fraction); |
- ImageResource* resource = static_cast<ImageResource*>(image->m_image->data()); |
- toValue = CSSImageValue::create(resource->url(), image->m_image.get()); |
- } |
+ |
+ CSSValue* fromValue = toCSSValue(); |
+ CSSValue* toValue = toAnimatableImage(value)->toCSSValue(); |
+ |
RefPtrWillBeRawPtr<CSSCrossfadeValue> crossfadeValue = CSSCrossfadeValue::create(fromValue, toValue); |
crossfadeValue->setPercentage(CSSPrimitiveValue::create(fraction, CSSPrimitiveValue::CSS_NUMBER)); |
- return create(StyleGeneratedImage::create(crossfadeValue.get()).get()); |
+ return create(crossfadeValue); |
} |
PassRefPtr<AnimatableValue> AnimatableImage::addWith(const AnimatableValue* value) const |
@@ -92,7 +68,7 @@ PassRefPtr<AnimatableValue> AnimatableImage::addWith(const AnimatableValue* valu |
bool AnimatableImage::equalTo(const AnimatableValue* value) const |
{ |
- return StyleImage::imagesEquivalent(m_image.get(), toAnimatableImage(value)->m_image.get()); |
+ return m_value->equals(*toAnimatableImage(value)->m_value.get()); |
} |
} |