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

Side by Side Diff: cc/trees/layer_tree_host_unittest_animation.cc

Issue 14179022: Shouldn't access LayerTreeTest::layer_tree_host on impl thread (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 8 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
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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 "cc/trees/layer_tree_host.h" 5 #include "cc/trees/layer_tree_host.h"
6 6
7 #include "cc/animation/animation_curve.h" 7 #include "cc/animation/animation_curve.h"
8 #include "cc/animation/layer_animation_controller.h" 8 #include "cc/animation/layer_animation_controller.h"
9 #include "cc/animation/timing_function.h" 9 #include "cc/animation/timing_function.h"
10 #include "cc/layers/layer.h" 10 #include "cc/layers/layer.h"
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 245
246 virtual void AfterTest() OVERRIDE {} 246 virtual void AfterTest() OVERRIDE {}
247 247
248 private: 248 private:
249 int num_animates_; 249 int num_animates_;
250 }; 250 };
251 251
252 SINGLE_AND_MULTI_THREAD_TEST_F( 252 SINGLE_AND_MULTI_THREAD_TEST_F(
253 LayerTreeHostAnimationTestTickAnimationWhileBackgrounded); 253 LayerTreeHostAnimationTestTickAnimationWhileBackgrounded);
254 254
255 // Ensures that animations continue to be ticked when we are backgrounded.
256 class LayerTreeHostAnimationTestAddAnimationWithTimingFunction 255 class LayerTreeHostAnimationTestAddAnimationWithTimingFunction
257 : public LayerTreeHostAnimationTest { 256 : public LayerTreeHostAnimationTest {
258 public: 257 public:
259 LayerTreeHostAnimationTestAddAnimationWithTimingFunction() {} 258 LayerTreeHostAnimationTestAddAnimationWithTimingFunction() {}
260 259
261 virtual void SetupTree() OVERRIDE { 260 virtual void SetupTree() OVERRIDE {
262 LayerTreeHostAnimationTest::SetupTree(); 261 LayerTreeHostAnimationTest::SetupTree();
263 content_ = FakeContentLayer::Create(&client_); 262 content_ = FakeContentLayer::Create(&client_);
264 content_->SetBounds(gfx::Size(4, 4)); 263 content_->SetBounds(gfx::Size(4, 4));
264 content_->set_layer_animation_delegate(this);
265 layer_tree_host()->root_layer()->AddChild(content_); 265 layer_tree_host()->root_layer()->AddChild(content_);
266 } 266 }
267 267
268 virtual void BeginTest() OVERRIDE { 268 virtual void BeginTest() OVERRIDE {
269 PostAddAnimationToMainThread(content_); 269 PostAddAnimationToMainThread(content_);
270 } 270 }
271 271
272 virtual void AnimateLayers( 272 virtual void notifyAnimationStarted(double wallClockTime) OVERRIDE {
273 LayerTreeHostImpl* host_impl,
274 base::TimeTicks monotonic_time) OVERRIDE {
275 LayerAnimationController* controller = 273 LayerAnimationController* controller =
276 layer_tree_host()->root_layer()->children()[0]-> 274 layer_tree_host()->root_layer()->children()[0]->
277 layer_animation_controller(); 275 layer_animation_controller();
278 Animation* animation = 276 Animation* animation =
279 controller->GetAnimation(Animation::Opacity); 277 controller->GetAnimation(Animation::Opacity);
280 if (!animation)
281 return;
282
283 const FloatAnimationCurve* curve = 278 const FloatAnimationCurve* curve =
284 animation->curve()->ToFloatAnimationCurve(); 279 animation->curve()->ToFloatAnimationCurve();
285 float start_opacity = curve->GetValue(0.0); 280 float start_opacity = curve->GetValue(0.0);
286 float end_opacity = curve->GetValue(curve->Duration()); 281 float end_opacity = curve->GetValue(curve->Duration());
287 float linearly_interpolated_opacity = 282 float linearly_interpolated_opacity =
288 0.25f * end_opacity + 0.75f * start_opacity; 283 0.25f * end_opacity + 0.75f * start_opacity;
289 double time = curve->Duration() * 0.25; 284 double time = curve->Duration() * 0.25;
290 // If the linear timing function associated with this animation was not 285 // If the linear timing function associated with this animation was not
291 // picked up, then the linearly interpolated opacity would be different 286 // picked up, then the linearly interpolated opacity would be different
292 // because of the default ease timing function. 287 // because of the default ease timing function.
293 EXPECT_FLOAT_EQ(linearly_interpolated_opacity, curve->GetValue(time)); 288 EXPECT_FLOAT_EQ(linearly_interpolated_opacity, curve->GetValue(time));
294 289
295 LayerAnimationController* controller_impl = 290 controller->RemoveAnimation(animation->id());
296 host_impl->active_tree()->root_layer()->children()[0]->
297 layer_animation_controller();
298 Animation* animation_impl =
299 controller_impl->GetAnimation(Animation::Opacity);
300 291
301 controller->RemoveAnimation(animation->id());
302 controller_impl->RemoveAnimation(animation_impl->id());
303 EndTest(); 292 EndTest();
304 } 293 }
305 294
306 virtual void AfterTest() OVERRIDE {} 295 virtual void AfterTest() OVERRIDE {}
307 296
308 FakeContentLayerClient client_; 297 FakeContentLayerClient client_;
309 scoped_refptr<FakeContentLayer> content_; 298 scoped_refptr<FakeContentLayer> content_;
310 }; 299 };
311 300
312 SINGLE_AND_MULTI_THREAD_TEST_F( 301 SINGLE_AND_MULTI_THREAD_TEST_F(
(...skipping 507 matching lines...) Expand 10 before | Expand all | Expand 10 after
820 FakeContentLayerClient client_; 809 FakeContentLayerClient client_;
821 scoped_refptr<FakeContentLayer> root_layer_; 810 scoped_refptr<FakeContentLayer> root_layer_;
822 int started_times_; 811 int started_times_;
823 int num_commit_complete_; 812 int num_commit_complete_;
824 }; 813 };
825 814
826 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostAnimationTestPinchZoomScrollbars); 815 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostAnimationTestPinchZoomScrollbars);
827 816
828 } // namespace 817 } // namespace
829 } // namespace cc 818 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698