| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // 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_EFFECT_INPUT_H_ |
| #define THIRD_PARTY_BLINK_RENDERER_CORE_ANIMATION_EFFECT_INPUT_H_ |
| |
| #include "third_party/blink/renderer/core/animation/effect_model.h" |
| #include "third_party/blink/renderer/core/animation/keyframe_effect_model.h" |
| #include "third_party/blink/renderer/core/core_export.h" |
| #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h" |
| #include "third_party/blink/renderer/platform/wtf/vector.h" |
| |
| namespace blink { |
| |
| class Element; |
| class ExceptionState; |
| class ScriptState; |
| class ScriptValue; |
| |
| class CORE_EXPORT EffectInput { |
| STATIC_ONLY(EffectInput); |
| |
| public: |
| static KeyframeEffectModelBase* Convert(Element*, |
| const ScriptValue& keyframes, |
| EffectModel::CompositeOperation, |
| ScriptState*, |
| ExceptionState&); |
| |
| // Implements "Processing a keyframes argument" from the web-animations spec. |
| // https://drafts.csswg.org/web-animations/#processing-a-keyframes-argument |
| static StringKeyframeVector ParseKeyframesArgument( |
| Element*, |
| const ScriptValue& keyframes, |
| ScriptState*, |
| ExceptionState&); |
| |
| // Ensures that a CompositeOperation is of an allowed value for a set of |
| // StringKeyframes and the current runtime flags. |
| // |
| // Under certain runtime flags, additive composite operations are not allowed |
| // for CSS properties. |
| static EffectModel::CompositeOperation ResolveCompositeOperation( |
| EffectModel::CompositeOperation, |
| const StringKeyframeVector&); |
| }; |
| |
| } // namespace blink |
| |
| #endif |