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

Side by Side Diff: Source/core/animation/Animation.cpp

Issue 178663007: Web Animations: Reduce duplication of Timing defaults. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 9 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | Source/core/animation/TimedItemCalculations.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 return nullptr; 95 return nullptr;
96 96
97 return createUnsafe(element, keyframeDictionaryVector); 97 return createUnsafe(element, keyframeDictionaryVector);
98 } 98 }
99 99
100 void Animation::setStartDelay(Timing& timing, double startDelay) 100 void Animation::setStartDelay(Timing& timing, double startDelay)
101 { 101 {
102 if (std::isfinite(startDelay)) 102 if (std::isfinite(startDelay))
103 timing.startDelay = startDelay; 103 timing.startDelay = startDelay;
104 else 104 else
105 timing.startDelay = 0; 105 timing.startDelay = Timing::defaults().startDelay;
106 } 106 }
107 107
108 void Animation::setEndDelay(Timing& timing, double endDelay) 108 void Animation::setEndDelay(Timing& timing, double endDelay)
109 { 109 {
110 if (std::isfinite(endDelay)) 110 if (std::isfinite(endDelay))
111 timing.endDelay = endDelay; 111 timing.endDelay = endDelay;
112 else 112 else
113 timing.endDelay = 0; 113 timing.endDelay = Timing::defaults().endDelay;
114 } 114 }
115 115
116 void Animation::setFillMode(Timing& timing, String fillMode) 116 void Animation::setFillMode(Timing& timing, String fillMode)
117 { 117 {
118 if (fillMode == "none") { 118 if (fillMode == "none") {
119 timing.fillMode = Timing::FillModeNone; 119 timing.fillMode = Timing::FillModeNone;
120 } else if (fillMode == "backwards") { 120 } else if (fillMode == "backwards") {
121 timing.fillMode = Timing::FillModeBackwards; 121 timing.fillMode = Timing::FillModeBackwards;
122 } else if (fillMode == "both") { 122 } else if (fillMode == "both") {
123 timing.fillMode = Timing::FillModeBoth; 123 timing.fillMode = Timing::FillModeBoth;
124 } else if (fillMode == "forwards") { 124 } else if (fillMode == "forwards") {
125 timing.fillMode = Timing::FillModeForwards; 125 timing.fillMode = Timing::FillModeForwards;
126 } else { 126 } else {
127 timing.fillMode = Timing::FillModeAuto; 127 timing.fillMode = Timing::defaults().fillMode;
128 } 128 }
129 } 129 }
130 130
131 void Animation::setIterationStart(Timing& timing, double iterationStart) 131 void Animation::setIterationStart(Timing& timing, double iterationStart)
132 { 132 {
133 if (!std::isnan(iterationStart) && !std::isinf(iterationStart)) 133 if (!std::isnan(iterationStart) && !std::isinf(iterationStart))
134 timing.iterationStart = std::max<double>(iterationStart, 0); 134 timing.iterationStart = std::max<double>(iterationStart, 0);
135 else 135 else
136 timing.iterationStart = 0; 136 timing.iterationStart = Timing::defaults().iterationStart;
137 } 137 }
138 138
139 void Animation::setIterationCount(Timing& timing, double iterationCount) 139 void Animation::setIterationCount(Timing& timing, double iterationCount)
140 { 140 {
141 if (!std::isnan(iterationCount)) 141 if (!std::isnan(iterationCount))
142 timing.iterationCount = std::max<double>(iterationCount, 0); 142 timing.iterationCount = std::max<double>(iterationCount, 0);
143 else 143 else
144 timing.iterationCount = 1; 144 timing.iterationCount = Timing::defaults().iterationCount;
145 } 145 }
146 146
147 void Animation::setIterationDuration(Timing& timing, double iterationDuration) 147 void Animation::setIterationDuration(Timing& timing, double iterationDuration)
148 { 148 {
149 if (!std::isnan(iterationDuration) && iterationDuration >= 0) 149 if (!std::isnan(iterationDuration) && iterationDuration >= 0)
150 timing.iterationDuration = iterationDuration; 150 timing.iterationDuration = iterationDuration;
151 else 151 else
152 timing.iterationDuration = std::numeric_limits<double>::quiet_NaN(); 152 timing.iterationDuration = Timing::defaults().iterationDuration;
153 } 153 }
154 154
155 void Animation::setPlaybackRate(Timing& timing, double playbackRate) 155 void Animation::setPlaybackRate(Timing& timing, double playbackRate)
156 { 156 {
157 if (!std::isnan(playbackRate) && !std::isinf(playbackRate)) 157 if (!std::isnan(playbackRate) && !std::isinf(playbackRate))
158 timing.playbackRate = playbackRate; 158 timing.playbackRate = playbackRate;
159 else 159 else
160 timing.playbackRate = 1; 160 timing.playbackRate = Timing::defaults().playbackRate;
161 } 161 }
162 162
163 void Animation::setPlaybackDirection(Timing& timing, String direction) 163 void Animation::setPlaybackDirection(Timing& timing, String direction)
164 { 164 {
165 if (direction == "reverse") { 165 if (direction == "reverse") {
166 timing.direction = Timing::PlaybackDirectionReverse; 166 timing.direction = Timing::PlaybackDirectionReverse;
167 } else if (direction == "alternate") { 167 } else if (direction == "alternate") {
168 timing.direction = Timing::PlaybackDirectionAlternate; 168 timing.direction = Timing::PlaybackDirectionAlternate;
169 } else if (direction == "alternate-reverse") { 169 } else if (direction == "alternate-reverse") {
170 timing.direction = Timing::PlaybackDirectionAlternateReverse; 170 timing.direction = Timing::PlaybackDirectionAlternateReverse;
171 } else { 171 } else {
172 timing.direction = Timing::PlaybackDirectionNormal; 172 timing.direction = Timing::defaults().direction;
173 } 173 }
174 } 174 }
175 175
176 void Animation::setTimingFunction(Timing& timing, String timingFunctionString) 176 void Animation::setTimingFunction(Timing& timing, String timingFunctionString)
177 { 177 {
178 RefPtrWillBeRawPtr<CSSValue> timingFunctionValue = BisonCSSParser::parseAnim ationTimingFunctionValue(timingFunctionString); 178 RefPtrWillBeRawPtr<CSSValue> timingFunctionValue = BisonCSSParser::parseAnim ationTimingFunctionValue(timingFunctionString);
179 if (timingFunctionValue) { 179 if (timingFunctionValue) {
180 RefPtr<TimingFunction> timingFunction = CSSToStyleMap::animationTimingFu nction(timingFunctionValue.get(), false); 180 RefPtr<TimingFunction> timingFunction = CSSToStyleMap::animationTimingFu nction(timingFunctionValue.get(), false);
181 if (timingFunction) { 181 if (timingFunction) {
182 timing.timingFunction = timingFunction; 182 timing.timingFunction = timingFunction;
183 return; 183 return;
184 } 184 }
185 } 185 }
186 timing.timingFunction = LinearTimingFunction::create(); 186 timing.timingFunction = Timing::defaults().timingFunction;
187 } 187 }
188 188
189 void Animation::populateTiming(Timing& timing, Dictionary timingInputDictionary) 189 void Animation::populateTiming(Timing& timing, Dictionary timingInputDictionary)
190 { 190 {
191 // FIXME: This method needs to be refactored to handle invalid 191 // FIXME: This method needs to be refactored to handle invalid
192 // null, NaN, Infinity values better. 192 // null, NaN, Infinity values better.
193 // See: http://www.w3.org/TR/WebIDL/#es-double 193 // See: http://www.w3.org/TR/WebIDL/#es-double
194 double startDelay = 0; 194 double startDelay = 0;
195 timingInputDictionary.get("delay", startDelay); 195 timingInputDictionary.get("delay", startDelay);
196 setStartDelay(timing, startDelay); 196 setStartDelay(timing, startDelay);
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
478 void Animation::pauseAnimationForTestingOnCompositor(double pauseTime) 478 void Animation::pauseAnimationForTestingOnCompositor(double pauseTime)
479 { 479 {
480 ASSERT(hasActiveAnimationsOnCompositor()); 480 ASSERT(hasActiveAnimationsOnCompositor());
481 if (!m_target || !m_target->renderer()) 481 if (!m_target || !m_target->renderer())
482 return; 482 return;
483 for (size_t i = 0; i < m_compositorAnimationIds.size(); ++i) 483 for (size_t i = 0; i < m_compositorAnimationIds.size(); ++i)
484 CompositorAnimations::instance()->pauseAnimationForTestingOnCompositor(* m_target.get(), m_compositorAnimationIds[i], pauseTime); 484 CompositorAnimations::instance()->pauseAnimationForTestingOnCompositor(* m_target.get(), m_compositorAnimationIds[i], pauseTime);
485 } 485 }
486 486
487 } // namespace WebCore 487 } // namespace WebCore
OLDNEW
« no previous file with comments | « no previous file | Source/core/animation/TimedItemCalculations.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698