Index: cc/trees/layer_tree_host_impl_unittest.cc |
diff --git a/cc/trees/layer_tree_host_impl_unittest.cc b/cc/trees/layer_tree_host_impl_unittest.cc |
index 6c46d8f4dba6ea77e7e0ced01c11c8496eae2ffd..7804f2237f2b8ee21da599b9e5f3002832cecff3 100644 |
--- a/cc/trees/layer_tree_host_impl_unittest.cc |
+++ b/cc/trees/layer_tree_host_impl_unittest.cc |
@@ -88,6 +88,7 @@ class LayerTreeHostImplTest : public testing::Test, |
did_request_redraw_(false), |
did_request_animate_(false), |
did_request_prepare_tiles_(false), |
+ did_complete_page_scale_animation_(false), |
reduce_memory_result_(true), |
current_limit_bytes_(0), |
current_priority_cutoff_value_(0) { |
@@ -151,6 +152,9 @@ class LayerTreeHostImplTest : public testing::Test, |
} |
void DidActivateSyncTree() override {} |
void DidPrepareTiles() override {} |
+ void DidCompletePageScaleAnimationOnImplThread() override { |
+ did_complete_page_scale_animation_ = true; |
+ } |
void set_reduce_memory_result(bool reduce_memory_result) { |
reduce_memory_result_ = reduce_memory_result; |
@@ -394,6 +398,7 @@ class LayerTreeHostImplTest : public testing::Test, |
bool did_request_redraw_; |
bool did_request_animate_; |
bool did_request_prepare_tiles_; |
+ bool did_complete_page_scale_animation_; |
bool reduce_memory_result_; |
base::Closure scrollbar_fade_start_; |
base::TimeDelta requested_scrollbar_animation_delay_; |
@@ -1341,6 +1346,38 @@ TEST_F(LayerTreeHostImplTest, PageScaleAnimationTransferedOnSyncTreeActivate) { |
ExpectContains(*scroll_info, scroll_layer->id(), gfx::Vector2d(-50, -50)); |
} |
+TEST_F(LayerTreeHostImplTest, PageScaleAnimationCompletedNotification) { |
+ SetupScrollAndContentsLayers(gfx::Size(100, 100)); |
+ host_impl_->SetViewportSize(gfx::Size(50, 50)); |
+ DrawFrame(); |
+ |
+ LayerImpl* scroll_layer = host_impl_->InnerViewportScrollLayer(); |
+ DCHECK(scroll_layer); |
+ |
+ base::TimeTicks start_time = |
+ base::TimeTicks() + base::TimeDelta::FromSeconds(1); |
+ base::TimeDelta duration = base::TimeDelta::FromMilliseconds(100); |
+ base::TimeTicks halfway_through_animation = start_time + duration / 2; |
+ base::TimeTicks end_time = start_time + duration; |
+ |
+ host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, 0.5f, 4.f); |
+ scroll_layer->SetScrollOffset(gfx::ScrollOffset(50, 50)); |
+ |
+ did_complete_page_scale_animation_ = false; |
+ host_impl_->active_tree()->SetPendingPageScaleAnimation( |
+ scoped_ptr<PendingPageScaleAnimation>(new PendingPageScaleAnimation( |
+ gfx::Vector2d(), false, 2.f, duration))); |
+ host_impl_->ActivateSyncTree(); |
+ host_impl_->Animate(start_time); |
+ EXPECT_FALSE(did_complete_page_scale_animation_); |
+ |
+ host_impl_->Animate(halfway_through_animation); |
+ EXPECT_FALSE(did_complete_page_scale_animation_); |
+ |
+ host_impl_->Animate(end_time); |
+ EXPECT_TRUE(did_complete_page_scale_animation_); |
+} |
+ |
class LayerTreeHostImplOverridePhysicalTime : public LayerTreeHostImpl { |
public: |
LayerTreeHostImplOverridePhysicalTime( |
@@ -4717,49 +4754,6 @@ TEST_F(LayerTreeHostImplViewportCoveredTest, ViewportCoveredScaled) { |
TestLayerIsLargerThanViewport(); |
} |
-TEST_F(LayerTreeHostImplViewportCoveredTest, ViewportCoveredOverhangBitmap) { |
- viewport_size_ = gfx::Size(1000, 1000); |
- |
- bool always_draw = false; |
- CreateHostImpl(DefaultSettings(), CreateFakeOutputSurface(always_draw)); |
- |
- host_impl_->SetViewportSize(DipSizeToPixelSize(viewport_size_)); |
- SetupActiveTreeLayers(); |
- |
- // Specify an overhang bitmap to use. |
- bool is_opaque = false; |
- UIResourceBitmap ui_resource_bitmap(gfx::Size(2, 2), is_opaque); |
- ui_resource_bitmap.SetWrapMode(UIResourceBitmap::REPEAT); |
- UIResourceId ui_resource_id = 12345; |
- host_impl_->CreateUIResource(ui_resource_id, ui_resource_bitmap); |
- host_impl_->SetOverhangUIResource(ui_resource_id, gfx::Size(32, 32)); |
- set_gutter_quad_material(DrawQuad::TEXTURE_CONTENT); |
- set_gutter_texture_size(gfx::Size(32, 32)); |
- |
- TestLayerCoversFullViewport(); |
- TestEmptyLayer(); |
- TestLayerInMiddleOfViewport(); |
- TestLayerIsLargerThanViewport(); |
- |
- // Change the resource size. |
- host_impl_->SetOverhangUIResource(ui_resource_id, gfx::Size(128, 16)); |
- set_gutter_texture_size(gfx::Size(128, 16)); |
- |
- TestLayerCoversFullViewport(); |
- TestEmptyLayer(); |
- TestLayerInMiddleOfViewport(); |
- TestLayerIsLargerThanViewport(); |
- |
- // Change the device scale factor |
- host_impl_->SetDeviceScaleFactor(2.f); |
- host_impl_->SetViewportSize(DipSizeToPixelSize(viewport_size_)); |
- |
- TestLayerCoversFullViewport(); |
- TestEmptyLayer(); |
- TestLayerInMiddleOfViewport(); |
- TestLayerIsLargerThanViewport(); |
-} |
- |
TEST_F(LayerTreeHostImplViewportCoveredTest, ActiveTreeGrowViewportInvalid) { |
viewport_size_ = gfx::Size(1000, 1000); |