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

Side by Side Diff: Source/core/inspector/InspectorAnimationAgent.cpp

Issue 1120003002: [Oilpan] Migrate most classes under core/animations to Oilpan heap. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebase Created 5 years, 4 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
« no previous file with comments | « Source/core/inspector/InspectorAnimationAgent.h ('k') | Source/platform/heap/Handle.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 // 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 "config.h" 5 #include "config.h"
6 6
7 #include "core/inspector/InspectorAnimationAgent.h" 7 #include "core/inspector/InspectorAnimationAgent.h"
8 8
9 #include "core/animation/Animation.h" 9 #include "core/animation/Animation.h"
10 #include "core/animation/AnimationEffect.h" 10 #include "core/animation/AnimationEffect.h"
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 ComputedTimingProperties computedTiming; 77 ComputedTimingProperties computedTiming;
78 effect->computedTiming(computedTiming); 78 effect->computedTiming(computedTiming);
79 double delay = computedTiming.delay(); 79 double delay = computedTiming.delay();
80 double duration = computedTiming.duration().getAsUnrestrictedDouble(); 80 double duration = computedTiming.duration().getAsUnrestrictedDouble();
81 String easing = effect->specifiedTiming().timingFunction->toString(); 81 String easing = effect->specifiedTiming().timingFunction->toString();
82 82
83 if (isTransition) { 83 if (isTransition) {
84 // Obtain keyframes and convert keyframes back to delay 84 // Obtain keyframes and convert keyframes back to delay
85 ASSERT(effect->model()->isKeyframeEffectModel()); 85 ASSERT(effect->model()->isKeyframeEffectModel());
86 const KeyframeEffectModelBase* model = toKeyframeEffectModelBase(effect- >model()); 86 const KeyframeEffectModelBase* model = toKeyframeEffectModelBase(effect- >model());
87 WillBeHeapVector<RefPtrWillBeMember<Keyframe> > keyframes = KeyframeEffe ctModelBase::normalizedKeyframesForInspector(model->getFrames()); 87 HeapVector<Member<Keyframe>> keyframes = KeyframeEffectModelBase::normal izedKeyframesForInspector(model->getFrames());
88 if (keyframes.size() == 3) { 88 if (keyframes.size() == 3) {
89 delay = keyframes.at(1)->offset() * duration; 89 delay = keyframes.at(1)->offset() * duration;
90 duration -= delay; 90 duration -= delay;
91 easing = keyframes.at(1)->easing().toString(); 91 easing = keyframes.at(1)->easing().toString();
92 } else { 92 } else {
93 easing = keyframes.at(0)->easing().toString(); 93 easing = keyframes.at(0)->easing().toString();
94 } 94 }
95 } 95 }
96 96
97 RefPtr<TypeBuilder::Animation::AnimationEffect> animationObject = TypeBuilde r::Animation::AnimationEffect::create() 97 RefPtr<TypeBuilder::Animation::AnimationEffect> animationObject = TypeBuilde r::Animation::AnimationEffect::create()
(...skipping 21 matching lines...) Expand all
119 .setOffset(offset) 119 .setOffset(offset)
120 .setEasing(keyframe->easing().toString()); 120 .setEasing(keyframe->easing().toString());
121 return keyframeObject.release(); 121 return keyframeObject.release();
122 } 122 }
123 123
124 static PassRefPtr<TypeBuilder::Animation::KeyframesRule> buildObjectForAnimation Keyframes(const KeyframeEffect* effect) 124 static PassRefPtr<TypeBuilder::Animation::KeyframesRule> buildObjectForAnimation Keyframes(const KeyframeEffect* effect)
125 { 125 {
126 if (!effect || !effect->model() || !effect->model()->isKeyframeEffectModel() ) 126 if (!effect || !effect->model() || !effect->model()->isKeyframeEffectModel() )
127 return nullptr; 127 return nullptr;
128 const KeyframeEffectModelBase* model = toKeyframeEffectModelBase(effect->mod el()); 128 const KeyframeEffectModelBase* model = toKeyframeEffectModelBase(effect->mod el());
129 WillBeHeapVector<RefPtrWillBeMember<Keyframe> > normalizedKeyframes = Keyfra meEffectModelBase::normalizedKeyframesForInspector(model->getFrames()); 129 HeapVector<Member<Keyframe>> normalizedKeyframes = KeyframeEffectModelBase:: normalizedKeyframesForInspector(model->getFrames());
130 RefPtr<TypeBuilder::Array<TypeBuilder::Animation::KeyframeStyle> > keyframes = TypeBuilder::Array<TypeBuilder::Animation::KeyframeStyle>::create(); 130 RefPtr<TypeBuilder::Array<TypeBuilder::Animation::KeyframeStyle> > keyframes = TypeBuilder::Array<TypeBuilder::Animation::KeyframeStyle>::create();
131 131
132 for (const auto& keyframe : normalizedKeyframes) { 132 for (const auto& keyframe : normalizedKeyframes) {
133 // Ignore CSS Transitions 133 // Ignore CSS Transitions
134 if (!keyframe.get()->isStringKeyframe()) 134 if (!keyframe.get()->isStringKeyframe())
135 continue; 135 continue;
136 const StringKeyframe* stringKeyframe = toStringKeyframe(keyframe.get()); 136 const StringKeyframe* stringKeyframe = toStringKeyframe(keyframe.get());
137 keyframes->addItem(buildObjectForStringKeyframe(stringKeyframe)); 137 keyframes->addItem(buildObjectForStringKeyframe(stringKeyframe));
138 } 138 }
139 RefPtr<TypeBuilder::Animation::KeyframesRule> keyframesObject = TypeBuilder: :Animation::KeyframesRule::create() 139 RefPtr<TypeBuilder::Animation::KeyframesRule> keyframesObject = TypeBuilder: :Animation::KeyframesRule::create()
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 AnimationType type = m_idToAnimationType.get(animationId); 210 AnimationType type = m_idToAnimationType.get(animationId);
211 if (type == AnimationType::CSSTransition) { 211 if (type == AnimationType::CSSTransition) {
212 KeyframeEffect* effect = toKeyframeEffect(animation->effect()); 212 KeyframeEffect* effect = toKeyframeEffect(animation->effect());
213 KeyframeEffectModelBase* model = toKeyframeEffectModelBase(effect->model ()); 213 KeyframeEffectModelBase* model = toKeyframeEffectModelBase(effect->model ());
214 const AnimatableValueKeyframeEffectModel* oldModel = toAnimatableValueKe yframeEffectModel(model); 214 const AnimatableValueKeyframeEffectModel* oldModel = toAnimatableValueKe yframeEffectModel(model);
215 // Refer to CSSAnimations::calculateTransitionUpdateForProperty() for th e structure of transitions. 215 // Refer to CSSAnimations::calculateTransitionUpdateForProperty() for th e structure of transitions.
216 const KeyframeVector& frames = oldModel->getFrames(); 216 const KeyframeVector& frames = oldModel->getFrames();
217 ASSERT(frames.size() == 3); 217 ASSERT(frames.size() == 3);
218 KeyframeVector newFrames; 218 KeyframeVector newFrames;
219 for (int i = 0; i < 3; i++) 219 for (int i = 0; i < 3; i++)
220 newFrames.append(toAnimatableValueKeyframe(frames[i]->clone().get()) ); 220 newFrames.append(toAnimatableValueKeyframe(frames[i]->clone()));
221 // Update delay, represented by the distance between the first two keyfr ames. 221 // Update delay, represented by the distance between the first two keyfr ames.
222 newFrames[1]->setOffset(delay / (delay + duration)); 222 newFrames[1]->setOffset(delay / (delay + duration));
223 model->setFrames(newFrames); 223 model->setFrames(newFrames);
224 224
225 RefPtrWillBeRawPtr<AnimationEffectTiming> timing = animation->effect()-> timing(); 225 AnimationEffectTiming* timing = animation->effect()->timing();
226 UnrestrictedDoubleOrString unrestrictedDuration; 226 UnrestrictedDoubleOrString unrestrictedDuration;
227 unrestrictedDuration.setUnrestrictedDouble(duration + delay); 227 unrestrictedDuration.setUnrestrictedDouble(duration + delay);
228 timing->setDuration(unrestrictedDuration); 228 timing->setDuration(unrestrictedDuration);
229 } else if (type == AnimationType::WebAnimation) { 229 } else if (type == AnimationType::WebAnimation) {
230 RefPtrWillBeRawPtr<AnimationEffectTiming> timing = animation->effect()-> timing(); 230 AnimationEffectTiming* timing = animation->effect()->timing();
231 UnrestrictedDoubleOrString unrestrictedDuration; 231 UnrestrictedDoubleOrString unrestrictedDuration;
232 unrestrictedDuration.setUnrestrictedDouble(duration); 232 unrestrictedDuration.setUnrestrictedDouble(duration);
233 timing->setDuration(unrestrictedDuration); 233 timing->setDuration(unrestrictedDuration);
234 timing->setDelay(delay); 234 timing->setDelay(delay);
235 } 235 }
236 } 236 }
237 237
238 void InspectorAnimationAgent::didCreateAnimation(Animation* animation) 238 void InspectorAnimationAgent::didCreateAnimation(Animation* animation)
239 { 239 {
240 const String& animationId = String::number(animation->sequenceNumber()); 240 const String& animationId = String::number(animation->sequenceNumber());
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
295 #if ENABLE(OILPAN) 295 #if ENABLE(OILPAN)
296 visitor->trace(m_pageAgent); 296 visitor->trace(m_pageAgent);
297 visitor->trace(m_domAgent); 297 visitor->trace(m_domAgent);
298 visitor->trace(m_idToAnimation); 298 visitor->trace(m_idToAnimation);
299 visitor->trace(m_idToAnimationType); 299 visitor->trace(m_idToAnimationType);
300 #endif 300 #endif
301 InspectorBaseAgent::trace(visitor); 301 InspectorBaseAgent::trace(visitor);
302 } 302 }
303 303
304 } 304 }
OLDNEW
« no previous file with comments | « Source/core/inspector/InspectorAnimationAgent.h ('k') | Source/platform/heap/Handle.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698