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

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

Issue 1009233002: CC Animations: Port Impl-only-scrolling to use compositor animation timelines. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ui
Patch Set: Revert AnimationHost::thread_instance_ deletion back. Created 5 years, 5 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 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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_impl.h" 5 #include "cc/trees/layer_tree_host_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after
425 bool did_request_commit_; 425 bool did_request_commit_;
426 bool did_request_redraw_; 426 bool did_request_redraw_;
427 bool did_request_animate_; 427 bool did_request_animate_;
428 bool did_request_prepare_tiles_; 428 bool did_request_prepare_tiles_;
429 bool did_complete_page_scale_animation_; 429 bool did_complete_page_scale_animation_;
430 bool reduce_memory_result_; 430 bool reduce_memory_result_;
431 base::Closure animation_task_; 431 base::Closure animation_task_;
432 base::TimeDelta requested_animation_delay_; 432 base::TimeDelta requested_animation_delay_;
433 }; 433 };
434 434
435 // A test fixture for new animation timelines tests.
436 class LayerTreeHostImplTimelinesTest : public LayerTreeHostImplTest {
437 public:
438 void SetUp() override {
439 LayerTreeSettings settings = DefaultSettings();
440 settings.use_compositor_animation_timelines = true;
441 CreateHostImpl(settings, CreateOutputSurface());
442 }
443 };
444
435 TEST_F(LayerTreeHostImplTest, NotifyIfCanDrawChanged) { 445 TEST_F(LayerTreeHostImplTest, NotifyIfCanDrawChanged) {
436 bool always_draw = false; 446 bool always_draw = false;
437 CheckNotifyCalledIfCanDrawChanged(always_draw); 447 CheckNotifyCalledIfCanDrawChanged(always_draw);
438 } 448 }
439 449
440 TEST_F(LayerTreeHostImplTest, CanDrawIncompleteFrames) { 450 TEST_F(LayerTreeHostImplTest, CanDrawIncompleteFrames) {
441 CreateHostImpl(DefaultSettings(), 451 CreateHostImpl(DefaultSettings(),
442 FakeOutputSurface::CreateAlwaysDrawAndSwap3d()); 452 FakeOutputSurface::CreateAlwaysDrawAndSwap3d());
443 453
444 bool always_draw = true; 454 bool always_draw = true;
(...skipping 7194 matching lines...) Expand 10 before | Expand all | Expand 10 after
7639 EXPECT_EQ(scrolling_layer, host_impl_->CurrentlyScrollingLayer()); 7649 EXPECT_EQ(scrolling_layer, host_impl_->CurrentlyScrollingLayer());
7640 7650
7641 host_impl_->Animate(start_time + base::TimeDelta::FromMilliseconds(250)); 7651 host_impl_->Animate(start_time + base::TimeDelta::FromMilliseconds(250));
7642 host_impl_->UpdateAnimationState(true); 7652 host_impl_->UpdateAnimationState(true);
7643 7653
7644 EXPECT_VECTOR_EQ(gfx::ScrollOffset(0, 100), 7654 EXPECT_VECTOR_EQ(gfx::ScrollOffset(0, 100),
7645 scrolling_layer->CurrentScrollOffset()); 7655 scrolling_layer->CurrentScrollOffset());
7646 EXPECT_EQ(NULL, host_impl_->CurrentlyScrollingLayer()); 7656 EXPECT_EQ(NULL, host_impl_->CurrentlyScrollingLayer());
7647 } 7657 }
7648 7658
7659 // Evolved from LayerTreeHostImplTest.ScrollAnimated.
7660 TEST_F(LayerTreeHostImplTimelinesTest, ScrollAnimated) {
7661 SetupScrollAndContentsLayers(gfx::Size(100, 200));
7662 DrawFrame();
7663
7664 base::TimeTicks start_time =
7665 base::TimeTicks() + base::TimeDelta::FromMilliseconds(100);
7666
7667 EXPECT_EQ(InputHandler::SCROLL_STARTED,
7668 host_impl_->ScrollAnimated(gfx::Point(), gfx::Vector2d(0, 50)));
7669
7670 LayerImpl* scrolling_layer = host_impl_->CurrentlyScrollingLayer();
7671
7672 host_impl_->Animate(start_time);
7673 host_impl_->UpdateAnimationState(true);
7674
7675 EXPECT_EQ(gfx::ScrollOffset(), scrolling_layer->CurrentScrollOffset());
7676
7677 host_impl_->Animate(start_time + base::TimeDelta::FromMilliseconds(50));
7678 host_impl_->UpdateAnimationState(true);
7679
7680 float y = scrolling_layer->CurrentScrollOffset().y();
7681 EXPECT_TRUE(y > 1 && y < 49);
7682
7683 // Update target.
7684 EXPECT_EQ(InputHandler::SCROLL_STARTED,
7685 host_impl_->ScrollAnimated(gfx::Point(), gfx::Vector2d(0, 50)));
7686
7687 host_impl_->Animate(start_time + base::TimeDelta::FromMilliseconds(200));
7688 host_impl_->UpdateAnimationState(true);
7689
7690 y = scrolling_layer->CurrentScrollOffset().y();
7691 EXPECT_TRUE(y > 50 && y < 100);
7692 EXPECT_EQ(scrolling_layer, host_impl_->CurrentlyScrollingLayer());
7693
7694 host_impl_->Animate(start_time + base::TimeDelta::FromMilliseconds(250));
7695 host_impl_->UpdateAnimationState(true);
7696
7697 EXPECT_VECTOR_EQ(gfx::ScrollOffset(0, 100),
7698 scrolling_layer->CurrentScrollOffset());
7699 EXPECT_EQ(NULL, host_impl_->CurrentlyScrollingLayer());
7700 }
7701
7649 TEST_F(LayerTreeHostImplTest, InvalidLayerNotAddedToRasterQueue) { 7702 TEST_F(LayerTreeHostImplTest, InvalidLayerNotAddedToRasterQueue) {
7650 host_impl_->CreatePendingTree(); 7703 host_impl_->CreatePendingTree();
7651 7704
7652 Region empty_invalidation; 7705 Region empty_invalidation;
7653 scoped_refptr<RasterSource> pile_with_tiles( 7706 scoped_refptr<RasterSource> pile_with_tiles(
7654 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( 7707 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(
7655 gfx::Size(10, 10))); 7708 gfx::Size(10, 10)));
7656 7709
7657 scoped_ptr<FakePictureLayerImpl> layer = 7710 scoped_ptr<FakePictureLayerImpl> layer =
7658 FakePictureLayerImpl::Create(host_impl_->pending_tree(), 11); 7711 FakePictureLayerImpl::Create(host_impl_->pending_tree(), 11);
(...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after
8078 // Hold an unowned pointer to the output surface to use for mock expectations. 8131 // Hold an unowned pointer to the output surface to use for mock expectations.
8079 MockReclaimResourcesOutputSurface* mock_output_surface = output_surface.get(); 8132 MockReclaimResourcesOutputSurface* mock_output_surface = output_surface.get();
8080 8133
8081 CreateHostImpl(DefaultSettings(), output_surface.Pass()); 8134 CreateHostImpl(DefaultSettings(), output_surface.Pass());
8082 EXPECT_CALL(*mock_output_surface, ForceReclaimResources()).Times(1); 8135 EXPECT_CALL(*mock_output_surface, ForceReclaimResources()).Times(1);
8083 host_impl_->BeginCommit(); 8136 host_impl_->BeginCommit();
8084 } 8137 }
8085 8138
8086 } // namespace 8139 } // namespace
8087 } // namespace cc 8140 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698