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

Side by Side Diff: cc/trees/tree_synchronizer_unittest.cc

Issue 1783613004: CC Animation: Erase cc::LayerSettings everywhere. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@eraseandroid
Patch Set: Rebase. Created 4 years, 9 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/trees/layer_tree_settings_unittest.cc ('k') | chrome/browser/android/DEPS » ('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 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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/tree_synchronizer.h" 5 #include "cc/trees/tree_synchronizer.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <set> 10 #include <set>
11 #include <vector> 11 #include <vector>
12 12
13 #include "base/format_macros.h" 13 #include "base/format_macros.h"
14 #include "base/strings/stringprintf.h" 14 #include "base/strings/stringprintf.h"
15 #include "cc/animation/layer_animation_controller.h" 15 #include "cc/animation/layer_animation_controller.h"
16 #include "cc/layers/layer.h" 16 #include "cc/layers/layer.h"
17 #include "cc/layers/layer_impl.h" 17 #include "cc/layers/layer_impl.h"
18 #include "cc/layers/layer_settings.h"
19 #include "cc/test/animation_test_common.h" 18 #include "cc/test/animation_test_common.h"
20 #include "cc/test/fake_impl_task_runner_provider.h" 19 #include "cc/test/fake_impl_task_runner_provider.h"
21 #include "cc/test/fake_layer_tree_host.h" 20 #include "cc/test/fake_layer_tree_host.h"
22 #include "cc/test/fake_rendering_stats_instrumentation.h" 21 #include "cc/test/fake_rendering_stats_instrumentation.h"
23 #include "cc/test/test_shared_bitmap_manager.h" 22 #include "cc/test/test_shared_bitmap_manager.h"
24 #include "cc/test/test_task_graph_runner.h" 23 #include "cc/test/test_task_graph_runner.h"
25 #include "cc/trees/single_thread_proxy.h" 24 #include "cc/trees/single_thread_proxy.h"
26 #include "cc/trees/task_runner_provider.h" 25 #include "cc/trees/task_runner_provider.h"
27 #include "testing/gtest/include/gtest/gtest.h" 26 #include "testing/gtest/include/gtest/gtest.h"
28 27
(...skipping 19 matching lines...) Expand all
48 MockLayerImpl(LayerTreeImpl* tree_impl, int layer_id) 47 MockLayerImpl(LayerTreeImpl* tree_impl, int layer_id)
49 : LayerImpl(tree_impl, layer_id), 48 : LayerImpl(tree_impl, layer_id),
50 layer_impl_destruction_list_(NULL) {} 49 layer_impl_destruction_list_(NULL) {}
51 50
52 std::vector<int>* layer_impl_destruction_list_; 51 std::vector<int>* layer_impl_destruction_list_;
53 }; 52 };
54 53
55 class MockLayer : public Layer { 54 class MockLayer : public Layer {
56 public: 55 public:
57 static scoped_refptr<MockLayer> Create( 56 static scoped_refptr<MockLayer> Create(
58 const LayerSettings& settings,
59 std::vector<int>* layer_impl_destruction_list) { 57 std::vector<int>* layer_impl_destruction_list) {
60 return make_scoped_refptr( 58 return make_scoped_refptr(new MockLayer(layer_impl_destruction_list));
61 new MockLayer(settings, layer_impl_destruction_list));
62 } 59 }
63 60
64 scoped_ptr<LayerImpl> CreateLayerImpl(LayerTreeImpl* tree_impl) override { 61 scoped_ptr<LayerImpl> CreateLayerImpl(LayerTreeImpl* tree_impl) override {
65 return MockLayerImpl::Create(tree_impl, layer_id_); 62 return MockLayerImpl::Create(tree_impl, layer_id_);
66 } 63 }
67 64
68 void PushPropertiesTo(LayerImpl* layer_impl) override { 65 void PushPropertiesTo(LayerImpl* layer_impl) override {
69 Layer::PushPropertiesTo(layer_impl); 66 Layer::PushPropertiesTo(layer_impl);
70 67
71 MockLayerImpl* mock_layer_impl = static_cast<MockLayerImpl*>(layer_impl); 68 MockLayerImpl* mock_layer_impl = static_cast<MockLayerImpl*>(layer_impl);
72 mock_layer_impl->SetLayerImplDestructionList(layer_impl_destruction_list_); 69 mock_layer_impl->SetLayerImplDestructionList(layer_impl_destruction_list_);
73 } 70 }
74 71
75 private: 72 private:
76 explicit MockLayer(const LayerSettings& settings, 73 explicit MockLayer(std::vector<int>* layer_impl_destruction_list)
77 std::vector<int>* layer_impl_destruction_list) 74 : layer_impl_destruction_list_(layer_impl_destruction_list) {}
78 : Layer(settings),
79 layer_impl_destruction_list_(layer_impl_destruction_list) {}
80 ~MockLayer() override {} 75 ~MockLayer() override {}
81 76
82 std::vector<int>* layer_impl_destruction_list_; 77 std::vector<int>* layer_impl_destruction_list_;
83 }; 78 };
84 79
85 void ExpectTreesAreIdentical(Layer* layer, 80 void ExpectTreesAreIdentical(Layer* layer,
86 LayerImpl* layer_impl, 81 LayerImpl* layer_impl,
87 LayerTreeImpl* tree_impl) { 82 LayerTreeImpl* tree_impl) {
88 ASSERT_TRUE(layer); 83 ASSERT_TRUE(layer);
89 ASSERT_TRUE(layer_impl); 84 ASSERT_TRUE(layer_impl);
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 clip_children_impl->end()); 158 clip_children_impl->end());
164 } 159 }
165 160
166 for (size_t i = 0; i < layer_children.size(); ++i) { 161 for (size_t i = 0; i < layer_children.size(); ++i) {
167 SCOPED_TRACE(base::StringPrintf("child layer %" PRIuS, i).c_str()); 162 SCOPED_TRACE(base::StringPrintf("child layer %" PRIuS, i).c_str());
168 ExpectTreesAreIdentical(layer_children[i].get(), 163 ExpectTreesAreIdentical(layer_children[i].get(),
169 layer_impl_children[i].get(), tree_impl); 164 layer_impl_children[i].get(), tree_impl);
170 } 165 }
171 } 166 }
172 167
173 class LayerTreeSettingsForTreeSynchronizerTest : public LayerTreeSettings {
174 public:
175 LayerTreeSettingsForTreeSynchronizerTest() {
176 use_compositor_animation_timelines = true;
177 }
178 };
179
180 class TreeSynchronizerTest : public testing::Test { 168 class TreeSynchronizerTest : public testing::Test {
181 public: 169 public:
182 TreeSynchronizerTest() 170 TreeSynchronizerTest()
183 : client_(FakeLayerTreeHostClient::DIRECT_3D), 171 : client_(FakeLayerTreeHostClient::DIRECT_3D),
184 host_(FakeLayerTreeHost::Create( 172 host_(FakeLayerTreeHost::Create(&client_, &task_graph_runner_)) {}
185 &client_,
186 &task_graph_runner_,
187 LayerTreeSettingsForTreeSynchronizerTest())) {
188 layer_settings_.use_compositor_animation_timelines =
189 host_->settings().use_compositor_animation_timelines;
190 }
191 173
192 protected: 174 protected:
193 FakeLayerTreeHostClient client_; 175 FakeLayerTreeHostClient client_;
194 TestTaskGraphRunner task_graph_runner_; 176 TestTaskGraphRunner task_graph_runner_;
195 scoped_ptr<FakeLayerTreeHost> host_; 177 scoped_ptr<FakeLayerTreeHost> host_;
196 LayerSettings layer_settings_;
197 178
198 bool is_equal(ScrollTree::ScrollOffsetMap map, 179 bool is_equal(ScrollTree::ScrollOffsetMap map,
199 ScrollTree::ScrollOffsetMap other) { 180 ScrollTree::ScrollOffsetMap other) {
200 if (map.size() != other.size()) 181 if (map.size() != other.size())
201 return false; 182 return false;
202 for (auto& map_entry : map) { 183 for (auto& map_entry : map) {
203 if (other.find(map_entry.first) == other.end()) 184 if (other.find(map_entry.first) == other.end())
204 return false; 185 return false;
205 SyncedScrollOffset& from_map = *map_entry.second.get(); 186 SyncedScrollOffset& from_map = *map_entry.second.get();
206 SyncedScrollOffset& from_other = *other[map_entry.first].get(); 187 SyncedScrollOffset& from_other = *other[map_entry.first].get();
(...skipping 13 matching lines...) Expand all
220 scoped_ptr<LayerImpl> layer_impl_tree_root = 201 scoped_ptr<LayerImpl> layer_impl_tree_root =
221 TreeSynchronizer::SynchronizeTrees( 202 TreeSynchronizer::SynchronizeTrees(
222 static_cast<Layer*>(NULL), nullptr, host_->active_tree()); 203 static_cast<Layer*>(NULL), nullptr, host_->active_tree());
223 204
224 EXPECT_TRUE(!layer_impl_tree_root.get()); 205 EXPECT_TRUE(!layer_impl_tree_root.get());
225 } 206 }
226 207
227 // Constructs a very simple tree and synchronizes it without trying to reuse any 208 // Constructs a very simple tree and synchronizes it without trying to reuse any
228 // preexisting layers. 209 // preexisting layers.
229 TEST_F(TreeSynchronizerTest, SyncSimpleTreeFromEmpty) { 210 TEST_F(TreeSynchronizerTest, SyncSimpleTreeFromEmpty) {
230 scoped_refptr<Layer> layer_tree_root = Layer::Create(layer_settings_); 211 scoped_refptr<Layer> layer_tree_root = Layer::Create();
231 layer_tree_root->AddChild(Layer::Create(layer_settings_)); 212 layer_tree_root->AddChild(Layer::Create());
232 layer_tree_root->AddChild(Layer::Create(layer_settings_)); 213 layer_tree_root->AddChild(Layer::Create());
233 214
234 host_->SetRootLayer(layer_tree_root); 215 host_->SetRootLayer(layer_tree_root);
235 216
236 scoped_ptr<LayerImpl> layer_impl_tree_root = 217 scoped_ptr<LayerImpl> layer_impl_tree_root =
237 TreeSynchronizer::SynchronizeTrees( 218 TreeSynchronizer::SynchronizeTrees(
238 layer_tree_root.get(), nullptr, host_->active_tree()); 219 layer_tree_root.get(), nullptr, host_->active_tree());
239 220
240 ExpectTreesAreIdentical(layer_tree_root.get(), 221 ExpectTreesAreIdentical(layer_tree_root.get(),
241 layer_impl_tree_root.get(), 222 layer_impl_tree_root.get(),
242 host_->active_tree()); 223 host_->active_tree());
243 } 224 }
244 225
245 // Constructs a very simple tree and synchronizes it attempting to reuse some 226 // Constructs a very simple tree and synchronizes it attempting to reuse some
246 // layers 227 // layers
247 TEST_F(TreeSynchronizerTest, SyncSimpleTreeReusingLayers) { 228 TEST_F(TreeSynchronizerTest, SyncSimpleTreeReusingLayers) {
248 std::vector<int> layer_impl_destruction_list; 229 std::vector<int> layer_impl_destruction_list;
249 230
250 scoped_refptr<Layer> layer_tree_root = 231 scoped_refptr<Layer> layer_tree_root =
251 MockLayer::Create(layer_settings_, &layer_impl_destruction_list); 232 MockLayer::Create(&layer_impl_destruction_list);
252 layer_tree_root->AddChild( 233 layer_tree_root->AddChild(MockLayer::Create(&layer_impl_destruction_list));
253 MockLayer::Create(layer_settings_, &layer_impl_destruction_list)); 234 layer_tree_root->AddChild(MockLayer::Create(&layer_impl_destruction_list));
254 layer_tree_root->AddChild(
255 MockLayer::Create(layer_settings_, &layer_impl_destruction_list));
256 235
257 host_->SetRootLayer(layer_tree_root); 236 host_->SetRootLayer(layer_tree_root);
258 237
259 scoped_ptr<LayerImpl> layer_impl_tree_root = 238 scoped_ptr<LayerImpl> layer_impl_tree_root =
260 TreeSynchronizer::SynchronizeTrees( 239 TreeSynchronizer::SynchronizeTrees(
261 layer_tree_root.get(), nullptr, host_->active_tree()); 240 layer_tree_root.get(), nullptr, host_->active_tree());
262 ExpectTreesAreIdentical(layer_tree_root.get(), 241 ExpectTreesAreIdentical(layer_tree_root.get(),
263 layer_impl_tree_root.get(), 242 layer_impl_tree_root.get(),
264 host_->active_tree()); 243 host_->active_tree());
265 244
266 // We have to push properties to pick up the destruction list pointer. 245 // We have to push properties to pick up the destruction list pointer.
267 TreeSynchronizer::PushProperties(layer_tree_root.get(), 246 TreeSynchronizer::PushProperties(layer_tree_root.get(),
268 layer_impl_tree_root.get()); 247 layer_impl_tree_root.get());
269 248
270 // Add a new layer to the Layer side 249 // Add a new layer to the Layer side
271 layer_tree_root->children()[0]->AddChild( 250 layer_tree_root->children()[0]->AddChild(
272 MockLayer::Create(layer_settings_, &layer_impl_destruction_list)); 251 MockLayer::Create(&layer_impl_destruction_list));
273 // Remove one. 252 // Remove one.
274 layer_tree_root->children()[1]->RemoveFromParent(); 253 layer_tree_root->children()[1]->RemoveFromParent();
275 int second_layer_impl_id = layer_impl_tree_root->children()[1]->id(); 254 int second_layer_impl_id = layer_impl_tree_root->children()[1]->id();
276 255
277 // Synchronize again. After the sync the trees should be equivalent and we 256 // Synchronize again. After the sync the trees should be equivalent and we
278 // should have created and destroyed one LayerImpl. 257 // should have created and destroyed one LayerImpl.
279 layer_impl_tree_root = TreeSynchronizer::SynchronizeTrees( 258 layer_impl_tree_root = TreeSynchronizer::SynchronizeTrees(
280 layer_tree_root.get(), std::move(layer_impl_tree_root), 259 layer_tree_root.get(), std::move(layer_impl_tree_root),
281 host_->active_tree()); 260 host_->active_tree());
282 ExpectTreesAreIdentical(layer_tree_root.get(), 261 ExpectTreesAreIdentical(layer_tree_root.get(),
283 layer_impl_tree_root.get(), 262 layer_impl_tree_root.get(),
284 host_->active_tree()); 263 host_->active_tree());
285 264
286 ASSERT_EQ(1u, layer_impl_destruction_list.size()); 265 ASSERT_EQ(1u, layer_impl_destruction_list.size());
287 EXPECT_EQ(second_layer_impl_id, layer_impl_destruction_list[0]); 266 EXPECT_EQ(second_layer_impl_id, layer_impl_destruction_list[0]);
288 } 267 }
289 268
290 // Constructs a very simple tree and checks that a stacking-order change is 269 // Constructs a very simple tree and checks that a stacking-order change is
291 // tracked properly. 270 // tracked properly.
292 TEST_F(TreeSynchronizerTest, SyncSimpleTreeAndTrackStackingOrderChange) { 271 TEST_F(TreeSynchronizerTest, SyncSimpleTreeAndTrackStackingOrderChange) {
293 std::vector<int> layer_impl_destruction_list; 272 std::vector<int> layer_impl_destruction_list;
294 273
295 // Set up the tree and sync once. child2 needs to be synced here, too, even 274 // Set up the tree and sync once. child2 needs to be synced here, too, even
296 // though we remove it to set up the intended scenario. 275 // though we remove it to set up the intended scenario.
297 scoped_refptr<Layer> layer_tree_root = 276 scoped_refptr<Layer> layer_tree_root =
298 MockLayer::Create(layer_settings_, &layer_impl_destruction_list); 277 MockLayer::Create(&layer_impl_destruction_list);
299 scoped_refptr<Layer> child2 = 278 scoped_refptr<Layer> child2 = MockLayer::Create(&layer_impl_destruction_list);
300 MockLayer::Create(layer_settings_, &layer_impl_destruction_list); 279 layer_tree_root->AddChild(MockLayer::Create(&layer_impl_destruction_list));
301 layer_tree_root->AddChild(
302 MockLayer::Create(layer_settings_, &layer_impl_destruction_list));
303 layer_tree_root->AddChild(child2); 280 layer_tree_root->AddChild(child2);
304 281
305 host_->SetRootLayer(layer_tree_root); 282 host_->SetRootLayer(layer_tree_root);
306 283
307 host_->active_tree()->SetRootLayer(TreeSynchronizer::SynchronizeTrees( 284 host_->active_tree()->SetRootLayer(TreeSynchronizer::SynchronizeTrees(
308 layer_tree_root.get(), nullptr, host_->active_tree())); 285 layer_tree_root.get(), nullptr, host_->active_tree()));
309 LayerImpl* layer_impl_tree_root = host_->active_tree()->root_layer(); 286 LayerImpl* layer_impl_tree_root = host_->active_tree()->root_layer();
310 ExpectTreesAreIdentical(layer_tree_root.get(), layer_impl_tree_root, 287 ExpectTreesAreIdentical(layer_tree_root.get(), layer_impl_tree_root,
311 host_->active_tree()); 288 host_->active_tree());
312 289
(...skipping 16 matching lines...) Expand all
329 TreeSynchronizer::PushProperties(layer_tree_root.get(), layer_impl_tree_root); 306 TreeSynchronizer::PushProperties(layer_tree_root.get(), layer_impl_tree_root);
330 307
331 // Check that the impl thread properly tracked the change. 308 // Check that the impl thread properly tracked the change.
332 EXPECT_FALSE(layer_impl_tree_root->LayerPropertyChanged()); 309 EXPECT_FALSE(layer_impl_tree_root->LayerPropertyChanged());
333 EXPECT_FALSE(layer_impl_tree_root->children()[0]->LayerPropertyChanged()); 310 EXPECT_FALSE(layer_impl_tree_root->children()[0]->LayerPropertyChanged());
334 EXPECT_TRUE(layer_impl_tree_root->children()[1]->LayerPropertyChanged()); 311 EXPECT_TRUE(layer_impl_tree_root->children()[1]->LayerPropertyChanged());
335 host_->active_tree()->DetachLayerTree(); 312 host_->active_tree()->DetachLayerTree();
336 } 313 }
337 314
338 TEST_F(TreeSynchronizerTest, SyncSimpleTreeAndProperties) { 315 TEST_F(TreeSynchronizerTest, SyncSimpleTreeAndProperties) {
339 scoped_refptr<Layer> layer_tree_root = Layer::Create(layer_settings_); 316 scoped_refptr<Layer> layer_tree_root = Layer::Create();
340 layer_tree_root->AddChild(Layer::Create(layer_settings_)); 317 layer_tree_root->AddChild(Layer::Create());
341 layer_tree_root->AddChild(Layer::Create(layer_settings_)); 318 layer_tree_root->AddChild(Layer::Create());
342 319
343 host_->SetRootLayer(layer_tree_root); 320 host_->SetRootLayer(layer_tree_root);
344 321
345 // Pick some random properties to set. The values are not important, we're 322 // Pick some random properties to set. The values are not important, we're
346 // just testing that at least some properties are making it through. 323 // just testing that at least some properties are making it through.
347 gfx::PointF root_position = gfx::PointF(2.3f, 7.4f); 324 gfx::PointF root_position = gfx::PointF(2.3f, 7.4f);
348 layer_tree_root->SetPosition(root_position); 325 layer_tree_root->SetPosition(root_position);
349 326
350 float first_child_opacity = 0.25f; 327 float first_child_opacity = 0.25f;
351 layer_tree_root->children()[0]->SetOpacity(first_child_opacity); 328 layer_tree_root->children()[0]->SetOpacity(first_child_opacity);
(...skipping 30 matching lines...) Expand all
382 } 359 }
383 360
384 TEST_F(TreeSynchronizerTest, ReuseLayerImplsAfterStructuralChange) { 361 TEST_F(TreeSynchronizerTest, ReuseLayerImplsAfterStructuralChange) {
385 std::vector<int> layer_impl_destruction_list; 362 std::vector<int> layer_impl_destruction_list;
386 363
387 // Set up a tree with this sort of structure: 364 // Set up a tree with this sort of structure:
388 // root --- A --- B ---+--- C 365 // root --- A --- B ---+--- C
389 // | 366 // |
390 // +--- D 367 // +--- D
391 scoped_refptr<Layer> layer_tree_root = 368 scoped_refptr<Layer> layer_tree_root =
392 MockLayer::Create(layer_settings_, &layer_impl_destruction_list); 369 MockLayer::Create(&layer_impl_destruction_list);
393 layer_tree_root->AddChild( 370 layer_tree_root->AddChild(MockLayer::Create(&layer_impl_destruction_list));
394 MockLayer::Create(layer_settings_, &layer_impl_destruction_list));
395 371
396 scoped_refptr<Layer> layer_a = layer_tree_root->children()[0].get(); 372 scoped_refptr<Layer> layer_a = layer_tree_root->children()[0].get();
397 layer_a->AddChild( 373 layer_a->AddChild(MockLayer::Create(&layer_impl_destruction_list));
398 MockLayer::Create(layer_settings_, &layer_impl_destruction_list));
399 374
400 scoped_refptr<Layer> layer_b = layer_a->children()[0].get(); 375 scoped_refptr<Layer> layer_b = layer_a->children()[0].get();
401 layer_b->AddChild( 376 layer_b->AddChild(MockLayer::Create(&layer_impl_destruction_list));
402 MockLayer::Create(layer_settings_, &layer_impl_destruction_list));
403 377
404 scoped_refptr<Layer> layer_c = layer_b->children()[0].get(); 378 scoped_refptr<Layer> layer_c = layer_b->children()[0].get();
405 layer_b->AddChild( 379 layer_b->AddChild(MockLayer::Create(&layer_impl_destruction_list));
406 MockLayer::Create(layer_settings_, &layer_impl_destruction_list));
407 scoped_refptr<Layer> layer_d = layer_b->children()[1].get(); 380 scoped_refptr<Layer> layer_d = layer_b->children()[1].get();
408 381
409 host_->SetRootLayer(layer_tree_root); 382 host_->SetRootLayer(layer_tree_root);
410 383
411 scoped_ptr<LayerImpl> layer_impl_tree_root = 384 scoped_ptr<LayerImpl> layer_impl_tree_root =
412 TreeSynchronizer::SynchronizeTrees( 385 TreeSynchronizer::SynchronizeTrees(
413 layer_tree_root.get(), nullptr, host_->active_tree()); 386 layer_tree_root.get(), nullptr, host_->active_tree());
414 ExpectTreesAreIdentical(layer_tree_root.get(), 387 ExpectTreesAreIdentical(layer_tree_root.get(),
415 layer_impl_tree_root.get(), 388 layer_impl_tree_root.get(),
416 host_->active_tree()); 389 host_->active_tree());
(...skipping 27 matching lines...) Expand all
444 417
445 EXPECT_EQ(0u, layer_impl_destruction_list.size()); 418 EXPECT_EQ(0u, layer_impl_destruction_list.size());
446 } 419 }
447 420
448 // Constructs a very simple tree, synchronizes it, then synchronizes to a 421 // Constructs a very simple tree, synchronizes it, then synchronizes to a
449 // totally new tree. All layers from the old tree should be deleted. 422 // totally new tree. All layers from the old tree should be deleted.
450 TEST_F(TreeSynchronizerTest, SyncSimpleTreeThenDestroy) { 423 TEST_F(TreeSynchronizerTest, SyncSimpleTreeThenDestroy) {
451 std::vector<int> layer_impl_destruction_list; 424 std::vector<int> layer_impl_destruction_list;
452 425
453 scoped_refptr<Layer> old_layer_tree_root = 426 scoped_refptr<Layer> old_layer_tree_root =
454 MockLayer::Create(layer_settings_, &layer_impl_destruction_list); 427 MockLayer::Create(&layer_impl_destruction_list);
455 old_layer_tree_root->AddChild( 428 old_layer_tree_root->AddChild(
456 MockLayer::Create(layer_settings_, &layer_impl_destruction_list)); 429 MockLayer::Create(&layer_impl_destruction_list));
457 old_layer_tree_root->AddChild( 430 old_layer_tree_root->AddChild(
458 MockLayer::Create(layer_settings_, &layer_impl_destruction_list)); 431 MockLayer::Create(&layer_impl_destruction_list));
459 432
460 host_->SetRootLayer(old_layer_tree_root); 433 host_->SetRootLayer(old_layer_tree_root);
461 434
462 int old_tree_root_layer_id = old_layer_tree_root->id(); 435 int old_tree_root_layer_id = old_layer_tree_root->id();
463 int old_tree_first_child_layer_id = old_layer_tree_root->children()[0]->id(); 436 int old_tree_first_child_layer_id = old_layer_tree_root->children()[0]->id();
464 int old_tree_second_child_layer_id = old_layer_tree_root->children()[1]->id(); 437 int old_tree_second_child_layer_id = old_layer_tree_root->children()[1]->id();
465 438
466 scoped_ptr<LayerImpl> layer_impl_tree_root = 439 scoped_ptr<LayerImpl> layer_impl_tree_root =
467 TreeSynchronizer::SynchronizeTrees( 440 TreeSynchronizer::SynchronizeTrees(
468 old_layer_tree_root.get(), nullptr, host_->active_tree()); 441 old_layer_tree_root.get(), nullptr, host_->active_tree());
469 ExpectTreesAreIdentical(old_layer_tree_root.get(), 442 ExpectTreesAreIdentical(old_layer_tree_root.get(),
470 layer_impl_tree_root.get(), 443 layer_impl_tree_root.get(),
471 host_->active_tree()); 444 host_->active_tree());
472 445
473 // We have to push properties to pick up the destruction list pointer. 446 // We have to push properties to pick up the destruction list pointer.
474 TreeSynchronizer::PushProperties(old_layer_tree_root.get(), 447 TreeSynchronizer::PushProperties(old_layer_tree_root.get(),
475 layer_impl_tree_root.get()); 448 layer_impl_tree_root.get());
476 449
477 // Remove all children on the Layer side. 450 // Remove all children on the Layer side.
478 old_layer_tree_root->RemoveAllChildren(); 451 old_layer_tree_root->RemoveAllChildren();
479 452
480 // Synchronize again. After the sync all LayerImpls from the old tree should 453 // Synchronize again. After the sync all LayerImpls from the old tree should
481 // be deleted. 454 // be deleted.
482 scoped_refptr<Layer> new_layer_tree_root = Layer::Create(layer_settings_); 455 scoped_refptr<Layer> new_layer_tree_root = Layer::Create();
483 host_->SetRootLayer(new_layer_tree_root); 456 host_->SetRootLayer(new_layer_tree_root);
484 layer_impl_tree_root = TreeSynchronizer::SynchronizeTrees( 457 layer_impl_tree_root = TreeSynchronizer::SynchronizeTrees(
485 new_layer_tree_root.get(), std::move(layer_impl_tree_root), 458 new_layer_tree_root.get(), std::move(layer_impl_tree_root),
486 host_->active_tree()); 459 host_->active_tree());
487 ExpectTreesAreIdentical(new_layer_tree_root.get(), 460 ExpectTreesAreIdentical(new_layer_tree_root.get(),
488 layer_impl_tree_root.get(), 461 layer_impl_tree_root.get(),
489 host_->active_tree()); 462 host_->active_tree());
490 463
491 ASSERT_EQ(3u, layer_impl_destruction_list.size()); 464 ASSERT_EQ(3u, layer_impl_destruction_list.size());
492 465
493 EXPECT_TRUE(std::find(layer_impl_destruction_list.begin(), 466 EXPECT_TRUE(std::find(layer_impl_destruction_list.begin(),
494 layer_impl_destruction_list.end(), 467 layer_impl_destruction_list.end(),
495 old_tree_root_layer_id) != 468 old_tree_root_layer_id) !=
496 layer_impl_destruction_list.end()); 469 layer_impl_destruction_list.end());
497 EXPECT_TRUE(std::find(layer_impl_destruction_list.begin(), 470 EXPECT_TRUE(std::find(layer_impl_destruction_list.begin(),
498 layer_impl_destruction_list.end(), 471 layer_impl_destruction_list.end(),
499 old_tree_first_child_layer_id) != 472 old_tree_first_child_layer_id) !=
500 layer_impl_destruction_list.end()); 473 layer_impl_destruction_list.end());
501 EXPECT_TRUE(std::find(layer_impl_destruction_list.begin(), 474 EXPECT_TRUE(std::find(layer_impl_destruction_list.begin(),
502 layer_impl_destruction_list.end(), 475 layer_impl_destruction_list.end(),
503 old_tree_second_child_layer_id) != 476 old_tree_second_child_layer_id) !=
504 layer_impl_destruction_list.end()); 477 layer_impl_destruction_list.end());
505 } 478 }
506 479
507 // Constructs+syncs a tree with mask, replica, and replica mask layers. 480 // Constructs+syncs a tree with mask, replica, and replica mask layers.
508 TEST_F(TreeSynchronizerTest, SyncMaskReplicaAndReplicaMaskLayers) { 481 TEST_F(TreeSynchronizerTest, SyncMaskReplicaAndReplicaMaskLayers) {
509 scoped_refptr<Layer> layer_tree_root = Layer::Create(layer_settings_); 482 scoped_refptr<Layer> layer_tree_root = Layer::Create();
510 layer_tree_root->AddChild(Layer::Create(layer_settings_)); 483 layer_tree_root->AddChild(Layer::Create());
511 layer_tree_root->AddChild(Layer::Create(layer_settings_)); 484 layer_tree_root->AddChild(Layer::Create());
512 layer_tree_root->AddChild(Layer::Create(layer_settings_)); 485 layer_tree_root->AddChild(Layer::Create());
513 486
514 // First child gets a mask layer. 487 // First child gets a mask layer.
515 scoped_refptr<Layer> mask_layer = Layer::Create(layer_settings_); 488 scoped_refptr<Layer> mask_layer = Layer::Create();
516 layer_tree_root->children()[0]->SetMaskLayer(mask_layer.get()); 489 layer_tree_root->children()[0]->SetMaskLayer(mask_layer.get());
517 490
518 // Second child gets a replica layer. 491 // Second child gets a replica layer.
519 scoped_refptr<Layer> replica_layer = Layer::Create(layer_settings_); 492 scoped_refptr<Layer> replica_layer = Layer::Create();
520 layer_tree_root->children()[1]->SetReplicaLayer(replica_layer.get()); 493 layer_tree_root->children()[1]->SetReplicaLayer(replica_layer.get());
521 494
522 // Third child gets a replica layer with a mask layer. 495 // Third child gets a replica layer with a mask layer.
523 scoped_refptr<Layer> replica_layer_with_mask = Layer::Create(layer_settings_); 496 scoped_refptr<Layer> replica_layer_with_mask = Layer::Create();
524 scoped_refptr<Layer> replica_mask_layer = Layer::Create(layer_settings_); 497 scoped_refptr<Layer> replica_mask_layer = Layer::Create();
525 replica_layer_with_mask->SetMaskLayer(replica_mask_layer.get()); 498 replica_layer_with_mask->SetMaskLayer(replica_mask_layer.get());
526 layer_tree_root->children()[2]-> 499 layer_tree_root->children()[2]->
527 SetReplicaLayer(replica_layer_with_mask.get()); 500 SetReplicaLayer(replica_layer_with_mask.get());
528 501
529 host_->SetRootLayer(layer_tree_root); 502 host_->SetRootLayer(layer_tree_root);
530 503
531 scoped_ptr<LayerImpl> layer_impl_tree_root = 504 scoped_ptr<LayerImpl> layer_impl_tree_root =
532 TreeSynchronizer::SynchronizeTrees( 505 TreeSynchronizer::SynchronizeTrees(
533 layer_tree_root.get(), nullptr, host_->active_tree()); 506 layer_tree_root.get(), nullptr, host_->active_tree());
534 507
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
567 TEST_F(TreeSynchronizerTest, SynchronizeScrollParent) { 540 TEST_F(TreeSynchronizerTest, SynchronizeScrollParent) {
568 LayerTreeSettings settings; 541 LayerTreeSettings settings;
569 FakeImplTaskRunnerProvider task_runner_provider; 542 FakeImplTaskRunnerProvider task_runner_provider;
570 FakeRenderingStatsInstrumentation stats_instrumentation; 543 FakeRenderingStatsInstrumentation stats_instrumentation;
571 TestSharedBitmapManager shared_bitmap_manager; 544 TestSharedBitmapManager shared_bitmap_manager;
572 TestTaskGraphRunner task_graph_runner; 545 TestTaskGraphRunner task_graph_runner;
573 scoped_ptr<LayerTreeHostImpl> host_impl = LayerTreeHostImpl::Create( 546 scoped_ptr<LayerTreeHostImpl> host_impl = LayerTreeHostImpl::Create(
574 settings, nullptr, &task_runner_provider, &stats_instrumentation, 547 settings, nullptr, &task_runner_provider, &stats_instrumentation,
575 &shared_bitmap_manager, nullptr, &task_graph_runner, 0); 548 &shared_bitmap_manager, nullptr, &task_graph_runner, 0);
576 549
577 scoped_refptr<Layer> layer_tree_root = Layer::Create(layer_settings_); 550 scoped_refptr<Layer> layer_tree_root = Layer::Create();
578 scoped_refptr<Layer> scroll_parent = Layer::Create(layer_settings_); 551 scoped_refptr<Layer> scroll_parent = Layer::Create();
579 layer_tree_root->AddChild(scroll_parent); 552 layer_tree_root->AddChild(scroll_parent);
580 layer_tree_root->AddChild(Layer::Create(layer_settings_)); 553 layer_tree_root->AddChild(Layer::Create());
581 layer_tree_root->AddChild(Layer::Create(layer_settings_)); 554 layer_tree_root->AddChild(Layer::Create());
582 555
583 host_->SetRootLayer(layer_tree_root); 556 host_->SetRootLayer(layer_tree_root);
584 557
585 // First child is the second and third child's scroll parent. 558 // First child is the second and third child's scroll parent.
586 layer_tree_root->children()[1]->SetScrollParent(scroll_parent.get()); 559 layer_tree_root->children()[1]->SetScrollParent(scroll_parent.get());
587 layer_tree_root->children()[2]->SetScrollParent(scroll_parent.get()); 560 layer_tree_root->children()[2]->SetScrollParent(scroll_parent.get());
588 561
589 scoped_ptr<LayerImpl> layer_impl_tree_root = 562 scoped_ptr<LayerImpl> layer_impl_tree_root =
590 TreeSynchronizer::SynchronizeTrees( 563 TreeSynchronizer::SynchronizeTrees(
591 layer_tree_root.get(), nullptr, host_impl->active_tree()); 564 layer_tree_root.get(), nullptr, host_impl->active_tree());
(...skipping 14 matching lines...) Expand all
606 TreeSynchronizer::PushProperties(layer_tree_root.get(), 579 TreeSynchronizer::PushProperties(layer_tree_root.get(),
607 layer_impl_tree_root.get()); 580 layer_impl_tree_root.get());
608 { 581 {
609 SCOPED_TRACE("case two"); 582 SCOPED_TRACE("case two");
610 ExpectTreesAreIdentical(layer_tree_root.get(), 583 ExpectTreesAreIdentical(layer_tree_root.get(),
611 layer_impl_tree_root.get(), 584 layer_impl_tree_root.get(),
612 host_impl->active_tree()); 585 host_impl->active_tree());
613 } 586 }
614 587
615 // Add an additional scroll layer. 588 // Add an additional scroll layer.
616 scoped_refptr<Layer> additional_scroll_child = Layer::Create(layer_settings_); 589 scoped_refptr<Layer> additional_scroll_child = Layer::Create();
617 layer_tree_root->AddChild(additional_scroll_child); 590 layer_tree_root->AddChild(additional_scroll_child);
618 additional_scroll_child->SetScrollParent(scroll_parent.get()); 591 additional_scroll_child->SetScrollParent(scroll_parent.get());
619 layer_impl_tree_root = TreeSynchronizer::SynchronizeTrees( 592 layer_impl_tree_root = TreeSynchronizer::SynchronizeTrees(
620 layer_tree_root.get(), std::move(layer_impl_tree_root), 593 layer_tree_root.get(), std::move(layer_impl_tree_root),
621 host_impl->active_tree()); 594 host_impl->active_tree());
622 TreeSynchronizer::PushProperties(layer_tree_root.get(), 595 TreeSynchronizer::PushProperties(layer_tree_root.get(),
623 layer_impl_tree_root.get()); 596 layer_impl_tree_root.get());
624 { 597 {
625 SCOPED_TRACE("case three"); 598 SCOPED_TRACE("case three");
626 ExpectTreesAreIdentical(layer_tree_root.get(), 599 ExpectTreesAreIdentical(layer_tree_root.get(),
627 layer_impl_tree_root.get(), 600 layer_impl_tree_root.get(),
628 host_impl->active_tree()); 601 host_impl->active_tree());
629 } 602 }
630 } 603 }
631 604
632 TEST_F(TreeSynchronizerTest, SynchronizeClipParent) { 605 TEST_F(TreeSynchronizerTest, SynchronizeClipParent) {
633 LayerTreeSettings settings; 606 LayerTreeSettings settings;
634 FakeImplTaskRunnerProvider task_runner_provider; 607 FakeImplTaskRunnerProvider task_runner_provider;
635 FakeRenderingStatsInstrumentation stats_instrumentation; 608 FakeRenderingStatsInstrumentation stats_instrumentation;
636 TestSharedBitmapManager shared_bitmap_manager; 609 TestSharedBitmapManager shared_bitmap_manager;
637 TestTaskGraphRunner task_graph_runner; 610 TestTaskGraphRunner task_graph_runner;
638 scoped_ptr<LayerTreeHostImpl> host_impl = LayerTreeHostImpl::Create( 611 scoped_ptr<LayerTreeHostImpl> host_impl = LayerTreeHostImpl::Create(
639 settings, nullptr, &task_runner_provider, &stats_instrumentation, 612 settings, nullptr, &task_runner_provider, &stats_instrumentation,
640 &shared_bitmap_manager, nullptr, &task_graph_runner, 0); 613 &shared_bitmap_manager, nullptr, &task_graph_runner, 0);
641 614
642 scoped_refptr<Layer> layer_tree_root = Layer::Create(layer_settings_); 615 scoped_refptr<Layer> layer_tree_root = Layer::Create();
643 scoped_refptr<Layer> clip_parent = Layer::Create(layer_settings_); 616 scoped_refptr<Layer> clip_parent = Layer::Create();
644 scoped_refptr<Layer> intervening = Layer::Create(layer_settings_); 617 scoped_refptr<Layer> intervening = Layer::Create();
645 scoped_refptr<Layer> clip_child1 = Layer::Create(layer_settings_); 618 scoped_refptr<Layer> clip_child1 = Layer::Create();
646 scoped_refptr<Layer> clip_child2 = Layer::Create(layer_settings_); 619 scoped_refptr<Layer> clip_child2 = Layer::Create();
647 layer_tree_root->AddChild(clip_parent); 620 layer_tree_root->AddChild(clip_parent);
648 clip_parent->AddChild(intervening); 621 clip_parent->AddChild(intervening);
649 intervening->AddChild(clip_child1); 622 intervening->AddChild(clip_child1);
650 intervening->AddChild(clip_child2); 623 intervening->AddChild(clip_child2);
651 624
652 host_->SetRootLayer(layer_tree_root); 625 host_->SetRootLayer(layer_tree_root);
653 626
654 // First child is the second and third child's scroll parent. 627 // First child is the second and third child's scroll parent.
655 clip_child1->SetClipParent(clip_parent.get()); 628 clip_child1->SetClipParent(clip_parent.get());
656 clip_child2->SetClipParent(clip_parent.get()); 629 clip_child2->SetClipParent(clip_parent.get());
(...skipping 14 matching lines...) Expand all
671 layer_impl_tree_root = TreeSynchronizer::SynchronizeTrees( 644 layer_impl_tree_root = TreeSynchronizer::SynchronizeTrees(
672 layer_tree_root.get(), std::move(layer_impl_tree_root), 645 layer_tree_root.get(), std::move(layer_impl_tree_root),
673 host_impl->active_tree()); 646 host_impl->active_tree());
674 TreeSynchronizer::PushProperties(layer_tree_root.get(), 647 TreeSynchronizer::PushProperties(layer_tree_root.get(),
675 layer_impl_tree_root.get()); 648 layer_impl_tree_root.get());
676 ExpectTreesAreIdentical(layer_tree_root.get(), 649 ExpectTreesAreIdentical(layer_tree_root.get(),
677 layer_impl_tree_root.get(), 650 layer_impl_tree_root.get(),
678 host_impl->active_tree()); 651 host_impl->active_tree());
679 652
680 // Add an additional clip child. 653 // Add an additional clip child.
681 scoped_refptr<Layer> additional_clip_child = Layer::Create(layer_settings_); 654 scoped_refptr<Layer> additional_clip_child = Layer::Create();
682 intervening->AddChild(additional_clip_child); 655 intervening->AddChild(additional_clip_child);
683 additional_clip_child->SetClipParent(clip_parent.get()); 656 additional_clip_child->SetClipParent(clip_parent.get());
684 layer_impl_tree_root = TreeSynchronizer::SynchronizeTrees( 657 layer_impl_tree_root = TreeSynchronizer::SynchronizeTrees(
685 layer_tree_root.get(), std::move(layer_impl_tree_root), 658 layer_tree_root.get(), std::move(layer_impl_tree_root),
686 host_impl->active_tree()); 659 host_impl->active_tree());
687 TreeSynchronizer::PushProperties(layer_tree_root.get(), 660 TreeSynchronizer::PushProperties(layer_tree_root.get(),
688 layer_impl_tree_root.get()); 661 layer_impl_tree_root.get());
689 ExpectTreesAreIdentical(layer_tree_root.get(), 662 ExpectTreesAreIdentical(layer_tree_root.get(),
690 layer_impl_tree_root.get(), 663 layer_impl_tree_root.get(),
691 host_impl->active_tree()); 664 host_impl->active_tree());
(...skipping 19 matching lines...) Expand all
711 TEST_F(TreeSynchronizerTest, SynchronizeCurrentlyScrollingNode) { 684 TEST_F(TreeSynchronizerTest, SynchronizeCurrentlyScrollingNode) {
712 LayerTreeSettings settings; 685 LayerTreeSettings settings;
713 FakeLayerTreeHostImplClient client; 686 FakeLayerTreeHostImplClient client;
714 FakeImplTaskRunnerProvider task_runner_provider; 687 FakeImplTaskRunnerProvider task_runner_provider;
715 FakeRenderingStatsInstrumentation stats_instrumentation; 688 FakeRenderingStatsInstrumentation stats_instrumentation;
716 TestSharedBitmapManager shared_bitmap_manager; 689 TestSharedBitmapManager shared_bitmap_manager;
717 TestTaskGraphRunner task_graph_runner; 690 TestTaskGraphRunner task_graph_runner;
718 FakeLayerTreeHostImpl* host_impl = host_->host_impl(); 691 FakeLayerTreeHostImpl* host_impl = host_->host_impl();
719 host_impl->CreatePendingTree(); 692 host_impl->CreatePendingTree();
720 693
721 scoped_refptr<Layer> layer_tree_root = Layer::Create(layer_settings_); 694 scoped_refptr<Layer> layer_tree_root = Layer::Create();
722 scoped_refptr<Layer> scroll_clip_layer = Layer::Create(layer_settings_); 695 scoped_refptr<Layer> scroll_clip_layer = Layer::Create();
723 scoped_refptr<Layer> scroll_layer = Layer::Create(layer_settings_); 696 scoped_refptr<Layer> scroll_layer = Layer::Create();
724 scoped_refptr<Layer> transient_scroll_clip_layer = 697 scoped_refptr<Layer> transient_scroll_clip_layer = Layer::Create();
725 Layer::Create(layer_settings_); 698 scoped_refptr<Layer> transient_scroll_layer = Layer::Create();
726 scoped_refptr<Layer> transient_scroll_layer = Layer::Create(layer_settings_);
727 699
728 layer_tree_root->AddChild(transient_scroll_clip_layer); 700 layer_tree_root->AddChild(transient_scroll_clip_layer);
729 transient_scroll_clip_layer->AddChild(transient_scroll_layer); 701 transient_scroll_clip_layer->AddChild(transient_scroll_layer);
730 transient_scroll_layer->AddChild(scroll_clip_layer); 702 transient_scroll_layer->AddChild(scroll_clip_layer);
731 scroll_clip_layer->AddChild(scroll_layer); 703 scroll_clip_layer->AddChild(scroll_layer);
732 704
733 transient_scroll_layer->SetScrollClipLayerId( 705 transient_scroll_layer->SetScrollClipLayerId(
734 transient_scroll_clip_layer->id()); 706 transient_scroll_clip_layer->id());
735 scroll_layer->SetScrollClipLayerId(scroll_clip_layer->id()); 707 scroll_layer->SetScrollClipLayerId(scroll_clip_layer->id());
736 host_->SetRootLayer(layer_tree_root); 708 host_->SetRootLayer(layer_tree_root);
(...skipping 23 matching lines...) Expand all
760 nullptr); 732 nullptr);
761 LayerTreeSettings settings; 733 LayerTreeSettings settings;
762 FakeLayerTreeHostImplClient client; 734 FakeLayerTreeHostImplClient client;
763 FakeImplTaskRunnerProvider task_runner_provider; 735 FakeImplTaskRunnerProvider task_runner_provider;
764 FakeRenderingStatsInstrumentation stats_instrumentation; 736 FakeRenderingStatsInstrumentation stats_instrumentation;
765 TestSharedBitmapManager shared_bitmap_manager; 737 TestSharedBitmapManager shared_bitmap_manager;
766 TestTaskGraphRunner task_graph_runner; 738 TestTaskGraphRunner task_graph_runner;
767 FakeLayerTreeHostImpl* host_impl = host_->host_impl(); 739 FakeLayerTreeHostImpl* host_impl = host_->host_impl();
768 host_impl->CreatePendingTree(); 740 host_impl->CreatePendingTree();
769 741
770 scoped_refptr<Layer> layer_tree_root = Layer::Create(layer_settings_); 742 scoped_refptr<Layer> layer_tree_root = Layer::Create();
771 scoped_refptr<Layer> scroll_clip_layer = Layer::Create(layer_settings_); 743 scoped_refptr<Layer> scroll_clip_layer = Layer::Create();
772 scoped_refptr<Layer> scroll_layer = Layer::Create(layer_settings_); 744 scoped_refptr<Layer> scroll_layer = Layer::Create();
773 scoped_refptr<Layer> transient_scroll_clip_layer = 745 scoped_refptr<Layer> transient_scroll_clip_layer = Layer::Create();
774 Layer::Create(layer_settings_); 746 scoped_refptr<Layer> transient_scroll_layer = Layer::Create();
775 scoped_refptr<Layer> transient_scroll_layer = Layer::Create(layer_settings_);
776 747
777 layer_tree_root->AddChild(transient_scroll_clip_layer); 748 layer_tree_root->AddChild(transient_scroll_clip_layer);
778 transient_scroll_clip_layer->AddChild(transient_scroll_layer); 749 transient_scroll_clip_layer->AddChild(transient_scroll_layer);
779 transient_scroll_layer->AddChild(scroll_clip_layer); 750 transient_scroll_layer->AddChild(scroll_clip_layer);
780 scroll_clip_layer->AddChild(scroll_layer); 751 scroll_clip_layer->AddChild(scroll_layer);
781 752
782 transient_scroll_layer->SetScrollClipLayerId( 753 transient_scroll_layer->SetScrollClipLayerId(
783 transient_scroll_clip_layer->id()); 754 transient_scroll_clip_layer->id());
784 scroll_layer->SetScrollClipLayerId(scroll_clip_layer->id()); 755 scroll_layer->SetScrollClipLayerId(scroll_clip_layer->id());
785 transient_scroll_layer->SetScrollOffset(gfx::ScrollOffset(1, 2)); 756 transient_scroll_layer->SetScrollOffset(gfx::ScrollOffset(1, 2));
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
847 scroll_offset_map[scroll_layer->id()]->PullDeltaForMainThread(); 818 scroll_offset_map[scroll_layer->id()]->PullDeltaForMainThread();
848 scroll_offset_map[scroll_layer->id()]->SetCurrent(gfx::ScrollOffset(40, 50)); 819 scroll_offset_map[scroll_layer->id()]->SetCurrent(gfx::ScrollOffset(40, 50));
849 scroll_offset_map[scroll_layer->id()]->PushFromMainThread( 820 scroll_offset_map[scroll_layer->id()]->PushFromMainThread(
850 gfx::ScrollOffset(100, 100)); 821 gfx::ScrollOffset(100, 100));
851 scroll_offset_map[scroll_layer->id()]->PushPendingToActive(); 822 scroll_offset_map[scroll_layer->id()]->PushPendingToActive();
852 EXPECT_TRUE(is_equal(scroll_offset_map, scroll_tree.scroll_offset_map())); 823 EXPECT_TRUE(is_equal(scroll_offset_map, scroll_tree.scroll_offset_map()));
853 } 824 }
854 825
855 } // namespace 826 } // namespace
856 } // namespace cc 827 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_settings_unittest.cc ('k') | chrome/browser/android/DEPS » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698