| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/test/animation_timelines_test_common.h" | 5 #include "cc/test/animation_timelines_test_common.h" |
| 6 | 6 |
| 7 #include "base/memory/ptr_util.h" | 7 #include "base/memory/ptr_util.h" |
| 8 #include "cc/animation/animation_events.h" | 8 #include "cc/animation/animation_events.h" |
| 9 #include "cc/animation/animation_id_provider.h" | 9 #include "cc/animation/animation_id_provider.h" |
| 10 #include "cc/animation/animation_player.h" | 10 #include "cc/animation/animation_player.h" |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 67 host_->SetMutatorHostClient(nullptr); | 67 host_->SetMutatorHostClient(nullptr); |
| 68 } | 68 } |
| 69 | 69 |
| 70 void TestHostClient::ClearMutatedProperties() { | 70 void TestHostClient::ClearMutatedProperties() { |
| 71 for (auto& kv : layers_in_pending_tree_) | 71 for (auto& kv : layers_in_pending_tree_) |
| 72 kv.second->ClearMutatedProperties(); | 72 kv.second->ClearMutatedProperties(); |
| 73 for (auto& kv : layers_in_active_tree_) | 73 for (auto& kv : layers_in_active_tree_) |
| 74 kv.second->ClearMutatedProperties(); | 74 kv.second->ClearMutatedProperties(); |
| 75 } | 75 } |
| 76 | 76 |
| 77 bool TestHostClient::IsLayerInTree(int layer_id, | 77 bool TestHostClient::IsElementInList(ElementId element_id, |
| 78 LayerTreeType tree_type) const { | 78 ElementListType list_type) const { |
| 79 return tree_type == LayerTreeType::ACTIVE | 79 return list_type == ElementListType::ACTIVE |
| 80 ? layers_in_active_tree_.count(layer_id) | 80 ? layers_in_active_tree_.count(element_id) |
| 81 : layers_in_pending_tree_.count(layer_id); | 81 : layers_in_pending_tree_.count(element_id); |
| 82 } | 82 } |
| 83 | 83 |
| 84 void TestHostClient::SetMutatorsNeedCommit() { | 84 void TestHostClient::SetMutatorsNeedCommit() { |
| 85 mutators_need_commit_ = true; | 85 mutators_need_commit_ = true; |
| 86 } | 86 } |
| 87 | 87 |
| 88 void TestHostClient::SetMutatorsNeedRebuildPropertyTrees() {} | 88 void TestHostClient::SetMutatorsNeedRebuildPropertyTrees() {} |
| 89 | 89 |
| 90 void TestHostClient::SetLayerFilterMutated(int layer_id, | 90 void TestHostClient::SetElementFilterMutated(ElementId element_id, |
| 91 LayerTreeType tree_type, | 91 ElementListType list_type, |
| 92 const FilterOperations& filters) { | 92 const FilterOperations& filters) { |
| 93 TestLayer* layer = FindTestLayer(layer_id, tree_type); | 93 TestLayer* layer = FindTestLayer(element_id, list_type); |
| 94 if (layer) | 94 if (layer) |
| 95 layer->set_filters(filters); | 95 layer->set_filters(filters); |
| 96 } | 96 } |
| 97 | 97 |
| 98 void TestHostClient::SetLayerOpacityMutated(int layer_id, | 98 void TestHostClient::SetElementOpacityMutated(ElementId element_id, |
| 99 LayerTreeType tree_type, | 99 ElementListType list_type, |
| 100 float opacity) { | 100 float opacity) { |
| 101 TestLayer* layer = FindTestLayer(layer_id, tree_type); | 101 TestLayer* layer = FindTestLayer(element_id, list_type); |
| 102 if (layer) | 102 if (layer) |
| 103 layer->set_opacity(opacity); | 103 layer->set_opacity(opacity); |
| 104 } | 104 } |
| 105 | 105 |
| 106 void TestHostClient::SetLayerTransformMutated(int layer_id, | 106 void TestHostClient::SetElementTransformMutated( |
| 107 LayerTreeType tree_type, | 107 ElementId element_id, |
| 108 const gfx::Transform& transform) { | 108 ElementListType list_type, |
| 109 TestLayer* layer = FindTestLayer(layer_id, tree_type); | 109 const gfx::Transform& transform) { |
| 110 TestLayer* layer = FindTestLayer(element_id, list_type); |
| 110 if (layer) | 111 if (layer) |
| 111 layer->set_transform(transform); | 112 layer->set_transform(transform); |
| 112 } | 113 } |
| 113 | 114 |
| 114 void TestHostClient::SetLayerScrollOffsetMutated( | 115 void TestHostClient::SetElementScrollOffsetMutated( |
| 115 int layer_id, | 116 ElementId element_id, |
| 116 LayerTreeType tree_type, | 117 ElementListType list_type, |
| 117 const gfx::ScrollOffset& scroll_offset) { | 118 const gfx::ScrollOffset& scroll_offset) { |
| 118 TestLayer* layer = FindTestLayer(layer_id, tree_type); | 119 TestLayer* layer = FindTestLayer(element_id, list_type); |
| 119 if (layer) | 120 if (layer) |
| 120 layer->set_scroll_offset(scroll_offset); | 121 layer->set_scroll_offset(scroll_offset); |
| 121 } | 122 } |
| 122 | 123 |
| 123 void TestHostClient::LayerTransformIsPotentiallyAnimatingChanged( | 124 void TestHostClient::ElementTransformIsPotentiallyAnimatingChanged( |
| 124 int layer_id, | 125 ElementId element_id, |
| 125 LayerTreeType tree_type, | 126 ElementListType list_type, |
| 126 bool is_animating) { | 127 bool is_animating) { |
| 127 TestLayer* layer = FindTestLayer(layer_id, tree_type); | 128 TestLayer* layer = FindTestLayer(element_id, list_type); |
| 128 if (layer) | 129 if (layer) |
| 129 layer->set_transform_is_animating(is_animating); | 130 layer->set_transform_is_animating(is_animating); |
| 130 } | 131 } |
| 131 | 132 |
| 132 void TestHostClient::SetScrollOffsetForAnimation( | 133 void TestHostClient::SetScrollOffsetForAnimation( |
| 133 const gfx::ScrollOffset& scroll_offset) { | 134 const gfx::ScrollOffset& scroll_offset) { |
| 134 scroll_offset_ = scroll_offset; | 135 scroll_offset_ = scroll_offset; |
| 135 } | 136 } |
| 136 | 137 |
| 137 gfx::ScrollOffset TestHostClient::GetScrollOffsetForAnimation( | 138 gfx::ScrollOffset TestHostClient::GetScrollOffsetForAnimation( |
| 138 int layer_id) const { | 139 ElementId element_id) const { |
| 139 return scroll_offset_; | 140 return scroll_offset_; |
| 140 } | 141 } |
| 141 | 142 |
| 142 void TestHostClient::RegisterLayer(int layer_id, LayerTreeType tree_type) { | 143 void TestHostClient::RegisterElement(ElementId element_id, |
| 143 LayerIdToTestLayer& layers_in_tree = tree_type == LayerTreeType::ACTIVE | 144 ElementListType list_type) { |
| 145 LayerIdToTestLayer& layers_in_tree = list_type == ElementListType::ACTIVE |
| 144 ? layers_in_active_tree_ | 146 ? layers_in_active_tree_ |
| 145 : layers_in_pending_tree_; | 147 : layers_in_pending_tree_; |
| 146 DCHECK(layers_in_tree.find(layer_id) == layers_in_tree.end()); | 148 DCHECK(layers_in_tree.find(element_id) == layers_in_tree.end()); |
| 147 layers_in_tree[layer_id] = TestLayer::Create(); | 149 layers_in_tree[element_id] = TestLayer::Create(); |
| 148 | 150 |
| 149 DCHECK(host_); | 151 DCHECK(host_); |
| 150 host_->RegisterLayer(layer_id, tree_type); | 152 host_->RegisterElement(element_id, list_type); |
| 151 } | 153 } |
| 152 | 154 |
| 153 void TestHostClient::UnregisterLayer(int layer_id, LayerTreeType tree_type) { | 155 void TestHostClient::UnregisterElement(ElementId element_id, |
| 156 ElementListType list_type) { |
| 154 DCHECK(host_); | 157 DCHECK(host_); |
| 155 host_->UnregisterLayer(layer_id, tree_type); | 158 host_->UnregisterElement(element_id, list_type); |
| 156 | 159 |
| 157 LayerIdToTestLayer& layers_in_tree = tree_type == LayerTreeType::ACTIVE | 160 LayerIdToTestLayer& layers_in_tree = list_type == ElementListType::ACTIVE |
| 158 ? layers_in_active_tree_ | 161 ? layers_in_active_tree_ |
| 159 : layers_in_pending_tree_; | 162 : layers_in_pending_tree_; |
| 160 auto kv = layers_in_tree.find(layer_id); | 163 auto kv = layers_in_tree.find(element_id); |
| 161 DCHECK(kv != layers_in_tree.end()); | 164 DCHECK(kv != layers_in_tree.end()); |
| 162 layers_in_tree.erase(kv); | 165 layers_in_tree.erase(kv); |
| 163 } | 166 } |
| 164 | 167 |
| 165 bool TestHostClient::IsPropertyMutated(int layer_id, | 168 bool TestHostClient::IsPropertyMutated(ElementId element_id, |
| 166 LayerTreeType tree_type, | 169 ElementListType list_type, |
| 167 TargetProperty::Type property) const { | 170 TargetProperty::Type property) const { |
| 168 TestLayer* layer = FindTestLayer(layer_id, tree_type); | 171 TestLayer* layer = FindTestLayer(element_id, list_type); |
| 169 EXPECT_TRUE(layer); | 172 EXPECT_TRUE(layer); |
| 170 return layer->is_property_mutated(property); | 173 return layer->is_property_mutated(property); |
| 171 } | 174 } |
| 172 | 175 |
| 173 FilterOperations TestHostClient::GetFilters(int layer_id, | 176 FilterOperations TestHostClient::GetFilters(ElementId element_id, |
| 174 LayerTreeType tree_type) const { | 177 ElementListType list_type) const { |
| 175 TestLayer* layer = FindTestLayer(layer_id, tree_type); | 178 TestLayer* layer = FindTestLayer(element_id, list_type); |
| 176 EXPECT_TRUE(layer); | 179 EXPECT_TRUE(layer); |
| 177 return layer->filters(); | 180 return layer->filters(); |
| 178 } | 181 } |
| 179 | 182 |
| 180 float TestHostClient::GetOpacity(int layer_id, LayerTreeType tree_type) const { | 183 float TestHostClient::GetOpacity(ElementId element_id, |
| 181 TestLayer* layer = FindTestLayer(layer_id, tree_type); | 184 ElementListType list_type) const { |
| 185 TestLayer* layer = FindTestLayer(element_id, list_type); |
| 182 EXPECT_TRUE(layer); | 186 EXPECT_TRUE(layer); |
| 183 return layer->opacity(); | 187 return layer->opacity(); |
| 184 } | 188 } |
| 185 | 189 |
| 186 gfx::Transform TestHostClient::GetTransform(int layer_id, | 190 gfx::Transform TestHostClient::GetTransform(ElementId element_id, |
| 187 LayerTreeType tree_type) const { | 191 ElementListType list_type) const { |
| 188 TestLayer* layer = FindTestLayer(layer_id, tree_type); | 192 TestLayer* layer = FindTestLayer(element_id, list_type); |
| 189 EXPECT_TRUE(layer); | 193 EXPECT_TRUE(layer); |
| 190 return layer->transform(); | 194 return layer->transform(); |
| 191 } | 195 } |
| 192 | 196 |
| 193 gfx::ScrollOffset TestHostClient::GetScrollOffset( | 197 gfx::ScrollOffset TestHostClient::GetScrollOffset( |
| 194 int layer_id, | 198 ElementId element_id, |
| 195 LayerTreeType tree_type) const { | 199 ElementListType list_type) const { |
| 196 TestLayer* layer = FindTestLayer(layer_id, tree_type); | 200 TestLayer* layer = FindTestLayer(element_id, list_type); |
| 197 EXPECT_TRUE(layer); | 201 EXPECT_TRUE(layer); |
| 198 return layer->scroll_offset(); | 202 return layer->scroll_offset(); |
| 199 } | 203 } |
| 200 | 204 |
| 201 bool TestHostClient::GetTransformIsAnimating(int layer_id, | 205 bool TestHostClient::GetTransformIsAnimating(ElementId element_id, |
| 202 LayerTreeType tree_type) const { | 206 ElementListType list_type) const { |
| 203 TestLayer* layer = FindTestLayer(layer_id, tree_type); | 207 TestLayer* layer = FindTestLayer(element_id, list_type); |
| 204 EXPECT_TRUE(layer); | 208 EXPECT_TRUE(layer); |
| 205 return layer->transform_is_animating(); | 209 return layer->transform_is_animating(); |
| 206 } | 210 } |
| 207 | 211 |
| 208 void TestHostClient::ExpectFilterPropertyMutated(int layer_id, | 212 void TestHostClient::ExpectFilterPropertyMutated(ElementId element_id, |
| 209 LayerTreeType tree_type, | 213 ElementListType list_type, |
| 210 float brightness) const { | 214 float brightness) const { |
| 211 TestLayer* layer = FindTestLayer(layer_id, tree_type); | 215 TestLayer* layer = FindTestLayer(element_id, list_type); |
| 212 EXPECT_TRUE(layer); | 216 EXPECT_TRUE(layer); |
| 213 EXPECT_TRUE(layer->is_property_mutated(TargetProperty::FILTER)); | 217 EXPECT_TRUE(layer->is_property_mutated(TargetProperty::FILTER)); |
| 214 EXPECT_EQ(brightness, layer->brightness()); | 218 EXPECT_EQ(brightness, layer->brightness()); |
| 215 } | 219 } |
| 216 | 220 |
| 217 void TestHostClient::ExpectOpacityPropertyMutated(int layer_id, | 221 void TestHostClient::ExpectOpacityPropertyMutated(ElementId element_id, |
| 218 LayerTreeType tree_type, | 222 ElementListType list_type, |
| 219 float opacity) const { | 223 float opacity) const { |
| 220 TestLayer* layer = FindTestLayer(layer_id, tree_type); | 224 TestLayer* layer = FindTestLayer(element_id, list_type); |
| 221 EXPECT_TRUE(layer); | 225 EXPECT_TRUE(layer); |
| 222 EXPECT_TRUE(layer->is_property_mutated(TargetProperty::OPACITY)); | 226 EXPECT_TRUE(layer->is_property_mutated(TargetProperty::OPACITY)); |
| 223 EXPECT_EQ(opacity, layer->opacity()); | 227 EXPECT_EQ(opacity, layer->opacity()); |
| 224 } | 228 } |
| 225 | 229 |
| 226 void TestHostClient::ExpectTransformPropertyMutated(int layer_id, | 230 void TestHostClient::ExpectTransformPropertyMutated(ElementId element_id, |
| 227 LayerTreeType tree_type, | 231 ElementListType list_type, |
| 228 int transform_x, | 232 int transform_x, |
| 229 int transform_y) const { | 233 int transform_y) const { |
| 230 TestLayer* layer = FindTestLayer(layer_id, tree_type); | 234 TestLayer* layer = FindTestLayer(element_id, list_type); |
| 231 EXPECT_TRUE(layer); | 235 EXPECT_TRUE(layer); |
| 232 EXPECT_TRUE(layer->is_property_mutated(TargetProperty::TRANSFORM)); | 236 EXPECT_TRUE(layer->is_property_mutated(TargetProperty::TRANSFORM)); |
| 233 EXPECT_EQ(transform_x, layer->transform_x()); | 237 EXPECT_EQ(transform_x, layer->transform_x()); |
| 234 EXPECT_EQ(transform_y, layer->transform_y()); | 238 EXPECT_EQ(transform_y, layer->transform_y()); |
| 235 } | 239 } |
| 236 | 240 |
| 237 TestLayer* TestHostClient::FindTestLayer(int layer_id, | 241 TestLayer* TestHostClient::FindTestLayer(ElementId element_id, |
| 238 LayerTreeType tree_type) const { | 242 ElementListType list_type) const { |
| 239 const LayerIdToTestLayer& layers_in_tree = tree_type == LayerTreeType::ACTIVE | 243 const LayerIdToTestLayer& layers_in_tree = |
| 240 ? layers_in_active_tree_ | 244 list_type == ElementListType::ACTIVE ? layers_in_active_tree_ |
| 241 : layers_in_pending_tree_; | 245 : layers_in_pending_tree_; |
| 242 auto kv = layers_in_tree.find(layer_id); | 246 auto kv = layers_in_tree.find(element_id); |
| 243 if (kv == layers_in_tree.end()) | 247 if (kv == layers_in_tree.end()) |
| 244 return nullptr; | 248 return nullptr; |
| 245 | 249 |
| 246 DCHECK(kv->second); | 250 DCHECK(kv->second); |
| 247 return kv->second.get(); | 251 return kv->second.get(); |
| 248 } | 252 } |
| 249 | 253 |
| 250 TestAnimationDelegate::TestAnimationDelegate() | 254 TestAnimationDelegate::TestAnimationDelegate() |
| 251 : started_(false), | 255 : started_(false), |
| 252 finished_(false), | 256 finished_(false), |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 310 host_impl_->ClearTimelines(); | 314 host_impl_->ClearTimelines(); |
| 311 host_->ClearTimelines(); | 315 host_->ClearTimelines(); |
| 312 } | 316 } |
| 313 | 317 |
| 314 void AnimationTimelinesTest::CreateTestLayer( | 318 void AnimationTimelinesTest::CreateTestLayer( |
| 315 bool needs_active_value_observations, | 319 bool needs_active_value_observations, |
| 316 bool needs_pending_value_observations) { | 320 bool needs_pending_value_observations) { |
| 317 CreateTestMainLayer(); | 321 CreateTestMainLayer(); |
| 318 | 322 |
| 319 if (needs_pending_value_observations) | 323 if (needs_pending_value_observations) |
| 320 CreateTestImplLayer(LayerTreeType::PENDING); | 324 CreateTestImplLayer(ElementListType::PENDING); |
| 321 if (needs_active_value_observations) | 325 if (needs_active_value_observations) |
| 322 CreateTestImplLayer(LayerTreeType::ACTIVE); | 326 CreateTestImplLayer(ElementListType::ACTIVE); |
| 323 } | 327 } |
| 324 | 328 |
| 325 void AnimationTimelinesTest::CreateTestMainLayer() { | 329 void AnimationTimelinesTest::CreateTestMainLayer() { |
| 326 client_.RegisterLayer(element_id_, LayerTreeType::ACTIVE); | 330 client_.RegisterElement(element_id_, ElementListType::ACTIVE); |
| 327 } | 331 } |
| 328 | 332 |
| 329 void AnimationTimelinesTest::CreateTestImplLayer( | 333 void AnimationTimelinesTest::CreateTestImplLayer( |
| 330 LayerTreeType layer_tree_type) { | 334 ElementListType layer_tree_type) { |
| 331 client_impl_.RegisterLayer(element_id_, layer_tree_type); | 335 client_impl_.RegisterElement(element_id_, layer_tree_type); |
| 332 } | 336 } |
| 333 | 337 |
| 334 void AnimationTimelinesTest::AttachTimelinePlayerLayer() { | 338 void AnimationTimelinesTest::AttachTimelinePlayerLayer() { |
| 335 host_->AddAnimationTimeline(timeline_); | 339 host_->AddAnimationTimeline(timeline_); |
| 336 timeline_->AttachPlayer(player_); | 340 timeline_->AttachPlayer(player_); |
| 337 player_->AttachLayer(element_id_); | 341 player_->AttachLayer(element_id_); |
| 338 } | 342 } |
| 339 | 343 |
| 340 void AnimationTimelinesTest::CreateImplTimelineAndPlayer() { | 344 void AnimationTimelinesTest::CreateImplTimelineAndPlayer() { |
| 341 host_->PushPropertiesTo(host_impl_); | 345 host_->PushPropertiesTo(host_impl_); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 377 | 381 |
| 378 host_impl_->AnimateLayers(time); | 382 host_impl_->AnimateLayers(time); |
| 379 host_impl_->UpdateAnimationState(true, events.get()); | 383 host_impl_->UpdateAnimationState(true, events.get()); |
| 380 EXPECT_EQ(expect_events, events->events_.size()); | 384 EXPECT_EQ(expect_events, events->events_.size()); |
| 381 | 385 |
| 382 host_->AnimateLayers(time); | 386 host_->AnimateLayers(time); |
| 383 host_->UpdateAnimationState(true, nullptr); | 387 host_->UpdateAnimationState(true, nullptr); |
| 384 host_->SetAnimationEvents(std::move(events)); | 388 host_->SetAnimationEvents(std::move(events)); |
| 385 } | 389 } |
| 386 | 390 |
| 387 AnimationPlayer* AnimationTimelinesTest::GetPlayerForLayerId(int layer_id) { | 391 AnimationPlayer* AnimationTimelinesTest::GetPlayerForLayerId( |
| 392 ElementId element_id) { |
| 388 const scoped_refptr<ElementAnimations> element_animations = | 393 const scoped_refptr<ElementAnimations> element_animations = |
| 389 host_->GetElementAnimationsForLayerId(layer_id); | 394 host_->GetElementAnimationsForElementId(element_id); |
| 390 return element_animations ? element_animations->players_list().head()->value() | 395 return element_animations ? element_animations->players_list().head()->value() |
| 391 : nullptr; | 396 : nullptr; |
| 392 } | 397 } |
| 393 | 398 |
| 394 AnimationPlayer* AnimationTimelinesTest::GetImplPlayerForLayerId(int layer_id) { | 399 AnimationPlayer* AnimationTimelinesTest::GetImplPlayerForLayerId( |
| 400 ElementId element_id) { |
| 395 const scoped_refptr<ElementAnimations> element_animations = | 401 const scoped_refptr<ElementAnimations> element_animations = |
| 396 host_impl_->GetElementAnimationsForLayerId(layer_id); | 402 host_impl_->GetElementAnimationsForElementId(element_id); |
| 397 return element_animations ? element_animations->players_list().head()->value() | 403 return element_animations ? element_animations->players_list().head()->value() |
| 398 : nullptr; | 404 : nullptr; |
| 399 } | 405 } |
| 400 | 406 |
| 401 int AnimationTimelinesTest::NextTestLayerId() { | 407 int AnimationTimelinesTest::NextTestLayerId() { |
| 402 next_test_layer_id_++; | 408 next_test_layer_id_++; |
| 403 return next_test_layer_id_; | 409 return next_test_layer_id_; |
| 404 } | 410 } |
| 405 | 411 |
| 406 } // namespace cc | 412 } // namespace cc |
| OLD | NEW |