| Index: Source/core/animation/StringKeyframe.cpp
|
| diff --git a/Source/core/animation/StringKeyframe.cpp b/Source/core/animation/StringKeyframe.cpp
|
| index 25c36703bb71163c26129d0b43ee686640b8ac6e..9ceb434c8e93318a95e31992efe2cb8d7eb23b5e 100644
|
| --- a/Source/core/animation/StringKeyframe.cpp
|
| +++ b/Source/core/animation/StringKeyframe.cpp
|
| @@ -22,6 +22,7 @@
|
| #include "core/animation/InvalidatableStyleInterpolation.h"
|
| #include "core/animation/LegacyStyleInterpolation.h"
|
| #include "core/animation/LengthBoxStyleInterpolation.h"
|
| +#include "core/animation/LengthInterpolationType.h"
|
| #include "core/animation/LengthPairStyleInterpolation.h"
|
| #include "core/animation/LengthSVGInterpolation.h"
|
| #include "core/animation/LengthStyleInterpolation.h"
|
| @@ -161,11 +162,20 @@ const Vector<const InterpolationType*>* applicableTypesForProperty(CSSPropertyID
|
| if (entry != applicableTypesMap.end())
|
| return entry->value;
|
|
|
| - // TODO(alancutter): Support all interpolable CSS properties here so we can stop falling back to the old StyleInterpolation implementation.
|
| - if (CSSPropertyMetadata::isInterpolableProperty(property))
|
| - return nullptr;
|
| -
|
| auto applicableTypes = new Vector<const InterpolationType*>();
|
| + switch (property) {
|
| + case CSSPropertyLeft:
|
| + applicableTypes->append(new LengthInterpolationType(property));
|
| + break;
|
| + default:
|
| + // TODO(alancutter): Support all interpolable CSS properties here so we can stop falling back to the old StyleInterpolation implementation.
|
| + if (CSSPropertyMetadata::isInterpolableProperty(property)) {
|
| + delete applicableTypes;
|
| + applicableTypesMap.add(property, nullptr);
|
| + return nullptr;
|
| + }
|
| + break;
|
| + }
|
| applicableTypes->append(new CSSValueInterpolationType(property));
|
| applicableTypesMap.add(property, applicableTypes);
|
| return applicableTypes;
|
|
|