Index: third_party/WebKit/Source/core/animation/KeyframeEffectReadOnly.cpp |
diff --git a/third_party/WebKit/Source/core/animation/KeyframeEffectReadOnly.cpp b/third_party/WebKit/Source/core/animation/KeyframeEffectReadOnly.cpp |
index c7b469e6f7050ebbf58e418fcb431880c41c6df2..71fc64720d0a702419ab5bca0e516b5557a823be 100644 |
--- a/third_party/WebKit/Source/core/animation/KeyframeEffectReadOnly.cpp |
+++ b/third_party/WebKit/Source/core/animation/KeyframeEffectReadOnly.cpp |
@@ -24,18 +24,34 @@ |
namespace blink { |
-// Web Animations API Bindings constructors. We never actually want to create a |
-// KeyframeEffectReadOnly object, we just want to provide a read-only interface |
-// to the KeyframeEffect object, so pass straight through to the subclass |
-// factory methods. |
+KeyframeEffectReadOnly* KeyframeEffectReadOnly::create( |
+ Element* target, |
+ EffectModel* model, |
+ const Timing& timing, |
+ Priority priority, |
+ EventDelegate* eventDelegate) { |
+ return new KeyframeEffectReadOnly(target, model, timing, priority, |
+ eventDelegate); |
+} |
+ |
KeyframeEffectReadOnly* KeyframeEffectReadOnly::create( |
ExecutionContext* executionContext, |
Element* element, |
const DictionarySequenceOrDictionary& effectInput, |
double duration, |
ExceptionState& exceptionState) { |
- return KeyframeEffect::create(executionContext, element, effectInput, |
- duration, exceptionState); |
+ DCHECK(RuntimeEnabledFeatures::webAnimationsAPIEnabled()); |
+ if (element) { |
+ UseCounter::count( |
+ element->document(), |
+ UseCounter::AnimationConstructorKeyframeListEffectObjectTiming); |
+ } |
+ Timing timing; |
+ if (!TimingInput::convert(duration, timing, exceptionState)) |
+ return nullptr; |
+ return create(element, EffectInput::convert(element, effectInput, |
+ executionContext, exceptionState), |
+ timing); |
} |
KeyframeEffectReadOnly* KeyframeEffectReadOnly::create( |
@@ -44,8 +60,19 @@ KeyframeEffectReadOnly* KeyframeEffectReadOnly::create( |
const DictionarySequenceOrDictionary& effectInput, |
const KeyframeEffectOptions& timingInput, |
ExceptionState& exceptionState) { |
- return KeyframeEffect::create(executionContext, element, effectInput, |
- timingInput, exceptionState); |
+ DCHECK(RuntimeEnabledFeatures::webAnimationsAPIEnabled()); |
+ if (element) { |
+ UseCounter::count( |
+ element->document(), |
+ UseCounter::AnimationConstructorKeyframeListEffectObjectTiming); |
+ } |
+ Timing timing; |
+ Document* document = element ? &element->document() : nullptr; |
+ if (!TimingInput::convert(timingInput, timing, document, exceptionState)) |
+ return nullptr; |
+ return create(element, EffectInput::convert(element, effectInput, |
+ executionContext, exceptionState), |
+ timing); |
} |
KeyframeEffectReadOnly* KeyframeEffectReadOnly::create( |
@@ -53,8 +80,15 @@ KeyframeEffectReadOnly* KeyframeEffectReadOnly::create( |
Element* element, |
const DictionarySequenceOrDictionary& effectInput, |
ExceptionState& exceptionState) { |
- return KeyframeEffect::create(executionContext, element, effectInput, |
- exceptionState); |
+ DCHECK(RuntimeEnabledFeatures::webAnimationsAPIEnabled()); |
+ if (element) { |
+ UseCounter::count( |
+ element->document(), |
+ UseCounter::AnimationConstructorKeyframeListEffectNoTiming); |
+ } |
+ return create(element, EffectInput::convert(element, effectInput, |
+ executionContext, exceptionState), |
+ Timing()); |
} |
KeyframeEffectReadOnly::KeyframeEffectReadOnly(Element* target, |