| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/input/scrollbar_animation_controller.h" | 5 #include "cc/input/scrollbar_animation_controller.h" |
| 6 | 6 |
| 7 #include "cc/layers/solid_color_scrollbar_layer_impl.h" | 7 #include "cc/layers/solid_color_scrollbar_layer_impl.h" |
| 8 #include "cc/test/fake_impl_task_runner_provider.h" | 8 #include "cc/test/fake_impl_task_runner_provider.h" |
| 9 #include "cc/test/fake_layer_tree_host_impl.h" | 9 #include "cc/test/fake_layer_tree_host_impl.h" |
| 10 #include "cc/test/geometry_test_utils.h" | 10 #include "cc/test/geometry_test_utils.h" |
| (...skipping 26 matching lines...) Expand all Loading... |
| 37 : host_impl_(host_impl) {} | 37 : host_impl_(host_impl) {} |
| 38 virtual ~MockScrollbarAnimationControllerClient() {} | 38 virtual ~MockScrollbarAnimationControllerClient() {} |
| 39 | 39 |
| 40 void PostDelayedScrollbarAnimationTask(const base::Closure& start_fade, | 40 void PostDelayedScrollbarAnimationTask(const base::Closure& start_fade, |
| 41 base::TimeDelta delay) override { | 41 base::TimeDelta delay) override { |
| 42 start_fade_ = start_fade; | 42 start_fade_ = start_fade; |
| 43 delay_ = delay; | 43 delay_ = delay; |
| 44 } | 44 } |
| 45 void SetNeedsRedrawForScrollbarAnimation() override {} | 45 void SetNeedsRedrawForScrollbarAnimation() override {} |
| 46 void SetNeedsAnimateForScrollbarAnimation() override {} | 46 void SetNeedsAnimateForScrollbarAnimation() override {} |
| 47 ScrollbarSet ScrollbarsFor(int scroll_layer_id) const override { | 47 ScrollbarSet ScrollbarsFor(ElementId scroll_element_id) const override { |
| 48 return host_impl_->ScrollbarsFor(scroll_layer_id); | 48 return host_impl_->ScrollbarsFor(scroll_element_id); |
| 49 } | 49 } |
| 50 MOCK_METHOD0(DidChangeScrollbarVisibility, void()); | 50 MOCK_METHOD0(DidChangeScrollbarVisibility, void()); |
| 51 | 51 |
| 52 base::Closure& start_fade() { return start_fade_; } | 52 base::Closure& start_fade() { return start_fade_; } |
| 53 base::TimeDelta& delay() { return delay_; } | 53 base::TimeDelta& delay() { return delay_; } |
| 54 | 54 |
| 55 private: | 55 private: |
| 56 base::Closure start_fade_; | 56 base::Closure start_fade_; |
| 57 base::TimeDelta delay_; | 57 base::TimeDelta delay_; |
| 58 LayerTreeHostImpl* host_impl_; | 58 LayerTreeHostImpl* host_impl_; |
| (...skipping 16 matching lines...) Expand all Loading... |
| 75 const base::TimeDelta kResizeFadeOutDelay = base::TimeDelta::FromSeconds(5); | 75 const base::TimeDelta kResizeFadeOutDelay = base::TimeDelta::FromSeconds(5); |
| 76 const base::TimeDelta kFadeOutDuration = base::TimeDelta::FromSeconds(3); | 76 const base::TimeDelta kFadeOutDuration = base::TimeDelta::FromSeconds(3); |
| 77 const base::TimeDelta kThinningDuration = base::TimeDelta::FromSeconds(2); | 77 const base::TimeDelta kThinningDuration = base::TimeDelta::FromSeconds(2); |
| 78 | 78 |
| 79 void SetUp() override { | 79 void SetUp() override { |
| 80 std::unique_ptr<LayerImpl> scroll_layer = | 80 std::unique_ptr<LayerImpl> scroll_layer = |
| 81 LayerImpl::Create(host_impl_.active_tree(), 1); | 81 LayerImpl::Create(host_impl_.active_tree(), 1); |
| 82 std::unique_ptr<LayerImpl> clip = | 82 std::unique_ptr<LayerImpl> clip = |
| 83 LayerImpl::Create(host_impl_.active_tree(), 2); | 83 LayerImpl::Create(host_impl_.active_tree(), 2); |
| 84 clip_layer_ = clip.get(); | 84 clip_layer_ = clip.get(); |
| 85 scroll_layer->SetElementId( |
| 86 LayerIdToElementIdForTesting(scroll_layer->id())); |
| 85 scroll_layer->SetScrollClipLayer(clip_layer_->id()); | 87 scroll_layer->SetScrollClipLayer(clip_layer_->id()); |
| 86 LayerImpl* scroll_layer_ptr = scroll_layer.get(); | 88 LayerImpl* scroll_layer_ptr = scroll_layer.get(); |
| 87 | 89 |
| 88 const int kTrackStart = 0; | 90 const int kTrackStart = 0; |
| 89 const bool kIsLeftSideVerticalScrollbar = false; | 91 const bool kIsLeftSideVerticalScrollbar = false; |
| 90 const bool kIsOverlayScrollbar = true; | 92 const bool kIsOverlayScrollbar = true; |
| 91 | 93 |
| 92 std::unique_ptr<SolidColorScrollbarLayerImpl> h_scrollbar = | 94 std::unique_ptr<SolidColorScrollbarLayerImpl> h_scrollbar = |
| 93 SolidColorScrollbarLayerImpl::Create( | 95 SolidColorScrollbarLayerImpl::Create( |
| 94 host_impl_.active_tree(), 3, HORIZONTAL, kThumbThickness, | 96 host_impl_.active_tree(), 3, HORIZONTAL, kThumbThickness, |
| (...skipping 15 matching lines...) Expand all Loading... |
| 110 h_scrollbar_layer_->SetScrollInfo(scroll_layer_ptr->id(), | 112 h_scrollbar_layer_->SetScrollInfo(scroll_layer_ptr->id(), |
| 111 scroll_layer_ptr->element_id()); | 113 scroll_layer_ptr->element_id()); |
| 112 v_scrollbar_layer_->test_properties()->opacity_can_animate = true; | 114 v_scrollbar_layer_->test_properties()->opacity_can_animate = true; |
| 113 h_scrollbar_layer_->test_properties()->opacity_can_animate = true; | 115 h_scrollbar_layer_->test_properties()->opacity_can_animate = true; |
| 114 clip_layer_->SetBounds(gfx::Size(100, 100)); | 116 clip_layer_->SetBounds(gfx::Size(100, 100)); |
| 115 scroll_layer_ptr->SetBounds(gfx::Size(200, 200)); | 117 scroll_layer_ptr->SetBounds(gfx::Size(200, 200)); |
| 116 host_impl_.active_tree()->BuildLayerListAndPropertyTreesForTesting(); | 118 host_impl_.active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
| 117 | 119 |
| 118 scrollbar_controller_ = ScrollbarAnimationController:: | 120 scrollbar_controller_ = ScrollbarAnimationController:: |
| 119 CreateScrollbarAnimationControllerAuraOverlay( | 121 CreateScrollbarAnimationControllerAuraOverlay( |
| 120 scroll_layer_ptr->id(), &client_, kShowDelay, kFadeOutDelay, | 122 scroll_layer_ptr->element_id(), &client_, kShowDelay, kFadeOutDelay, |
| 121 kResizeFadeOutDelay, kFadeOutDuration, kThinningDuration); | 123 kResizeFadeOutDelay, kFadeOutDuration, kThinningDuration); |
| 122 } | 124 } |
| 123 | 125 |
| 124 FakeImplTaskRunnerProvider task_runner_provider_; | 126 FakeImplTaskRunnerProvider task_runner_provider_; |
| 125 TestTaskGraphRunner task_graph_runner_; | 127 TestTaskGraphRunner task_graph_runner_; |
| 126 FakeLayerTreeHostImpl host_impl_; | 128 FakeLayerTreeHostImpl host_impl_; |
| 127 std::unique_ptr<ScrollbarAnimationController> scrollbar_controller_; | 129 std::unique_ptr<ScrollbarAnimationController> scrollbar_controller_; |
| 128 LayerImpl* clip_layer_; | 130 LayerImpl* clip_layer_; |
| 129 SolidColorScrollbarLayerImpl* v_scrollbar_layer_; | 131 SolidColorScrollbarLayerImpl* v_scrollbar_layer_; |
| 130 SolidColorScrollbarLayerImpl* h_scrollbar_layer_; | 132 SolidColorScrollbarLayerImpl* h_scrollbar_layer_; |
| (...skipping 995 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1126 base::TimeDelta delay) override { | 1128 base::TimeDelta delay) override { |
| 1127 start_fade_ = start_fade; | 1129 start_fade_ = start_fade; |
| 1128 delay_ = delay; | 1130 delay_ = delay; |
| 1129 } | 1131 } |
| 1130 void SetNeedsRedrawForScrollbarAnimation() override { | 1132 void SetNeedsRedrawForScrollbarAnimation() override { |
| 1131 did_request_redraw_ = true; | 1133 did_request_redraw_ = true; |
| 1132 } | 1134 } |
| 1133 void SetNeedsAnimateForScrollbarAnimation() override { | 1135 void SetNeedsAnimateForScrollbarAnimation() override { |
| 1134 did_request_animate_ = true; | 1136 did_request_animate_ = true; |
| 1135 } | 1137 } |
| 1136 ScrollbarSet ScrollbarsFor(int scroll_layer_id) const override { | 1138 ScrollbarSet ScrollbarsFor(ElementId scroll_element_id) const override { |
| 1137 return host_impl_.ScrollbarsFor(scroll_layer_id); | 1139 return host_impl_.ScrollbarsFor(scroll_element_id); |
| 1138 } | 1140 } |
| 1139 void DidChangeScrollbarVisibility() override {} | 1141 void DidChangeScrollbarVisibility() override {} |
| 1140 | 1142 |
| 1141 protected: | 1143 protected: |
| 1142 void SetUp() override { | 1144 void SetUp() override { |
| 1143 const int kTrackStart = 0; | 1145 const int kTrackStart = 0; |
| 1144 const bool kIsLeftSideVerticalScrollbar = false; | 1146 const bool kIsLeftSideVerticalScrollbar = false; |
| 1145 const bool kIsOverlayScrollbar = true; // Allow opacity animations. | 1147 const bool kIsOverlayScrollbar = true; // Allow opacity animations. |
| 1146 | 1148 |
| 1147 std::unique_ptr<LayerImpl> scroll_layer = | 1149 std::unique_ptr<LayerImpl> scroll_layer = |
| 1148 LayerImpl::Create(host_impl_.active_tree(), 1); | 1150 LayerImpl::Create(host_impl_.active_tree(), 1); |
| 1149 std::unique_ptr<SolidColorScrollbarLayerImpl> scrollbar = | 1151 std::unique_ptr<SolidColorScrollbarLayerImpl> scrollbar = |
| 1150 SolidColorScrollbarLayerImpl::Create( | 1152 SolidColorScrollbarLayerImpl::Create( |
| 1151 host_impl_.active_tree(), 2, orientation(), kThumbThickness, | 1153 host_impl_.active_tree(), 2, orientation(), kThumbThickness, |
| 1152 kTrackStart, kIsLeftSideVerticalScrollbar, kIsOverlayScrollbar); | 1154 kTrackStart, kIsLeftSideVerticalScrollbar, kIsOverlayScrollbar); |
| 1153 scrollbar_layer_ = scrollbar.get(); | 1155 scrollbar_layer_ = scrollbar.get(); |
| 1154 scrollbar_layer_->test_properties()->opacity_can_animate = true; | 1156 scrollbar_layer_->test_properties()->opacity_can_animate = true; |
| 1155 std::unique_ptr<LayerImpl> clip = | 1157 std::unique_ptr<LayerImpl> clip = |
| 1156 LayerImpl::Create(host_impl_.active_tree(), 3); | 1158 LayerImpl::Create(host_impl_.active_tree(), 3); |
| 1157 clip_layer_ = clip.get(); | 1159 clip_layer_ = clip.get(); |
| 1160 scroll_layer->SetElementId( |
| 1161 LayerIdToElementIdForTesting(scroll_layer->id())); |
| 1158 scroll_layer->SetScrollClipLayer(clip_layer_->id()); | 1162 scroll_layer->SetScrollClipLayer(clip_layer_->id()); |
| 1159 LayerImpl* scroll_layer_ptr = scroll_layer.get(); | 1163 LayerImpl* scroll_layer_ptr = scroll_layer.get(); |
| 1160 scroll_layer->test_properties()->AddChild(std::move(scrollbar)); | 1164 scroll_layer->test_properties()->AddChild(std::move(scrollbar)); |
| 1161 clip->test_properties()->AddChild(std::move(scroll_layer)); | 1165 clip->test_properties()->AddChild(std::move(scroll_layer)); |
| 1162 host_impl_.active_tree()->SetRootLayerForTesting(std::move(clip)); | 1166 host_impl_.active_tree()->SetRootLayerForTesting(std::move(clip)); |
| 1163 | 1167 |
| 1164 scrollbar_layer_->SetScrollInfo(scroll_layer_ptr->id(), | 1168 scrollbar_layer_->SetScrollInfo(scroll_layer_ptr->id(), |
| 1165 scroll_layer_ptr->element_id()); | 1169 scroll_layer_ptr->element_id()); |
| 1166 clip_layer_->SetBounds(gfx::Size(100, 100)); | 1170 clip_layer_->SetBounds(gfx::Size(100, 100)); |
| 1167 scroll_layer_ptr->SetBounds(gfx::Size(200, 200)); | 1171 scroll_layer_ptr->SetBounds(gfx::Size(200, 200)); |
| 1168 host_impl_.active_tree()->BuildLayerListAndPropertyTreesForTesting(); | 1172 host_impl_.active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
| 1169 | 1173 |
| 1170 scrollbar_controller_ = | 1174 scrollbar_controller_ = |
| 1171 ScrollbarAnimationController::CreateScrollbarAnimationControllerAndroid( | 1175 ScrollbarAnimationController::CreateScrollbarAnimationControllerAndroid( |
| 1172 scroll_layer_ptr->id(), this, base::TimeDelta::FromSeconds(2), | 1176 scroll_layer_ptr->element_id(), this, |
| 1173 base::TimeDelta::FromSeconds(5), base::TimeDelta::FromSeconds(3)); | 1177 base::TimeDelta::FromSeconds(2), base::TimeDelta::FromSeconds(5), |
| 1178 base::TimeDelta::FromSeconds(3)); |
| 1174 } | 1179 } |
| 1175 | 1180 |
| 1176 virtual ScrollbarOrientation orientation() const { return HORIZONTAL; } | 1181 virtual ScrollbarOrientation orientation() const { return HORIZONTAL; } |
| 1177 | 1182 |
| 1178 FakeImplTaskRunnerProvider task_runner_provider_; | 1183 FakeImplTaskRunnerProvider task_runner_provider_; |
| 1179 TestTaskGraphRunner task_graph_runner_; | 1184 TestTaskGraphRunner task_graph_runner_; |
| 1180 FakeLayerTreeHostImpl host_impl_; | 1185 FakeLayerTreeHostImpl host_impl_; |
| 1181 std::unique_ptr<ScrollbarAnimationController> scrollbar_controller_; | 1186 std::unique_ptr<ScrollbarAnimationController> scrollbar_controller_; |
| 1182 LayerImpl* clip_layer_; | 1187 LayerImpl* clip_layer_; |
| 1183 SolidColorScrollbarLayerImpl* scrollbar_layer_; | 1188 SolidColorScrollbarLayerImpl* scrollbar_layer_; |
| (...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1597 EXPECT_FLOAT_EQ(1, scrollbar_layer_->Opacity()); | 1602 EXPECT_FLOAT_EQ(1, scrollbar_layer_->Opacity()); |
| 1598 | 1603 |
| 1599 time += base::TimeDelta::FromSeconds(1); | 1604 time += base::TimeDelta::FromSeconds(1); |
| 1600 scrollbar_controller_->DidScrollEnd(); | 1605 scrollbar_controller_->DidScrollEnd(); |
| 1601 EXPECT_FALSE(did_request_animate_); | 1606 EXPECT_FALSE(did_request_animate_); |
| 1602 EXPECT_FLOAT_EQ(1, scrollbar_layer_->Opacity()); | 1607 EXPECT_FLOAT_EQ(1, scrollbar_layer_->Opacity()); |
| 1603 } | 1608 } |
| 1604 | 1609 |
| 1605 } // namespace | 1610 } // namespace |
| 1606 } // namespace cc | 1611 } // namespace cc |
| OLD | NEW |