diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/core/animation/effect_stack.cc')
-rw-r--r-- | chromium/third_party/blink/renderer/core/animation/effect_stack.cc | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/chromium/third_party/blink/renderer/core/animation/effect_stack.cc b/chromium/third_party/blink/renderer/core/animation/effect_stack.cc index 38a142175c6..9a2a31fc1e7 100644 --- a/chromium/third_party/blink/renderer/core/animation/effect_stack.cc +++ b/chromium/third_party/blink/renderer/core/animation/effect_stack.cc @@ -124,6 +124,30 @@ bool EffectStack::AffectsProperties(PropertyHandleFilter filter) const { return false; } +bool EffectStack::AffectsProperties(const CSSBitset& bitset, + KeyframeEffect::Priority priority) const { + for (const auto& sampled_effect : sampled_effects_) { + if (sampled_effect->GetPriority() != priority) + continue; + for (const auto& interpolation : sampled_effect->Interpolations()) { + const PropertyHandle& property = interpolation->GetProperty(); + if (property.IsCSSCustomProperty() || !property.IsCSSProperty()) + continue; + if (bitset.Has(property.GetCSSProperty().PropertyID())) + return true; + } + } + return false; +} + +bool EffectStack::HasRevert() const { + for (const auto& sampled_effect : sampled_effects_) { + if (sampled_effect->Effect() && sampled_effect->Effect()->HasRevert()) + return true; + } + return false; +} + ActiveInterpolationsMap EffectStack::ActiveInterpolations( EffectStack* effect_stack, const HeapVector<Member<const InertEffect>>* new_animations, |