summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/animation/effect_stack.cc
diff options
context:
space:
mode:
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.cc24
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,