| Index: Source/core/platform/graphics/chromium/AnimationTranslationUtil.cpp
|
| diff --git a/Source/core/platform/graphics/chromium/AnimationTranslationUtil.cpp b/Source/core/platform/graphics/chromium/AnimationTranslationUtil.cpp
|
| index 58768f960a18cf1af7f24786f2d8d57846974cac..e0f938edb03b138341ded8f6fb2e19bccfc4e606 100644
|
| --- a/Source/core/platform/graphics/chromium/AnimationTranslationUtil.cpp
|
| +++ b/Source/core/platform/graphics/chromium/AnimationTranslationUtil.cpp
|
| @@ -56,7 +56,7 @@ using namespace WebKit;
|
|
|
| namespace WebCore {
|
|
|
| -PassOwnPtr<WebTransformOperations> toWebTransformOperations(const TransformOperations& transformOperations, const FloatSize& boxSize)
|
| +PassOwnPtr<WebTransformOperations> toWebTransformOperations(const TransformOperations& transformOperations, const FloatSize& boxSize, RenderView* renderView)
|
| {
|
| // We need to do a deep copy the transformOperations may contain ref pointers to TransformOperation objects.
|
| OwnPtr<WebTransformOperations> webTransformOperations = adoptPtr(Platform::current()->compositorSupport()->createTransformOperations());
|
| @@ -80,7 +80,7 @@ PassOwnPtr<WebTransformOperations> toWebTransformOperations(const TransformOpera
|
| case TransformOperation::Translate3D:
|
| case TransformOperation::Translate: {
|
| TranslateTransformOperation* transform = static_cast<TranslateTransformOperation*>(transformOperations.operations()[j].get());
|
| - webTransformOperations->appendTranslate(floatValueForLength(transform->x(), boxSize.width()), floatValueForLength(transform->y(), boxSize.height()), floatValueForLength(transform->z(), 1));
|
| + webTransformOperations->appendTranslate(floatValueForLength(transform->x(), boxSize.width(), renderView), floatValueForLength(transform->y(), boxSize.height(), renderView), floatValueForLength(transform->z(), 1, renderView));
|
| break;
|
| }
|
| case TransformOperation::RotateX:
|
| @@ -117,7 +117,7 @@ PassOwnPtr<WebTransformOperations> toWebTransformOperations(const TransformOpera
|
| }
|
| case TransformOperation::Interpolated: {
|
| TransformationMatrix m;
|
| - transformOperations.operations()[j]->apply(m, boxSize);
|
| + transformOperations.operations()[j]->apply(m, boxSize, renderView);
|
| webTransformOperations->appendMatrix(TransformSkMatrix44Conversions::convert(m));
|
| break;
|
| }
|
| @@ -134,14 +134,14 @@ PassOwnPtr<WebTransformOperations> toWebTransformOperations(const TransformOpera
|
| }
|
|
|
| template <class Value, class Keyframe, class Curve>
|
| -bool appendKeyframeWithStandardTimingFunction(Curve* curve, double keyTime, const Value* value, const Value* lastValue, WebKit::WebAnimationCurve::TimingFunctionType timingFunctionType, const FloatSize&)
|
| +bool appendKeyframeWithStandardTimingFunction(Curve* curve, double keyTime, const Value* value, const Value* lastValue, WebKit::WebAnimationCurve::TimingFunctionType timingFunctionType, const FloatSize&, RenderView* renderView)
|
| {
|
| curve->add(Keyframe(keyTime, value->value()), timingFunctionType);
|
| return true;
|
| }
|
|
|
| template <class Value, class Keyframe, class Curve>
|
| -bool appendKeyframeWithCustomBezierTimingFunction(Curve* curve, double keyTime, const Value* value, const Value* lastValue, double x1, double y1, double x2, double y2, const FloatSize&)
|
| +bool appendKeyframeWithCustomBezierTimingFunction(Curve* curve, double keyTime, const Value* value, const Value* lastValue, double x1, double y1, double x2, double y2, const FloatSize&, RenderView* renderView)
|
| {
|
| curve->add(Keyframe(keyTime, value->value()), x1, y1, x2, y2);
|
| return true;
|
| @@ -157,14 +157,14 @@ bool isRotationType(TransformOperation::OperationType transformType)
|
| }
|
|
|
| template <>
|
| -bool appendKeyframeWithStandardTimingFunction<TransformAnimationValue, WebTransformKeyframe, WebTransformAnimationCurve>(WebTransformAnimationCurve* curve, double keyTime, const TransformAnimationValue* value, const TransformAnimationValue* lastValue, WebKit::WebAnimationCurve::TimingFunctionType timingFunctionType, const FloatSize& boxSize)
|
| +bool appendKeyframeWithStandardTimingFunction<TransformAnimationValue, WebTransformKeyframe, WebTransformAnimationCurve>(WebTransformAnimationCurve* curve, double keyTime, const TransformAnimationValue* value, const TransformAnimationValue* lastValue, WebKit::WebAnimationCurve::TimingFunctionType timingFunctionType, const FloatSize& boxSize, RenderView* renderView)
|
| {
|
| bool canBlend = !lastValue;
|
| - OwnPtr<WebTransformOperations> operations(toWebTransformOperations(*value->value(), boxSize));
|
| + OwnPtr<WebTransformOperations> operations(toWebTransformOperations(*value->value(), boxSize, renderView));
|
| if (!operations)
|
| return false;
|
| if (!canBlend) {
|
| - OwnPtr<WebTransformOperations> lastOperations(toWebTransformOperations(*lastValue->value(), boxSize));
|
| + OwnPtr<WebTransformOperations> lastOperations(toWebTransformOperations(*lastValue->value(), boxSize, renderView));
|
| if (!lastOperations)
|
| return false;
|
| canBlend = lastOperations->canBlendWith(*operations);
|
| @@ -177,14 +177,14 @@ bool appendKeyframeWithStandardTimingFunction<TransformAnimationValue, WebTransf
|
| }
|
|
|
| template <>
|
| -bool appendKeyframeWithCustomBezierTimingFunction<TransformAnimationValue, WebTransformKeyframe, WebTransformAnimationCurve>(WebTransformAnimationCurve* curve, double keyTime, const TransformAnimationValue* value, const TransformAnimationValue* lastValue, double x1, double y1, double x2, double y2, const FloatSize& boxSize)
|
| +bool appendKeyframeWithCustomBezierTimingFunction<TransformAnimationValue, WebTransformKeyframe, WebTransformAnimationCurve>(WebTransformAnimationCurve* curve, double keyTime, const TransformAnimationValue* value, const TransformAnimationValue* lastValue, double x1, double y1, double x2, double y2, const FloatSize& boxSize, RenderView* renderView)
|
| {
|
| bool canBlend = !lastValue;
|
| - OwnPtr<WebTransformOperations> operations(toWebTransformOperations(*value->value(), boxSize));
|
| + OwnPtr<WebTransformOperations> operations(toWebTransformOperations(*value->value(), boxSize, renderView));
|
| if (!operations)
|
| return false;
|
| if (!canBlend) {
|
| - OwnPtr<WebTransformOperations> lastOperations(toWebTransformOperations(*lastValue->value(), boxSize));
|
| + OwnPtr<WebTransformOperations> lastOperations(toWebTransformOperations(*lastValue->value(), boxSize, renderView));
|
| if (!lastOperations)
|
| return false;
|
| canBlend = lastOperations->canBlendWith(*operations);
|
| @@ -197,7 +197,7 @@ bool appendKeyframeWithCustomBezierTimingFunction<TransformAnimationValue, WebTr
|
| }
|
|
|
| template <class Value, class Keyframe, class Curve>
|
| -PassOwnPtr<WebKit::WebAnimation> createWebAnimation(const KeyframeValueList& valueList, const CSSAnimationData* animation, int animationId, double timeOffset, Curve* curve, WebKit::WebAnimation::TargetProperty targetProperty, const FloatSize& boxSize)
|
| +PassOwnPtr<WebKit::WebAnimation> createWebAnimation(const KeyframeValueList& valueList, const CSSAnimationData* animation, int animationId, double timeOffset, Curve* curve, WebKit::WebAnimation::TargetProperty targetProperty, const FloatSize& boxSize, RenderView* renderView)
|
| {
|
| bool alternate = false;
|
| bool reverse = false;
|
| @@ -259,9 +259,9 @@ PassOwnPtr<WebKit::WebAnimation> createWebAnimation(const KeyframeValueList& val
|
|
|
| bool addedKeyframe = false;
|
| if (isUsingCustomBezierTimingFunction)
|
| - addedKeyframe = appendKeyframeWithCustomBezierTimingFunction<Value, Keyframe, Curve>(curve, keyTime, originalValue, lastOriginalValue, x1, y1, x2, y2, boxSize);
|
| + addedKeyframe = appendKeyframeWithCustomBezierTimingFunction<Value, Keyframe, Curve>(curve, keyTime, originalValue, lastOriginalValue, x1, y1, x2, y2, boxSize, renderView);
|
| else
|
| - addedKeyframe = appendKeyframeWithStandardTimingFunction<Value, Keyframe, Curve>(curve, keyTime, originalValue, lastOriginalValue, timingFunctionType, boxSize);
|
| + addedKeyframe = appendKeyframeWithStandardTimingFunction<Value, Keyframe, Curve>(curve, keyTime, originalValue, lastOriginalValue, timingFunctionType, boxSize, renderView);
|
| if (!addedKeyframe)
|
| return nullptr;
|
| }
|
| @@ -278,18 +278,18 @@ PassOwnPtr<WebKit::WebAnimation> createWebAnimation(const KeyframeValueList& val
|
| return webAnimation.release();
|
| }
|
|
|
| -PassOwnPtr<WebKit::WebAnimation> createWebAnimation(const KeyframeValueList& values, const CSSAnimationData* animation, int animationId, double timeOffset, const FloatSize& boxSize)
|
| +PassOwnPtr<WebKit::WebAnimation> createWebAnimation(const KeyframeValueList& values, const CSSAnimationData* animation, int animationId, double timeOffset, const FloatSize& boxSize, RenderView* renderView)
|
| {
|
|
|
|
|
| if (values.property() == AnimatedPropertyWebkitTransform) {
|
| OwnPtr<WebTransformAnimationCurve> curve = adoptPtr(Platform::current()->compositorSupport()->createTransformAnimationCurve());
|
| - return createWebAnimation<TransformAnimationValue, WebTransformKeyframe, WebTransformAnimationCurve>(values, animation, animationId, timeOffset, curve.get(), WebKit::WebAnimation::TargetPropertyTransform, FloatSize(boxSize));
|
| + return createWebAnimation<TransformAnimationValue, WebTransformKeyframe, WebTransformAnimationCurve>(values, animation, animationId, timeOffset, curve.get(), WebKit::WebAnimation::TargetPropertyTransform, FloatSize(boxSize), renderView);
|
| }
|
|
|
| if (values.property() == AnimatedPropertyOpacity) {
|
| OwnPtr<WebFloatAnimationCurve> curve = adoptPtr(Platform::current()->compositorSupport()->createFloatAnimationCurve());
|
| - return createWebAnimation<FloatAnimationValue, WebFloatKeyframe, WebFloatAnimationCurve>(values, animation, animationId, timeOffset, curve.get(), WebKit::WebAnimation::TargetPropertyOpacity, FloatSize());
|
| + return createWebAnimation<FloatAnimationValue, WebFloatKeyframe, WebFloatAnimationCurve>(values, animation, animationId, timeOffset, curve.get(), WebKit::WebAnimation::TargetPropertyOpacity, FloatSize(), renderView);
|
| }
|
|
|
| return nullptr;
|
|
|