summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/animation/interpolable_length.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/core/animation/interpolable_length.cc')
-rw-r--r--chromium/third_party/blink/renderer/core/animation/interpolable_length.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/chromium/third_party/blink/renderer/core/animation/interpolable_length.cc b/chromium/third_party/blink/renderer/core/animation/interpolable_length.cc
index 08e6cc60d5a..4e958c4de06 100644
--- a/chromium/third_party/blink/renderer/core/animation/interpolable_length.cc
+++ b/chromium/third_party/blink/renderer/core/animation/interpolable_length.cc
@@ -204,8 +204,11 @@ static UnitType IndexToUnitType(wtf_size_t index) {
Length InterpolableLength::CreateLength(
const CSSToLengthConversionData& conversion_data,
ValueRange range) const {
+ // Passing true for ToCalcValue is a dirty hack to ensure that we don't create
+ // a degenerate value when animating 'background-position', while we know it
+ // may cause some minor animation glitches for the other properties.
if (IsExpression())
- return Length(expression_->ToCalcValue(conversion_data, range));
+ return Length(expression_->ToCalcValue(conversion_data, range, true));
bool has_percentage = HasPercentage();
double pixels = 0;