Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(19)

Side by Side Diff: cc/layers/layer_proto_converter_unittest.cc

Issue 1715973002: cc: Move tracking of layer_property_changed to main thread (3) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/layers/layer_impl.cc ('k') | cc/layers/layer_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/layer_settings.h" 10 #include "cc/layers/layer_settings.h"
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 scoped_refptr<Layer> layer_src_b_replica = Layer::Create(LayerSettings()); 182 scoped_refptr<Layer> layer_src_b_replica = Layer::Create(LayerSettings());
183 scoped_refptr<Layer> layer_src_c = Layer::Create(LayerSettings()); 183 scoped_refptr<Layer> layer_src_c = Layer::Create(LayerSettings());
184 scoped_refptr<Layer> layer_src_d = Layer::Create(LayerSettings()); 184 scoped_refptr<Layer> layer_src_d = Layer::Create(LayerSettings());
185 layer_src_root->AddChild(layer_src_a); 185 layer_src_root->AddChild(layer_src_a);
186 layer_src_root->AddChild(layer_src_b); 186 layer_src_root->AddChild(layer_src_b);
187 layer_src_a->AddChild(layer_src_c); 187 layer_src_a->AddChild(layer_src_c);
188 layer_src_b->AddChild(layer_src_d); 188 layer_src_b->AddChild(layer_src_d);
189 layer_src_b->SetMaskLayer(layer_src_b_mask.get()); 189 layer_src_b->SetMaskLayer(layer_src_b_mask.get());
190 layer_src_b->SetReplicaLayer(layer_src_b_replica.get()); 190 layer_src_b->SetReplicaLayer(layer_src_b_replica.get());
191 191
192 proto::LayerUpdate layer_update;
193 LayerProtoConverter::SerializeLayerProperties(layer_src_root.get(),
194 &layer_update);
195
196 // All flags for pushing properties should have been cleared.
197 EXPECT_FALSE(layer_src_root->needs_push_properties());
198 EXPECT_FALSE(layer_src_root->descendant_needs_push_properties());
199 EXPECT_FALSE(layer_src_a->needs_push_properties());
200 EXPECT_FALSE(layer_src_a->descendant_needs_push_properties());
201 EXPECT_FALSE(layer_src_b->needs_push_properties());
202 EXPECT_FALSE(layer_src_b->descendant_needs_push_properties());
203 EXPECT_FALSE(layer_src_b_mask->needs_push_properties());
204 EXPECT_FALSE(layer_src_b_mask->descendant_needs_push_properties());
205 EXPECT_FALSE(layer_src_b_replica->needs_push_properties());
206 EXPECT_FALSE(layer_src_b_replica->descendant_needs_push_properties());
207 EXPECT_FALSE(layer_src_c->needs_push_properties());
208 EXPECT_FALSE(layer_src_c->descendant_needs_push_properties());
209 EXPECT_FALSE(layer_src_d->needs_push_properties());
210 EXPECT_FALSE(layer_src_d->descendant_needs_push_properties());
211
212 // AddChild changes the stacking order of child and it needs to push
213 // properties.
214 ASSERT_EQ(5, layer_update.layers_size());
215 EXPECT_EQ(layer_src_root->id(), layer_update.layers(0).id());
216 proto::LayerProperties dest_root = layer_update.layers(0);
217 EXPECT_EQ(layer_src_a->id(), layer_update.layers(1).id());
218 proto::LayerProperties dest_a = layer_update.layers(1);
219 EXPECT_EQ(layer_src_c->id(), layer_update.layers(2).id());
220 proto::LayerProperties dest_c = layer_update.layers(2);
221 EXPECT_EQ(layer_src_b->id(), layer_update.layers(3).id());
222 proto::LayerProperties dest_b = layer_update.layers(3);
223 EXPECT_EQ(layer_src_d->id(), layer_update.layers(4).id());
224 proto::LayerProperties dest_d = layer_update.layers(4);
225 layer_update.Clear();
226
192 layer_src_a->SetNeedsPushProperties(); 227 layer_src_a->SetNeedsPushProperties();
193 layer_src_b->SetNeedsPushProperties(); 228 layer_src_b->SetNeedsPushProperties();
194 layer_src_b_mask->SetNeedsPushProperties(); 229 layer_src_b_mask->SetNeedsPushProperties();
195 layer_src_d->SetNeedsPushProperties(); 230 layer_src_d->SetNeedsPushProperties();
196 231
197 proto::LayerUpdate layer_update;
198 LayerProtoConverter::SerializeLayerProperties(layer_src_root.get(), 232 LayerProtoConverter::SerializeLayerProperties(layer_src_root.get(),
199 &layer_update); 233 &layer_update);
200 234
201 // All flags for pushing properties should have been cleared. 235 // All flags for pushing properties should have been cleared.
202 EXPECT_FALSE(layer_src_root->needs_push_properties()); 236 EXPECT_FALSE(layer_src_root->needs_push_properties());
203 EXPECT_FALSE(layer_src_root->descendant_needs_push_properties()); 237 EXPECT_FALSE(layer_src_root->descendant_needs_push_properties());
204 EXPECT_FALSE(layer_src_a->needs_push_properties()); 238 EXPECT_FALSE(layer_src_a->needs_push_properties());
205 EXPECT_FALSE(layer_src_a->descendant_needs_push_properties()); 239 EXPECT_FALSE(layer_src_a->descendant_needs_push_properties());
206 EXPECT_FALSE(layer_src_b->needs_push_properties()); 240 EXPECT_FALSE(layer_src_b->needs_push_properties());
207 EXPECT_FALSE(layer_src_b->descendant_needs_push_properties()); 241 EXPECT_FALSE(layer_src_b->descendant_needs_push_properties());
208 EXPECT_FALSE(layer_src_b_mask->needs_push_properties()); 242 EXPECT_FALSE(layer_src_b_mask->needs_push_properties());
209 EXPECT_FALSE(layer_src_b_mask->descendant_needs_push_properties()); 243 EXPECT_FALSE(layer_src_b_mask->descendant_needs_push_properties());
210 EXPECT_FALSE(layer_src_b_replica->needs_push_properties()); 244 EXPECT_FALSE(layer_src_b_replica->needs_push_properties());
211 EXPECT_FALSE(layer_src_b_replica->descendant_needs_push_properties()); 245 EXPECT_FALSE(layer_src_b_replica->descendant_needs_push_properties());
212 EXPECT_FALSE(layer_src_c->needs_push_properties()); 246 EXPECT_FALSE(layer_src_c->needs_push_properties());
213 EXPECT_FALSE(layer_src_c->descendant_needs_push_properties()); 247 EXPECT_FALSE(layer_src_c->descendant_needs_push_properties());
214 EXPECT_FALSE(layer_src_d->needs_push_properties()); 248 EXPECT_FALSE(layer_src_d->needs_push_properties());
215 EXPECT_FALSE(layer_src_d->descendant_needs_push_properties()); 249 EXPECT_FALSE(layer_src_d->descendant_needs_push_properties());
216 250
217 // Only 5 of the layers should have been serialized. 251 // Only 5 of the layers should have been serialized.
218 ASSERT_EQ(5, layer_update.layers_size()); 252 ASSERT_EQ(5, layer_update.layers_size());
219 EXPECT_EQ(layer_src_root->id(), layer_update.layers(0).id()); 253 EXPECT_EQ(layer_src_root->id(), layer_update.layers(0).id());
220 proto::LayerProperties dest_root = layer_update.layers(0); 254 dest_root = layer_update.layers(0);
221 EXPECT_EQ(layer_src_a->id(), layer_update.layers(1).id()); 255 EXPECT_EQ(layer_src_a->id(), layer_update.layers(1).id());
222 proto::LayerProperties dest_a = layer_update.layers(1); 256 dest_a = layer_update.layers(1);
223 EXPECT_EQ(layer_src_b->id(), layer_update.layers(2).id()); 257 EXPECT_EQ(layer_src_b->id(), layer_update.layers(2).id());
224 proto::LayerProperties dest_b = layer_update.layers(2); 258 dest_b = layer_update.layers(2);
225 EXPECT_EQ(layer_src_d->id(), layer_update.layers(3).id()); 259 EXPECT_EQ(layer_src_d->id(), layer_update.layers(3).id());
226 proto::LayerProperties dest_d = layer_update.layers(3); 260 dest_d = layer_update.layers(3);
227 EXPECT_EQ(layer_src_b_mask->id(), layer_update.layers(4).id()); 261 EXPECT_EQ(layer_src_b_mask->id(), layer_update.layers(4).id());
228 proto::LayerProperties dest_b_mask = layer_update.layers(4); 262 proto::LayerProperties dest_b_mask = layer_update.layers(4);
229 263
230 // Ensure the properties and dependants metadata is correctly serialized. 264 // Ensure the properties and dependants metadata is correctly serialized.
231 EXPECT_FALSE(dest_root.needs_push_properties()); 265 EXPECT_FALSE(dest_root.needs_push_properties());
232 EXPECT_EQ(2, dest_root.num_dependents_need_push_properties()); 266 EXPECT_EQ(2, dest_root.num_dependents_need_push_properties());
233 EXPECT_FALSE(dest_root.has_base()); 267 EXPECT_FALSE(dest_root.has_base());
234 268
235 EXPECT_TRUE(dest_a.needs_push_properties()); 269 EXPECT_TRUE(dest_a.needs_push_properties());
236 EXPECT_EQ(0, dest_a.num_dependents_need_push_properties()); 270 EXPECT_EQ(0, dest_a.num_dependents_need_push_properties());
(...skipping 24 matching lines...) Expand all
261 Layer b also has a mask layer. 295 Layer b also has a mask layer.
262 */ 296 */
263 scoped_refptr<Layer> layer_src_root = Layer::Create(LayerSettings()); 297 scoped_refptr<Layer> layer_src_root = Layer::Create(LayerSettings());
264 scoped_refptr<Layer> layer_src_b = Layer::Create(LayerSettings()); 298 scoped_refptr<Layer> layer_src_b = Layer::Create(LayerSettings());
265 scoped_refptr<Layer> layer_src_b_mask = Layer::Create(LayerSettings()); 299 scoped_refptr<Layer> layer_src_b_mask = Layer::Create(LayerSettings());
266 scoped_refptr<Layer> layer_src_c = Layer::Create(LayerSettings()); 300 scoped_refptr<Layer> layer_src_c = Layer::Create(LayerSettings());
267 layer_src_root->AddChild(layer_src_b); 301 layer_src_root->AddChild(layer_src_b);
268 layer_src_b->AddChild(layer_src_c); 302 layer_src_b->AddChild(layer_src_c);
269 layer_src_b->SetMaskLayer(layer_src_b_mask.get()); 303 layer_src_b->SetMaskLayer(layer_src_b_mask.get());
270 304
305 proto::LayerUpdate layer_update;
306 LayerProtoConverter::SerializeLayerProperties(layer_src_root.get(),
307 &layer_update);
308 // AddChild changes stacking order of child and we need to push proeprties of
309 // child.
310 ASSERT_EQ(3, layer_update.layers_size());
311 layer_update.Clear();
312
271 layer_src_b->SetNeedsPushProperties(); 313 layer_src_b->SetNeedsPushProperties();
272 layer_src_b_mask->SetNeedsPushProperties(); 314 layer_src_b_mask->SetNeedsPushProperties();
273 315
274 proto::LayerUpdate layer_update;
275 LayerProtoConverter::SerializeLayerProperties(layer_src_root.get(), 316 LayerProtoConverter::SerializeLayerProperties(layer_src_root.get(),
276 &layer_update); 317 &layer_update);
277 318
278 // All flags for pushing properties should have been cleared. 319 // All flags for pushing properties should have been cleared.
279 EXPECT_FALSE(layer_src_root->needs_push_properties()); 320 EXPECT_FALSE(layer_src_root->needs_push_properties());
280 EXPECT_FALSE(layer_src_root->descendant_needs_push_properties()); 321 EXPECT_FALSE(layer_src_root->descendant_needs_push_properties());
281 EXPECT_FALSE(layer_src_b->needs_push_properties()); 322 EXPECT_FALSE(layer_src_b->needs_push_properties());
282 EXPECT_FALSE(layer_src_b->descendant_needs_push_properties()); 323 EXPECT_FALSE(layer_src_b->descendant_needs_push_properties());
283 EXPECT_FALSE(layer_src_b_mask->needs_push_properties()); 324 EXPECT_FALSE(layer_src_b_mask->needs_push_properties());
284 EXPECT_FALSE(layer_src_b_mask->descendant_needs_push_properties()); 325 EXPECT_FALSE(layer_src_b_mask->descendant_needs_push_properties());
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
431 472
432 // Check that the layer type is equal by using the type this layer would 473 // Check that the layer type is equal by using the type this layer would
433 // serialize to. 474 // serialize to.
434 proto::LayerNode layer_node; 475 proto::LayerNode layer_node;
435 new_root->SetTypeForProtoSerialization(&layer_node); 476 new_root->SetTypeForProtoSerialization(&layer_node);
436 EXPECT_EQ(proto::LayerType::HEADS_UP_DISPLAY_LAYER, layer_node.type()); 477 EXPECT_EQ(proto::LayerType::HEADS_UP_DISPLAY_LAYER, layer_node.type());
437 } 478 }
438 479
439 } // namespace 480 } // namespace
440 } // namespace cc 481 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/layer_impl.cc ('k') | cc/layers/layer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698