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/layers/layer_proto_converter.h" | 5 #include "cc/layers/layer_proto_converter.h" |
6 | 6 |
7 #include "cc/layers/empty_content_layer_client.h" | 7 #include "cc/layers/empty_content_layer_client.h" |
8 #include "cc/layers/heads_up_display_layer.h" | 8 #include "cc/layers/heads_up_display_layer.h" |
9 #include "cc/layers/layer.h" | 9 #include "cc/layers/layer.h" |
10 #include "cc/layers/picture_layer.h" | 10 #include "cc/layers/picture_layer.h" |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
193 layer_src_b->AddChild(layer_src_d); | 193 layer_src_b->AddChild(layer_src_d); |
194 layer_src_b->SetMaskLayer(layer_src_b_mask.get()); | 194 layer_src_b->SetMaskLayer(layer_src_b_mask.get()); |
195 layer_src_b->SetReplicaLayer(layer_src_b_replica.get()); | 195 layer_src_b->SetReplicaLayer(layer_src_b_replica.get()); |
196 | 196 |
197 proto::LayerUpdate layer_update; | 197 proto::LayerUpdate layer_update; |
198 LayerProtoConverter::SerializeLayerProperties( | 198 LayerProtoConverter::SerializeLayerProperties( |
199 layer_src_root->layer_tree_host(), &layer_update); | 199 layer_src_root->layer_tree_host(), &layer_update); |
200 | 200 |
201 // All flags for pushing properties should have been cleared. | 201 // All flags for pushing properties should have been cleared. |
202 EXPECT_FALSE( | 202 EXPECT_FALSE( |
203 layer_src_root->layer_tree_host()->LayerNeedsPushPropertiesForTesting( | 203 layer_src_root->GetLayerTree()->LayerNeedsPushPropertiesForTesting( |
204 layer_src_root.get())); | 204 layer_src_root.get())); |
| 205 EXPECT_FALSE(layer_src_a->GetLayerTree()->LayerNeedsPushPropertiesForTesting( |
| 206 layer_src_a.get())); |
| 207 EXPECT_FALSE(layer_src_b->GetLayerTree()->LayerNeedsPushPropertiesForTesting( |
| 208 layer_src_b.get())); |
205 EXPECT_FALSE( | 209 EXPECT_FALSE( |
206 layer_src_a->layer_tree_host()->LayerNeedsPushPropertiesForTesting( | 210 layer_src_b_mask->GetLayerTree()->LayerNeedsPushPropertiesForTesting( |
207 layer_src_a.get())); | |
208 EXPECT_FALSE( | |
209 layer_src_b->layer_tree_host()->LayerNeedsPushPropertiesForTesting( | |
210 layer_src_b.get())); | |
211 EXPECT_FALSE( | |
212 layer_src_b_mask->layer_tree_host()->LayerNeedsPushPropertiesForTesting( | |
213 layer_src_b_mask.get())); | 211 layer_src_b_mask.get())); |
214 EXPECT_FALSE( | 212 EXPECT_FALSE( |
215 layer_src_b_replica->layer_tree_host() | 213 layer_src_b_replica->GetLayerTree()->LayerNeedsPushPropertiesForTesting( |
216 ->LayerNeedsPushPropertiesForTesting(layer_src_b_replica.get())); | 214 layer_src_b_replica.get())); |
217 EXPECT_FALSE( | 215 EXPECT_FALSE(layer_src_c->GetLayerTree()->LayerNeedsPushPropertiesForTesting( |
218 layer_src_c->layer_tree_host()->LayerNeedsPushPropertiesForTesting( | 216 layer_src_c.get())); |
219 layer_src_c.get())); | 217 EXPECT_FALSE(layer_src_d->GetLayerTree()->LayerNeedsPushPropertiesForTesting( |
220 EXPECT_FALSE( | 218 layer_src_d.get())); |
221 layer_src_d->layer_tree_host()->LayerNeedsPushPropertiesForTesting( | |
222 layer_src_d.get())); | |
223 | 219 |
224 // All layers needs to push properties as their layer tree host changed. | 220 // All layers needs to push properties as their layer tree host changed. |
225 ASSERT_EQ(7, layer_update.layers_size()); | 221 ASSERT_EQ(7, layer_update.layers_size()); |
226 layer_update.Clear(); | 222 layer_update.Clear(); |
227 | 223 |
228 std::unordered_set<int> dirty_layer_ids; | 224 std::unordered_set<int> dirty_layer_ids; |
229 layer_src_a->SetNeedsPushProperties(); | 225 layer_src_a->SetNeedsPushProperties(); |
230 dirty_layer_ids.insert(layer_src_a->id()); | 226 dirty_layer_ids.insert(layer_src_a->id()); |
231 layer_src_b->SetNeedsPushProperties(); | 227 layer_src_b->SetNeedsPushProperties(); |
232 dirty_layer_ids.insert(layer_src_b->id()); | 228 dirty_layer_ids.insert(layer_src_b->id()); |
233 layer_src_b_mask->SetNeedsPushProperties(); | 229 layer_src_b_mask->SetNeedsPushProperties(); |
234 dirty_layer_ids.insert(layer_src_b_mask->id()); | 230 dirty_layer_ids.insert(layer_src_b_mask->id()); |
235 layer_src_d->SetNeedsPushProperties(); | 231 layer_src_d->SetNeedsPushProperties(); |
236 dirty_layer_ids.insert(layer_src_d->id()); | 232 dirty_layer_ids.insert(layer_src_d->id()); |
237 | 233 |
238 LayerProtoConverter::SerializeLayerProperties( | 234 LayerProtoConverter::SerializeLayerProperties( |
239 layer_src_root->layer_tree_host(), &layer_update); | 235 layer_src_root->layer_tree_host(), &layer_update); |
240 | 236 |
241 // All flags for pushing properties should have been cleared. | 237 // All flags for pushing properties should have been cleared. |
242 EXPECT_FALSE( | 238 EXPECT_FALSE( |
243 layer_src_root->layer_tree_host()->LayerNeedsPushPropertiesForTesting( | 239 layer_src_root->GetLayerTree()->LayerNeedsPushPropertiesForTesting( |
244 layer_src_root.get())); | 240 layer_src_root.get())); |
| 241 EXPECT_FALSE(layer_src_a->GetLayerTree()->LayerNeedsPushPropertiesForTesting( |
| 242 layer_src_a.get())); |
| 243 EXPECT_FALSE(layer_src_b->GetLayerTree()->LayerNeedsPushPropertiesForTesting( |
| 244 layer_src_b.get())); |
245 EXPECT_FALSE( | 245 EXPECT_FALSE( |
246 layer_src_a->layer_tree_host()->LayerNeedsPushPropertiesForTesting( | 246 layer_src_b_mask->GetLayerTree()->LayerNeedsPushPropertiesForTesting( |
247 layer_src_a.get())); | |
248 EXPECT_FALSE( | |
249 layer_src_b->layer_tree_host()->LayerNeedsPushPropertiesForTesting( | |
250 layer_src_b.get())); | |
251 EXPECT_FALSE( | |
252 layer_src_b_mask->layer_tree_host()->LayerNeedsPushPropertiesForTesting( | |
253 layer_src_b_mask.get())); | 247 layer_src_b_mask.get())); |
254 EXPECT_FALSE( | 248 EXPECT_FALSE( |
255 layer_src_b_replica->layer_tree_host() | 249 layer_src_b_replica->GetLayerTree()->LayerNeedsPushPropertiesForTesting( |
256 ->LayerNeedsPushPropertiesForTesting(layer_src_b_replica.get())); | 250 layer_src_b_replica.get())); |
257 EXPECT_FALSE( | 251 EXPECT_FALSE(layer_src_c->GetLayerTree()->LayerNeedsPushPropertiesForTesting( |
258 layer_src_c->layer_tree_host()->LayerNeedsPushPropertiesForTesting( | 252 layer_src_c.get())); |
259 layer_src_c.get())); | 253 EXPECT_FALSE(layer_src_d->GetLayerTree()->LayerNeedsPushPropertiesForTesting( |
260 EXPECT_FALSE( | 254 layer_src_d.get())); |
261 layer_src_d->layer_tree_host()->LayerNeedsPushPropertiesForTesting( | |
262 layer_src_d.get())); | |
263 | 255 |
264 // Only 4 of the layers should have been serialized. | 256 // Only 4 of the layers should have been serialized. |
265 ASSERT_EQ(4, layer_update.layers_size()); | 257 ASSERT_EQ(4, layer_update.layers_size()); |
266 for (int index = 0; index < layer_update.layers_size(); index++) | 258 for (int index = 0; index < layer_update.layers_size(); index++) |
267 EXPECT_NE(dirty_layer_ids.find(layer_update.layers(index).id()), | 259 EXPECT_NE(dirty_layer_ids.find(layer_update.layers(index).id()), |
268 dirty_layer_ids.end()); | 260 dirty_layer_ids.end()); |
269 layer_src_root->SetLayerTreeHost(nullptr); | 261 layer_src_root->SetLayerTreeHost(nullptr); |
270 } | 262 } |
271 | 263 |
272 TEST_F(LayerProtoConverterTest, RecursivePropertiesSerializationSingleChild) { | 264 TEST_F(LayerProtoConverterTest, RecursivePropertiesSerializationSingleChild) { |
(...skipping 27 matching lines...) Expand all Loading... |
300 layer_src_b->SetNeedsPushProperties(); | 292 layer_src_b->SetNeedsPushProperties(); |
301 dirty_layer_ids.insert(layer_src_b->id()); | 293 dirty_layer_ids.insert(layer_src_b->id()); |
302 layer_src_b_mask->SetNeedsPushProperties(); | 294 layer_src_b_mask->SetNeedsPushProperties(); |
303 dirty_layer_ids.insert(layer_src_b_mask->id()); | 295 dirty_layer_ids.insert(layer_src_b_mask->id()); |
304 | 296 |
305 LayerProtoConverter::SerializeLayerProperties( | 297 LayerProtoConverter::SerializeLayerProperties( |
306 layer_src_root->layer_tree_host(), &layer_update); | 298 layer_src_root->layer_tree_host(), &layer_update); |
307 | 299 |
308 // All flags for pushing properties should have been cleared. | 300 // All flags for pushing properties should have been cleared. |
309 EXPECT_FALSE( | 301 EXPECT_FALSE( |
310 layer_src_root->layer_tree_host()->LayerNeedsPushPropertiesForTesting( | 302 layer_src_root->GetLayerTree()->LayerNeedsPushPropertiesForTesting( |
311 layer_src_root.get())); | 303 layer_src_root.get())); |
| 304 EXPECT_FALSE(layer_src_b->GetLayerTree()->LayerNeedsPushPropertiesForTesting( |
| 305 layer_src_b.get())); |
312 EXPECT_FALSE( | 306 EXPECT_FALSE( |
313 layer_src_b->layer_tree_host()->LayerNeedsPushPropertiesForTesting( | 307 layer_src_b_mask->GetLayerTree()->LayerNeedsPushPropertiesForTesting( |
314 layer_src_b.get())); | |
315 EXPECT_FALSE( | |
316 layer_src_b_mask->layer_tree_host()->LayerNeedsPushPropertiesForTesting( | |
317 layer_src_b_mask.get())); | 308 layer_src_b_mask.get())); |
318 EXPECT_FALSE( | 309 EXPECT_FALSE(layer_src_c->GetLayerTree()->LayerNeedsPushPropertiesForTesting( |
319 layer_src_c->layer_tree_host()->LayerNeedsPushPropertiesForTesting( | 310 layer_src_c.get())); |
320 layer_src_c.get())); | |
321 | 311 |
322 // Only 2 of the layers should have been serialized. | 312 // Only 2 of the layers should have been serialized. |
323 ASSERT_EQ(2, layer_update.layers_size()); | 313 ASSERT_EQ(2, layer_update.layers_size()); |
324 for (int index = 0; index < layer_update.layers_size(); index++) | 314 for (int index = 0; index < layer_update.layers_size(); index++) |
325 EXPECT_NE(dirty_layer_ids.find(layer_update.layers(index).id()), | 315 EXPECT_NE(dirty_layer_ids.find(layer_update.layers(index).id()), |
326 dirty_layer_ids.end()); | 316 dirty_layer_ids.end()); |
327 layer_src_root->SetLayerTreeHost(nullptr); | 317 layer_src_root->SetLayerTreeHost(nullptr); |
328 } | 318 } |
329 | 319 |
330 TEST_F(LayerProtoConverterTest, PictureLayerTypeSerialization) { | 320 TEST_F(LayerProtoConverterTest, PictureLayerTypeSerialization) { |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
392 // serialize to. | 382 // serialize to. |
393 proto::LayerNode layer_node; | 383 proto::LayerNode layer_node; |
394 new_root->SetTypeForProtoSerialization(&layer_node); | 384 new_root->SetTypeForProtoSerialization(&layer_node); |
395 EXPECT_EQ(proto::LayerNode::HEADS_UP_DISPLAY_LAYER, layer_node.type()); | 385 EXPECT_EQ(proto::LayerNode::HEADS_UP_DISPLAY_LAYER, layer_node.type()); |
396 | 386 |
397 new_root->SetLayerTreeHost(nullptr); | 387 new_root->SetLayerTreeHost(nullptr); |
398 } | 388 } |
399 | 389 |
400 } // namespace | 390 } // namespace |
401 } // namespace cc | 391 } // namespace cc |
OLD | NEW |