Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1231)

Side by Side Diff: third_party/WebKit/Source/core/animation/AnimationEffectTiming.cpp

Issue 2379863003: Implement AnimationEffectTimingReadOnly interface (Closed)
Patch Set: Response to review, update formatting of new files Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "core/animation/AnimationEffectTiming.h" 5 #include "core/animation/AnimationEffectTiming.h"
6 6
7 #include "bindings/core/v8/ExceptionState.h" 7 #include "bindings/core/v8/ExceptionState.h"
8 #include "bindings/core/v8/UnrestrictedDoubleOrString.h" 8 #include "bindings/core/v8/UnrestrictedDoubleOrString.h"
9 #include "core/animation/AnimationEffectReadOnly.h" 9 #include "core/animation/AnimationEffectReadOnly.h"
10 #include "core/animation/AnimationEffectTimingReadOnly.h"
10 #include "core/animation/KeyframeEffect.h" 11 #include "core/animation/KeyframeEffect.h"
11 #include "platform/animation/TimingFunction.h" 12 #include "platform/animation/TimingFunction.h"
12 13
13 namespace blink { 14 namespace blink {
14 15
15 AnimationEffectTiming* AnimationEffectTiming::create( 16 AnimationEffectTiming* AnimationEffectTiming::create(
16 AnimationEffectReadOnly* parent) { 17 AnimationEffectReadOnly* parent) {
17 return new AnimationEffectTiming(parent); 18 return new AnimationEffectTiming(parent);
18 } 19 }
19 20
20 AnimationEffectTiming::AnimationEffectTiming(AnimationEffectReadOnly* parent) 21 AnimationEffectTiming::AnimationEffectTiming(AnimationEffectReadOnly* parent)
21 : m_parent(parent) {} 22 : AnimationEffectTimingReadOnly(parent) {}
22
23 double AnimationEffectTiming::delay() {
24 return m_parent->specifiedTiming().startDelay * 1000;
25 }
26
27 double AnimationEffectTiming::endDelay() {
28 return m_parent->specifiedTiming().endDelay * 1000;
29 }
30
31 String AnimationEffectTiming::fill() {
32 return Timing::fillModeString(m_parent->specifiedTiming().fillMode);
33 }
34
35 double AnimationEffectTiming::iterationStart() {
36 return m_parent->specifiedTiming().iterationStart;
37 }
38
39 double AnimationEffectTiming::iterations() {
40 return m_parent->specifiedTiming().iterationCount;
41 }
42
43 void AnimationEffectTiming::duration(UnrestrictedDoubleOrString& returnValue) {
44 if (std::isnan(m_parent->specifiedTiming().iterationDuration))
45 returnValue.setString("auto");
46 else
47 returnValue.setUnrestrictedDouble(
48 m_parent->specifiedTiming().iterationDuration * 1000);
49 }
50
51 double AnimationEffectTiming::playbackRate() {
52 return m_parent->specifiedTiming().playbackRate;
53 }
54
55 String AnimationEffectTiming::direction() {
56 return Timing::playbackDirectionString(m_parent->specifiedTiming().direction);
57 }
58
59 String AnimationEffectTiming::easing() {
60 return m_parent->specifiedTiming().timingFunction->toString();
61 }
62 23
63 void AnimationEffectTiming::setDelay(double delay) { 24 void AnimationEffectTiming::setDelay(double delay) {
64 Timing timing = m_parent->specifiedTiming(); 25 Timing timing = m_parent->specifiedTiming();
65 TimingInput::setStartDelay(timing, delay); 26 TimingInput::setStartDelay(timing, delay);
66 m_parent->updateSpecifiedTiming(timing); 27 m_parent->updateSpecifiedTiming(timing);
67 } 28 }
68 29
69 void AnimationEffectTiming::setEndDelay(double endDelay) { 30 void AnimationEffectTiming::setEndDelay(double endDelay) {
70 Timing timing = m_parent->specifiedTiming(); 31 Timing timing = m_parent->specifiedTiming();
71 TimingInput::setEndDelay(timing, endDelay); 32 TimingInput::setEndDelay(timing, endDelay);
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 // The AnimationEffectTiming might not be attached to a document at this 79 // The AnimationEffectTiming might not be attached to a document at this
119 // point, so we pass nullptr in to setTimingFunction. This means that these 80 // point, so we pass nullptr in to setTimingFunction. This means that these
120 // calls are not considered in the WebAnimationsEasingAsFunction* 81 // calls are not considered in the WebAnimationsEasingAsFunction*
121 // UseCounters, but the bug we are tracking there does not come through 82 // UseCounters, but the bug we are tracking there does not come through
122 // this interface. 83 // this interface.
123 if (TimingInput::setTimingFunction(timing, easing, nullptr, exceptionState)) 84 if (TimingInput::setTimingFunction(timing, easing, nullptr, exceptionState))
124 m_parent->updateSpecifiedTiming(timing); 85 m_parent->updateSpecifiedTiming(timing);
125 } 86 }
126 87
127 DEFINE_TRACE(AnimationEffectTiming) { 88 DEFINE_TRACE(AnimationEffectTiming) {
128 visitor->trace(m_parent); 89 AnimationEffectTimingReadOnly::trace(visitor);
129 } 90 }
130 91
131 } // namespace blink 92 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698