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

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

Issue 183923038: Oilpan: Fix tracing of KeyframeVector in CompositorAnimationsTest. (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 | no next file » | 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 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 54
55 namespace WebCore { 55 namespace WebCore {
56 56
57 using ::testing::CloneToPassOwnPtr; 57 using ::testing::CloneToPassOwnPtr;
58 using ::testing::ExpectationSet; 58 using ::testing::ExpectationSet;
59 using ::testing::Ref; 59 using ::testing::Ref;
60 using ::testing::Return; 60 using ::testing::Return;
61 using ::testing::_; 61 using ::testing::_;
62 62
63 class AnimationCompositorAnimationsTest : public AnimationCompositorAnimationsTe stBase { 63 class AnimationCompositorAnimationsTest : public AnimationCompositorAnimationsTe stBase {
64
65 protected: 64 protected:
66 RefPtr<TimingFunction> m_linearTimingFunction; 65 RefPtr<TimingFunction> m_linearTimingFunction;
67 RefPtr<TimingFunction> m_cubicEaseTimingFunction; 66 RefPtr<TimingFunction> m_cubicEaseTimingFunction;
68 RefPtr<TimingFunction> m_cubicCustomTimingFunction; 67 RefPtr<TimingFunction> m_cubicCustomTimingFunction;
69 RefPtr<TimingFunction> m_stepTimingFunction; 68 RefPtr<TimingFunction> m_stepTimingFunction;
70 69
71 Timing m_timing; 70 Timing m_timing;
72 CompositorAnimationsImpl::CompositorTiming m_compositorTiming; 71 CompositorAnimationsImpl::CompositorTiming m_compositorTiming;
73 KeyframeEffectModel::KeyframeVector m_keyframeVector2; 72 OwnPtrWillBePersistent<KeyframeEffectModel::KeyframeVector> m_keyframeVector 2;
74 RefPtrWillBePersistent<KeyframeEffectModel> m_keyframeAnimationEffect2; 73 RefPtrWillBePersistent<KeyframeEffectModel> m_keyframeAnimationEffect2;
75 KeyframeEffectModel::KeyframeVector m_keyframeVector5; 74 OwnPtrWillBePersistent<KeyframeEffectModel::KeyframeVector> m_keyframeVector 5;
76 RefPtrWillBePersistent<KeyframeEffectModel> m_keyframeAnimationEffect5; 75 RefPtrWillBePersistent<KeyframeEffectModel> m_keyframeAnimationEffect5;
77 76
78 virtual void SetUp() 77 virtual void SetUp()
79 { 78 {
80 AnimationCompositorAnimationsTestBase::SetUp(); 79 AnimationCompositorAnimationsTestBase::SetUp();
81 80
82 m_linearTimingFunction = LinearTimingFunction::create(); 81 m_linearTimingFunction = LinearTimingFunction::create();
83 m_cubicEaseTimingFunction = CubicBezierTimingFunction::preset(CubicBezie rTimingFunction::Ease); 82 m_cubicEaseTimingFunction = CubicBezierTimingFunction::preset(CubicBezie rTimingFunction::Ease);
84 m_cubicCustomTimingFunction = CubicBezierTimingFunction::create(1, 2, 3, 4); 83 m_cubicCustomTimingFunction = CubicBezierTimingFunction::create(1, 2, 3, 4);
85 m_stepTimingFunction = StepsTimingFunction::create(1, StepsTimingFunctio n::StepAtEnd); 84 m_stepTimingFunction = StepsTimingFunction::create(1, StepsTimingFunctio n::StepAtEnd);
86 85
87 m_timing = createCompositableTiming(); 86 m_timing = createCompositableTiming();
88 m_compositorTiming = CompositorAnimationsImpl::CompositorTiming(); 87 m_compositorTiming = CompositorAnimationsImpl::CompositorTiming();
89 // Make sure the CompositableTiming is really compositable, otherwise 88 // Make sure the CompositableTiming is really compositable, otherwise
90 // most other tests will fail. 89 // most other tests will fail.
91 ASSERT(convertTimingForCompositor(m_timing, m_compositorTiming)); 90 ASSERT(convertTimingForCompositor(m_timing, m_compositorTiming));
92 91
93 m_keyframeVector2 = createCompositableFloatKeyframeVector(2); 92 m_keyframeVector2 = createCompositableFloatKeyframeVector(2);
94 m_keyframeAnimationEffect2 = KeyframeEffectModel::create(m_keyframeVecto r2); 93 m_keyframeAnimationEffect2 = KeyframeEffectModel::create(*m_keyframeVect or2.get());
95 94
96 m_keyframeVector5 = createCompositableFloatKeyframeVector(5); 95 m_keyframeVector5 = createCompositableFloatKeyframeVector(5);
97 m_keyframeAnimationEffect5 = KeyframeEffectModel::create(m_keyframeVecto r5); 96 m_keyframeAnimationEffect5 = KeyframeEffectModel::create(*m_keyframeVect or5.get());
98 } 97 }
99 98
100 public: 99 public:
101 100
102 bool convertTimingForCompositor(const Timing& t, CompositorAnimationsImpl::C ompositorTiming& out) 101 bool convertTimingForCompositor(const Timing& t, CompositorAnimationsImpl::C ompositorTiming& out)
103 { 102 {
104 return CompositorAnimationsImpl::convertTimingForCompositor(t, out); 103 return CompositorAnimationsImpl::convertTimingForCompositor(t, out);
105 } 104 }
106 bool isCandidateForAnimationOnCompositor(const Timing& timing, const Animati onEffect& effect) 105 bool isCandidateForAnimationOnCompositor(const Timing& timing, const Animati onEffect& effect)
107 { 106 {
108 return CompositorAnimations::instance()->isCandidateForAnimationOnCompos itor(timing, effect); 107 return CompositorAnimations::instance()->isCandidateForAnimationOnCompos itor(timing, effect);
109 } 108 }
110 void getAnimationOnCompositor(Timing& timing, KeyframeEffectModel& effect, V ector<OwnPtr<blink::WebAnimation> >& animations) 109 void getAnimationOnCompositor(Timing& timing, KeyframeEffectModel& effect, V ector<OwnPtr<blink::WebAnimation> >& animations)
111 { 110 {
112 return CompositorAnimationsImpl::getAnimationOnCompositor(timing, effect , animations); 111 return CompositorAnimationsImpl::getAnimationOnCompositor(timing, effect , animations);
113 } 112 }
114 113
115 bool isCandidateHelperForSingleKeyframe(Keyframe* frame) 114 bool isCandidateHelperForSingleKeyframe(Keyframe* frame)
116 { 115 {
117 EXPECT_EQ(frame->offset(), 0); 116 EXPECT_EQ(frame->offset(), 0);
118 KeyframeEffectModel::KeyframeVector frames; 117 KeyframeEffectModel::KeyframeVector frames;
119 frames.append(frame); 118 frames.append(frame);
120 EXPECT_EQ(m_keyframeVector2[1]->offset(), 1.0); 119 EXPECT_EQ((*m_keyframeVector2)[1]->offset(), 1.0);
121 frames.append(m_keyframeVector2[1]); 120 frames.append((*m_keyframeVector2)[1]);
122 return isCandidateForAnimationOnCompositor(m_timing, *KeyframeEffectMode l::create(frames).get()); 121 return isCandidateForAnimationOnCompositor(m_timing, *KeyframeEffectMode l::create(frames).get());
123 } 122 }
124 123
125 // ------------------------------------------------------------------- 124 // -------------------------------------------------------------------
126 125
127 Timing createCompositableTiming() 126 Timing createCompositableTiming()
128 { 127 {
129 Timing timing; 128 Timing timing;
130 timing.startDelay = 0; 129 timing.startDelay = 0;
131 timing.fillMode = Timing::FillModeNone; 130 timing.fillMode = Timing::FillModeNone;
(...skipping 22 matching lines...) Expand all
154 if (id == CSSPropertyWebkitTransform) 153 if (id == CSSPropertyWebkitTransform)
155 value = AnimatableTransform::create(TransformOperations()); 154 value = AnimatableTransform::create(TransformOperations());
156 else 155 else
157 value = AnimatableDouble::create(10.0); 156 value = AnimatableDouble::create(10.0);
158 157
159 RefPtrWillBeRawPtr<Keyframe> keyframe = createReplaceOpKeyframe(id, valu e.get(), offset); 158 RefPtrWillBeRawPtr<Keyframe> keyframe = createReplaceOpKeyframe(id, valu e.get(), offset);
160 keyframe->setComposite(op); 159 keyframe->setComposite(op);
161 return keyframe; 160 return keyframe;
162 } 161 }
163 162
164 KeyframeEffectModel::KeyframeVector createCompositableFloatKeyframeVector(si ze_t n) 163 PassOwnPtrWillBeRawPtr<KeyframeEffectModel::KeyframeVector> createCompositab leFloatKeyframeVector(size_t n)
165 { 164 {
166 Vector<double> values; 165 Vector<double> values;
167 for (size_t i = 0; i < n; i++) { 166 for (size_t i = 0; i < n; i++) {
168 values.append(static_cast<double>(i)); 167 values.append(static_cast<double>(i));
169 } 168 }
170 return createCompositableFloatKeyframeVector(values); 169 return createCompositableFloatKeyframeVector(values);
171 } 170 }
172 171
173 KeyframeEffectModel::KeyframeVector createCompositableFloatKeyframeVector(Ve ctor<double>& values) 172 PassOwnPtrWillBeRawPtr<KeyframeEffectModel::KeyframeVector> createCompositab leFloatKeyframeVector(Vector<double>& values)
174 { 173 {
175 KeyframeEffectModel::KeyframeVector frames; 174 OwnPtrWillBeRawPtr<KeyframeEffectModel::KeyframeVector> frames = adoptPt rWillBeNoop(new KeyframeEffectModel::KeyframeVector);
176 for (size_t i = 0; i < values.size(); i++) { 175 for (size_t i = 0; i < values.size(); i++) {
177 double offset = 1.0 / (values.size() - 1) * i; 176 double offset = 1.0 / (values.size() - 1) * i;
178 RefPtr<AnimatableDouble> value = AnimatableDouble::create(values[i]) ; 177 RefPtr<AnimatableDouble> value = AnimatableDouble::create(values[i]) ;
179 frames.append(createReplaceOpKeyframe(CSSPropertyOpacity, value.get( ), offset).get()); 178 frames->append(createReplaceOpKeyframe(CSSPropertyOpacity, value.get (), offset).get());
180 } 179 }
181 return frames; 180 return frames.release();
182 } 181 }
183 182
184 PassRefPtrWillBeRawPtr<KeyframeEffectModel> createKeyframeEffectModel(PassRe fPtrWillBeRawPtr<Keyframe> prpFrom, PassRefPtrWillBeRawPtr<Keyframe> prpTo, Pass RefPtrWillBeRawPtr<Keyframe> prpC = nullptr, PassRefPtrWillBeRawPtr<Keyframe> pr pD = nullptr) 183 PassRefPtrWillBeRawPtr<KeyframeEffectModel> createKeyframeEffectModel(PassRe fPtrWillBeRawPtr<Keyframe> prpFrom, PassRefPtrWillBeRawPtr<Keyframe> prpTo, Pass RefPtrWillBeRawPtr<Keyframe> prpC = nullptr, PassRefPtrWillBeRawPtr<Keyframe> pr pD = nullptr)
185 { 184 {
186 RefPtrWillBeRawPtr<Keyframe> from = prpFrom; 185 RefPtrWillBeRawPtr<Keyframe> from = prpFrom;
187 RefPtrWillBeRawPtr<Keyframe> to = prpTo; 186 RefPtrWillBeRawPtr<Keyframe> to = prpTo;
188 RefPtrWillBeRawPtr<Keyframe> c = prpC; 187 RefPtrWillBeRawPtr<Keyframe> c = prpC;
189 RefPtrWillBeRawPtr<Keyframe> d = prpD; 188 RefPtrWillBeRawPtr<Keyframe> d = prpD;
190 189
191 EXPECT_EQ(from->offset(), 0); 190 EXPECT_EQ(from->offset(), 0);
(...skipping 843 matching lines...) Expand 10 before | Expand all | Expand 10 after
1035 // Go! 1034 // Go!
1036 setCompositorForTesting(mockCompositor); 1035 setCompositorForTesting(mockCompositor);
1037 Vector<OwnPtr<blink::WebAnimation> > result; 1036 Vector<OwnPtr<blink::WebAnimation> > result;
1038 getAnimationOnCompositor(m_timing, *effect.get(), result); 1037 getAnimationOnCompositor(m_timing, *effect.get(), result);
1039 EXPECT_EQ(1U, result.size()); 1038 EXPECT_EQ(1U, result.size());
1040 result[0].clear(); 1039 result[0].clear();
1041 } 1040 }
1042 1041
1043 1042
1044 } // namespace WebCore 1043 } // namespace WebCore
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698