Index: third_party/WebKit/Source/core/animation/CSSVisibilityInterpolationType.cpp |
diff --git a/third_party/WebKit/Source/core/animation/CSSVisibilityInterpolationType.cpp b/third_party/WebKit/Source/core/animation/CSSVisibilityInterpolationType.cpp |
index fa1abf6b151d276bbd55e1852d7b310f3a6a0c8d..5013edfba20da8423228fec1e3439ac1dffaf37f 100644 |
--- a/third_party/WebKit/Source/core/animation/CSSVisibilityInterpolationType.cpp |
+++ b/third_party/WebKit/Source/core/animation/CSSVisibilityInterpolationType.cpp |
@@ -161,13 +161,21 @@ CSSVisibilityInterpolationType::maybeConvertStandardPropertyUnderlyingValue( |
PairwiseInterpolationValue CSSVisibilityInterpolationType::maybeMergeSingles( |
InterpolationValue&& start, |
InterpolationValue&& end) const { |
- return PairwiseInterpolationValue( |
- InterpolableNumber::create(0), InterpolableNumber::create(1), |
- CSSVisibilityNonInterpolableValue::create( |
- toCSSVisibilityNonInterpolableValue(*start.nonInterpolableValue) |
- .visibility(), |
- toCSSVisibilityNonInterpolableValue(*end.nonInterpolableValue) |
- .visibility())); |
+ EVisibility startVisibility = |
+ toCSSVisibilityNonInterpolableValue(*start.nonInterpolableValue) |
+ .visibility(); |
+ EVisibility endVisibility = |
+ toCSSVisibilityNonInterpolableValue(*end.nonInterpolableValue) |
+ .visibility(); |
+ if (startVisibility != endVisibility && |
+ startVisibility != EVisibility::kVisible && |
+ endVisibility != EVisibility::kVisible) { |
+ return nullptr; |
+ } |
+ return PairwiseInterpolationValue(InterpolableNumber::create(0), |
+ InterpolableNumber::create(1), |
+ CSSVisibilityNonInterpolableValue::create( |
+ startVisibility, endVisibility)); |
} |
void CSSVisibilityInterpolationType::composite( |