// Copyright 2017 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_ANIMATION_CSS_VAR_CYCLE_INTERPOLATION_TYPE_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_ANIMATION_CSS_VAR_CYCLE_INTERPOLATION_TYPE_H_ #include "third_party/blink/renderer/core/animation/interpolation_type.h" #include "third_party/blink/renderer/platform/heap/persistent.h" namespace blink { class PropertyRegistration; // This is a special handler for custom property animation keyframes designed to // detect and handle cyclic dependencies between animated custom properties // through the use of var() in keyframes. // Example: // element.animate({ // '--x': 'var(--y)', // '--y': 'var(--x)', // }, 1000); // This is an unresolvable dependency between custom property animations. // This class detects when this scenario occurs and treats the custom property // as invalid at computed-value time: // https://drafts.csswg.org/css-variables/#invalid-at-computed-value-time class CSSVarCycleInterpolationType : public InterpolationType { … }; } // namespace blink #endif // THIRD_PARTY_BLINK_RENDERER_CORE_ANIMATION_CSS_VAR_CYCLE_INTERPOLATION_TYPE_H_