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/trees/layer_tree_host.h" | 5 #include "cc/trees/layer_tree_host.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 | 8 |
9 #include "base/memory/ptr_util.h" | 9 #include "base/memory/ptr_util.h" |
10 #include "cc/layers/empty_content_layer_client.h" | 10 #include "cc/layers/empty_content_layer_client.h" |
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
174 EXPECT_EQ(proto::LayerNode::HEADS_UP_DISPLAY_LAYER, | 174 EXPECT_EQ(proto::LayerNode::HEADS_UP_DISPLAY_LAYER, |
175 proto.root_layer().children(i).type()); | 175 proto.root_layer().children(i).type()); |
176 found_hud_layer_type = true; | 176 found_hud_layer_type = true; |
177 break; | 177 break; |
178 } | 178 } |
179 } | 179 } |
180 EXPECT_TRUE(found_hud_layer_type); | 180 EXPECT_TRUE(found_hud_layer_type); |
181 } else { | 181 } else { |
182 EXPECT_FALSE(layer_tree_host_dst_->hud_layer_); | 182 EXPECT_FALSE(layer_tree_host_dst_->hud_layer_); |
183 } | 183 } |
184 if (layer_tree_host_src_->overscroll_elasticity_layer_) { | 184 if (layer_tree_src->overscroll_elasticity_layer()) { |
185 EXPECT_EQ(layer_tree_host_src_->overscroll_elasticity_layer_->id(), | 185 EXPECT_EQ(layer_tree_src->overscroll_elasticity_layer()->id(), |
186 layer_tree_host_dst_->overscroll_elasticity_layer_->id()); | 186 layer_tree_dst->overscroll_elasticity_layer()->id()); |
187 } else { | 187 } else { |
188 EXPECT_FALSE(layer_tree_host_dst_->overscroll_elasticity_layer_); | 188 EXPECT_FALSE(layer_tree_dst->overscroll_elasticity_layer()); |
189 } | 189 } |
190 if (layer_tree_host_src_->page_scale_layer_) { | 190 if (layer_tree_src->page_scale_layer()) { |
191 EXPECT_EQ(layer_tree_host_src_->page_scale_layer_->id(), | 191 EXPECT_EQ(layer_tree_src->page_scale_layer()->id(), |
192 layer_tree_host_dst_->page_scale_layer_->id()); | 192 layer_tree_dst->page_scale_layer()->id()); |
193 } else { | 193 } else { |
194 EXPECT_FALSE(layer_tree_host_dst_->page_scale_layer_); | 194 EXPECT_FALSE(layer_tree_dst->page_scale_layer()); |
195 } | 195 } |
196 if (layer_tree_host_src_->inner_viewport_scroll_layer_) { | 196 if (layer_tree_src->inner_viewport_scroll_layer()) { |
197 EXPECT_EQ(layer_tree_host_src_->inner_viewport_scroll_layer_->id(), | 197 EXPECT_EQ(layer_tree_src->inner_viewport_scroll_layer()->id(), |
198 layer_tree_host_dst_->inner_viewport_scroll_layer_->id()); | 198 layer_tree_dst->inner_viewport_scroll_layer()->id()); |
199 } else { | 199 } else { |
200 EXPECT_FALSE(layer_tree_host_dst_->inner_viewport_scroll_layer_); | 200 EXPECT_FALSE(layer_tree_dst->inner_viewport_scroll_layer()); |
201 } | 201 } |
202 if (layer_tree_host_src_->outer_viewport_scroll_layer_) { | 202 if (layer_tree_src->outer_viewport_scroll_layer()) { |
203 EXPECT_EQ(layer_tree_host_src_->outer_viewport_scroll_layer_->id(), | 203 EXPECT_EQ(layer_tree_src->outer_viewport_scroll_layer()->id(), |
204 layer_tree_host_dst_->outer_viewport_scroll_layer_->id()); | 204 layer_tree_dst->outer_viewport_scroll_layer()->id()); |
205 } else { | 205 } else { |
206 EXPECT_FALSE(layer_tree_host_dst_->outer_viewport_scroll_layer_); | 206 EXPECT_FALSE(layer_tree_dst->outer_viewport_scroll_layer()); |
207 } | 207 } |
208 EXPECT_EQ(layer_tree_host_src_->selection_, | 208 EXPECT_EQ(layer_tree_host_src_->selection_, |
209 layer_tree_host_dst_->selection_); | 209 layer_tree_host_dst_->selection_); |
210 EXPECT_EQ(layer_tree_host_src_->property_trees_, | 210 EXPECT_EQ(layer_tree_host_src_->property_trees_, |
211 layer_tree_host_dst_->property_trees_); | 211 layer_tree_host_dst_->property_trees_); |
212 EXPECT_EQ(layer_tree_host_src_->surface_client_id_, | 212 EXPECT_EQ(layer_tree_host_src_->surface_client_id_, |
213 layer_tree_host_dst_->surface_client_id_); | 213 layer_tree_host_dst_->surface_client_id_); |
214 EXPECT_EQ(layer_tree_host_src_->next_surface_sequence_, | 214 EXPECT_EQ(layer_tree_host_src_->next_surface_sequence_, |
215 layer_tree_host_dst_->next_surface_sequence_); | 215 layer_tree_host_dst_->next_surface_sequence_); |
216 | 216 |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
263 !layer_tree_host_src_->content_is_suitable_for_gpu_rasterization_; | 263 !layer_tree_host_src_->content_is_suitable_for_gpu_rasterization_; |
264 layer_tree_host_src_->background_color_ = SK_ColorMAGENTA; | 264 layer_tree_host_src_->background_color_ = SK_ColorMAGENTA; |
265 layer_tree_host_src_->has_transparent_background_ = | 265 layer_tree_host_src_->has_transparent_background_ = |
266 !layer_tree_host_src_->has_transparent_background_; | 266 !layer_tree_host_src_->has_transparent_background_; |
267 layer_tree_host_src_->id_ = layer_tree_host_src_->id_ * 3 + 1; | 267 layer_tree_host_src_->id_ = layer_tree_host_src_->id_ * 3 + 1; |
268 layer_tree_host_src_->next_commit_forces_redraw_ = | 268 layer_tree_host_src_->next_commit_forces_redraw_ = |
269 !layer_tree_host_src_->next_commit_forces_redraw_; | 269 !layer_tree_host_src_->next_commit_forces_redraw_; |
270 | 270 |
271 layer_tree_host_src_->hud_layer_ = HeadsUpDisplayLayer::Create(); | 271 layer_tree_host_src_->hud_layer_ = HeadsUpDisplayLayer::Create(); |
272 root_layer_src->AddChild(layer_tree_host_src_->hud_layer_); | 272 root_layer_src->AddChild(layer_tree_host_src_->hud_layer_); |
273 layer_tree_host_src_->overscroll_elasticity_layer_ = Layer::Create(); | 273 |
274 root_layer_src->AddChild( | 274 scoped_refptr<Layer> overscroll_elasticity_layer = Layer::Create(); |
275 layer_tree_host_src_->overscroll_elasticity_layer_); | 275 scoped_refptr<Layer> page_scale_layer = Layer::Create(); |
276 layer_tree_host_src_->page_scale_layer_ = Layer::Create(); | 276 scoped_refptr<Layer> inner_viewport_scroll_layer = Layer::Create(); |
277 root_layer_src->AddChild(layer_tree_host_src_->page_scale_layer_); | 277 scoped_refptr<Layer> outer_viewport_scroll_layer = Layer::Create(); |
278 layer_tree_host_src_->inner_viewport_scroll_layer_ = Layer::Create(); | 278 |
279 root_layer_src->AddChild( | 279 root_layer_src->AddChild(overscroll_elasticity_layer); |
280 layer_tree_host_src_->inner_viewport_scroll_layer_); | 280 root_layer_src->AddChild(page_scale_layer); |
281 layer_tree_host_src_->outer_viewport_scroll_layer_ = Layer::Create(); | 281 root_layer_src->AddChild(inner_viewport_scroll_layer); |
282 root_layer_src->AddChild( | 282 root_layer_src->AddChild(outer_viewport_scroll_layer); |
283 layer_tree_host_src_->outer_viewport_scroll_layer_); | 283 |
| 284 layer_tree_host_src_->GetLayerTree()->RegisterViewportLayers( |
| 285 overscroll_elasticity_layer, page_scale_layer, |
| 286 inner_viewport_scroll_layer, outer_viewport_scroll_layer); |
284 | 287 |
285 // Set in_paint_layer_contents_ only after all calls to AddChild() have | 288 // Set in_paint_layer_contents_ only after all calls to AddChild() have |
286 // finished to ensure it's allowed to do so at that time. | 289 // finished to ensure it's allowed to do so at that time. |
287 LayerTree* layer_tree_src = layer_tree_host_src_->GetLayerTree(); | 290 LayerTree* layer_tree_src = layer_tree_host_src_->GetLayerTree(); |
288 layer_tree_src->in_paint_layer_contents_ = | 291 layer_tree_src->in_paint_layer_contents_ = |
289 !layer_tree_src->in_paint_layer_contents(); | 292 !layer_tree_src->in_paint_layer_contents(); |
290 | 293 |
291 LayerSelectionBound sel_bound; | 294 LayerSelectionBound sel_bound; |
292 sel_bound.edge_top = gfx::Point(14, 3); | 295 sel_bound.edge_top = gfx::Point(14, 3); |
293 LayerSelection selection; | 296 LayerSelection selection; |
(...skipping 13 matching lines...) Expand all Loading... |
307 | 310 |
308 void RunLayersChangedTest() { | 311 void RunLayersChangedTest() { |
309 // Just fake setup a layer for both source and dest. | 312 // Just fake setup a layer for both source and dest. |
310 scoped_refptr<Layer> root_layer_src = Layer::Create(); | 313 scoped_refptr<Layer> root_layer_src = Layer::Create(); |
311 layer_tree_host_src_->SetRootLayer(root_layer_src); | 314 layer_tree_host_src_->SetRootLayer(root_layer_src); |
312 layer_tree_host_dst_->SetRootLayer(Layer::Create()); | 315 layer_tree_host_dst_->SetRootLayer(Layer::Create()); |
313 root_layer_src->SetDoubleSided(!root_layer_src->double_sided()); | 316 root_layer_src->SetDoubleSided(!root_layer_src->double_sided()); |
314 | 317 |
315 // No HUD layer or |overscroll_elasticity_layer_|, or the inner/outer | 318 // No HUD layer or |overscroll_elasticity_layer_|, or the inner/outer |
316 // viewport scroll layers. | 319 // viewport scroll layers. |
317 layer_tree_host_src_->overscroll_elasticity_layer_ = Layer::Create(); | 320 scoped_refptr<Layer> overscroll_elasticity_layer = Layer::Create(); |
318 root_layer_src->AddChild( | 321 layer_tree_host_src_->GetLayerTree()->inputs_.overscroll_elasticity_layer = |
319 layer_tree_host_src_->overscroll_elasticity_layer_); | 322 overscroll_elasticity_layer; |
| 323 root_layer_src->AddChild(overscroll_elasticity_layer); |
320 | 324 |
321 VerifySerializationAndDeserialization(); | 325 VerifySerializationAndDeserialization(); |
322 } | 326 } |
323 | 327 |
324 void RunLayersChangedMultipleSerializations() { | 328 void RunLayersChangedMultipleSerializations() { |
325 // Just fake setup a layer for both source and dest. | 329 // Just fake setup a layer for both source and dest. |
326 scoped_refptr<Layer> root_layer_src = Layer::Create(); | 330 scoped_refptr<Layer> root_layer_src = Layer::Create(); |
327 layer_tree_host_src_->SetRootLayer(root_layer_src); | 331 layer_tree_host_src_->SetRootLayer(root_layer_src); |
328 layer_tree_host_dst_->SetRootLayer(Layer::Create()); | 332 layer_tree_host_dst_->SetRootLayer(Layer::Create()); |
329 root_layer_src->SetDoubleSided(!root_layer_src->double_sided()); | 333 root_layer_src->SetDoubleSided(!root_layer_src->double_sided()); |
330 | 334 |
331 // Ensure that all the layers work correctly for multiple rounds of | 335 // Ensure that all the layers work correctly for multiple rounds of |
332 // serialization and deserialization. | 336 // serialization and deserialization. |
333 layer_tree_host_src_->hud_layer_ = HeadsUpDisplayLayer::Create(); | 337 layer_tree_host_src_->hud_layer_ = HeadsUpDisplayLayer::Create(); |
334 root_layer_src->AddChild(layer_tree_host_src_->hud_layer_); | 338 root_layer_src->AddChild(layer_tree_host_src_->hud_layer_); |
335 layer_tree_host_src_->overscroll_elasticity_layer_ = Layer::Create(); | 339 |
336 root_layer_src->AddChild( | 340 scoped_refptr<Layer> overscroll_elasticity_layer = Layer::Create(); |
337 layer_tree_host_src_->overscroll_elasticity_layer_); | 341 scoped_refptr<Layer> page_scale_layer = Layer::Create(); |
338 layer_tree_host_src_->page_scale_layer_ = Layer::Create(); | 342 scoped_refptr<Layer> inner_viewport_scroll_layer = Layer::Create(); |
339 root_layer_src->AddChild(layer_tree_host_src_->page_scale_layer_); | 343 scoped_refptr<Layer> outer_viewport_scroll_layer = Layer::Create(); |
340 layer_tree_host_src_->inner_viewport_scroll_layer_ = Layer::Create(); | 344 |
341 root_layer_src->AddChild( | 345 root_layer_src->AddChild(overscroll_elasticity_layer); |
342 layer_tree_host_src_->inner_viewport_scroll_layer_); | 346 root_layer_src->AddChild(page_scale_layer); |
343 layer_tree_host_src_->outer_viewport_scroll_layer_ = Layer::Create(); | 347 root_layer_src->AddChild(inner_viewport_scroll_layer); |
344 root_layer_src->AddChild( | 348 root_layer_src->AddChild(outer_viewport_scroll_layer); |
345 layer_tree_host_src_->outer_viewport_scroll_layer_); | 349 layer_tree_host_src_->GetLayerTree()->RegisterViewportLayers( |
| 350 overscroll_elasticity_layer, page_scale_layer, |
| 351 inner_viewport_scroll_layer, outer_viewport_scroll_layer); |
346 | 352 |
347 VerifySerializationAndDeserialization(); | 353 VerifySerializationAndDeserialization(); |
348 VerifySerializationAndDeserialization(); | 354 VerifySerializationAndDeserialization(); |
349 | 355 |
350 layer_tree_host_src_->hud_layer_ = nullptr; | 356 layer_tree_host_src_->hud_layer_ = nullptr; |
351 VerifySerializationAndDeserialization(); | 357 VerifySerializationAndDeserialization(); |
352 layer_tree_host_src_->overscroll_elasticity_layer_ = nullptr; | 358 layer_tree_host_src_->GetLayerTree()->inputs_.overscroll_elasticity_layer = |
| 359 nullptr; |
353 VerifySerializationAndDeserialization(); | 360 VerifySerializationAndDeserialization(); |
354 layer_tree_host_src_->page_scale_layer_ = nullptr; | 361 layer_tree_host_src_->GetLayerTree()->inputs_.page_scale_layer = nullptr; |
355 VerifySerializationAndDeserialization(); | 362 VerifySerializationAndDeserialization(); |
356 layer_tree_host_src_->inner_viewport_scroll_layer_ = nullptr; | 363 layer_tree_host_src_->GetLayerTree()->inputs_.inner_viewport_scroll_layer = |
| 364 nullptr; |
357 VerifySerializationAndDeserialization(); | 365 VerifySerializationAndDeserialization(); |
358 layer_tree_host_src_->outer_viewport_scroll_layer_ = nullptr; | 366 layer_tree_host_src_->GetLayerTree()->inputs_.outer_viewport_scroll_layer = |
| 367 nullptr; |
359 VerifySerializationAndDeserialization(); | 368 VerifySerializationAndDeserialization(); |
360 } | 369 } |
361 | 370 |
362 void RunPictureLayerMultipleSerializationsTest() { | 371 void RunPictureLayerMultipleSerializationsTest() { |
363 // Just fake setup a layer for both source and dest. | 372 // Just fake setup a layer for both source and dest. |
364 scoped_refptr<Layer> root_layer_src = Layer::Create(); | 373 scoped_refptr<Layer> root_layer_src = Layer::Create(); |
365 layer_tree_host_src_->SetRootLayer(root_layer_src); | 374 layer_tree_host_src_->SetRootLayer(root_layer_src); |
366 layer_tree_host_dst_->SetRootLayer(Layer::Create()); | 375 layer_tree_host_dst_->SetRootLayer(Layer::Create()); |
367 | 376 |
368 // Ensure that a PictureLayer work correctly for multiple rounds of | 377 // Ensure that a PictureLayer work correctly for multiple rounds of |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
451 | 460 |
452 TEST_F(LayerTreeHostSerializationTest, AddAndRemoveNodeFromLayerTree) { | 461 TEST_F(LayerTreeHostSerializationTest, AddAndRemoveNodeFromLayerTree) { |
453 RunAddAndRemoveNodeFromLayerTree(); | 462 RunAddAndRemoveNodeFromLayerTree(); |
454 } | 463 } |
455 | 464 |
456 TEST_F(LayerTreeHostSerializationTest, PictureLayerMultipleSerializations) { | 465 TEST_F(LayerTreeHostSerializationTest, PictureLayerMultipleSerializations) { |
457 RunPictureLayerMultipleSerializationsTest(); | 466 RunPictureLayerMultipleSerializationsTest(); |
458 } | 467 } |
459 | 468 |
460 } // namespace cc | 469 } // namespace cc |
OLD | NEW |