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

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

Issue 1766053002: Clean LayerImpl's scroll offset callers in unit tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove ScrollDelta 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
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/layers/layer_impl.h" 5 #include "cc/layers/layer_impl.h"
6 6
7 #include "cc/animation/mutable_properties.h" 7 #include "cc/animation/mutable_properties.h"
8 #include "cc/layers/painted_scrollbar_layer_impl.h" 8 #include "cc/layers/painted_scrollbar_layer_impl.h"
9 #include "cc/layers/solid_color_scrollbar_layer_impl.h" 9 #include "cc/layers/solid_color_scrollbar_layer_impl.h"
10 #include "cc/output/filter_operation.h" 10 #include "cc/output/filter_operation.h"
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 81
82 #define VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(code_to_test) \ 82 #define VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(code_to_test) \
83 root->ResetAllChangeTrackingForSubtree(); \ 83 root->ResetAllChangeTrackingForSubtree(); \
84 host_impl.active_tree()->property_trees()->needs_rebuild = true; \ 84 host_impl.active_tree()->property_trees()->needs_rebuild = true; \
85 host_impl.active_tree()->BuildPropertyTreesForTesting(); \ 85 host_impl.active_tree()->BuildPropertyTreesForTesting(); \
86 host_impl.ForcePrepareToDraw(); \ 86 host_impl.ForcePrepareToDraw(); \
87 EXPECT_FALSE(host_impl.active_tree()->needs_update_draw_properties()); \ 87 EXPECT_FALSE(host_impl.active_tree()->needs_update_draw_properties()); \
88 code_to_test; \ 88 code_to_test; \
89 EXPECT_FALSE(host_impl.active_tree()->needs_update_draw_properties()); 89 EXPECT_FALSE(host_impl.active_tree()->needs_update_draw_properties());
90 90
91 static gfx::Vector2dF ScrollDelta(LayerImpl* layer_impl) {
92 if (layer_impl->IsActive())
93 return gfx::Vector2dF(layer_impl->synced_scroll_offset()->Delta().x(),
94 layer_impl->synced_scroll_offset()->Delta().y());
95 else
96 return gfx::Vector2dF(
97 layer_impl->synced_scroll_offset()->PendingDelta().get().x(),
98 layer_impl->synced_scroll_offset()->PendingDelta().get().y());
99 }
100
91 TEST(LayerImplTest, VerifyLayerChangesAreTrackedProperly) { 101 TEST(LayerImplTest, VerifyLayerChangesAreTrackedProperly) {
92 // 102 //
93 // This test checks that layerPropertyChanged() has the correct behavior. 103 // This test checks that layerPropertyChanged() has the correct behavior.
94 // 104 //
95 105
96 // The constructor on this will fake that we are on the correct thread. 106 // The constructor on this will fake that we are on the correct thread.
97 // Create a simple LayerImpl tree: 107 // Create a simple LayerImpl tree:
98 FakeImplTaskRunnerProvider task_runner_provider; 108 FakeImplTaskRunnerProvider task_runner_provider;
99 TestSharedBitmapManager shared_bitmap_manager; 109 TestSharedBitmapManager shared_bitmap_manager;
100 TestTaskGraphRunner task_graph_runner; 110 TestTaskGraphRunner task_graph_runner;
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 root->SetUpdateRect(arbitrary_rect)); 172 root->SetUpdateRect(arbitrary_rect));
163 EXECUTE_AND_VERIFY_ONLY_LAYER_CHANGED(root->SetBounds(arbitrary_size)); 173 EXECUTE_AND_VERIFY_ONLY_LAYER_CHANGED(root->SetBounds(arbitrary_size));
164 host_impl.active_tree()->property_trees()->needs_rebuild = true; 174 host_impl.active_tree()->property_trees()->needs_rebuild = true;
165 host_impl.active_tree()->BuildPropertyTreesForTesting(); 175 host_impl.active_tree()->BuildPropertyTreesForTesting();
166 176
167 // Changing these properties affects the entire subtree of layers. 177 // Changing these properties affects the entire subtree of layers.
168 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->OnFilterAnimated(arbitrary_filters)); 178 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->OnFilterAnimated(arbitrary_filters));
169 EXECUTE_AND_VERIFY_SUBTREE_CHANGED( 179 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(
170 root->OnFilterAnimated(FilterOperations())); 180 root->OnFilterAnimated(FilterOperations()));
171 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->ScrollBy(arbitrary_vector2d)); 181 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->ScrollBy(arbitrary_vector2d));
172 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetScrollDelta(gfx::Vector2d()));
173 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->PushScrollOffsetFromMainThread(
174 gfx::ScrollOffset(arbitrary_vector2d)));
175 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->OnOpacityAnimated(arbitrary_number)); 182 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->OnOpacityAnimated(arbitrary_number));
176 EXECUTE_AND_VERIFY_SUBTREE_CHANGED( 183 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(
177 root->OnTransformAnimated(arbitrary_transform)); 184 root->OnTransformAnimated(arbitrary_transform));
178 // SetBoundsDelta changes subtree only when masks_to_bounds is true and it 185 // SetBoundsDelta changes subtree only when masks_to_bounds is true and it
179 // doesn't set needs_push_properties as it is always called on active tree. 186 // doesn't set needs_push_properties as it is always called on active tree.
180 root->SetMasksToBounds(true); 187 root->SetMasksToBounds(true);
181 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetBoundsDelta(arbitrary_vector2d); 188 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetBoundsDelta(arbitrary_vector2d);
182 root->SetNeedsPushProperties()); 189 root->SetNeedsPushProperties());
183 190
184 // Changing these properties only affects the layer itself. 191 // Changing these properties only affects the layer itself.
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetMasksToBounds(true)); 233 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetMasksToBounds(true));
227 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE( 234 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(
228 root->SetPosition(arbitrary_point_f)); 235 root->SetPosition(arbitrary_point_f));
229 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE( 236 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(
230 root->SetShouldFlattenTransform(false)); 237 root->SetShouldFlattenTransform(false));
231 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->Set3dSortingContextId(1)); 238 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->Set3dSortingContextId(1));
232 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE( 239 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(
233 root->SetTransform(arbitrary_transform)); 240 root->SetTransform(arbitrary_transform));
234 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE( 241 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(
235 root->SetDoubleSided(false)); // constructor initializes it to "true". 242 root->SetDoubleSided(false)); // constructor initializes it to "true".
236 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(
237 root->SetScrollDelta(gfx::Vector2d()));
238 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(
239 root->PushScrollOffsetFromMainThread(
240 gfx::ScrollOffset(arbitrary_vector2d)));
241 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetContentsOpaque(true)); 243 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetContentsOpaque(true));
242 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetOpacity(arbitrary_number)); 244 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetOpacity(arbitrary_number));
243 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE( 245 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(
244 root->SetBlendMode(arbitrary_blend_mode)); 246 root->SetBlendMode(arbitrary_blend_mode));
245 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE( 247 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(
246 root->SetIsRootForIsolatedGroup(true)); 248 root->SetIsRootForIsolatedGroup(true));
247 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetDrawsContent(true)); 249 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetDrawsContent(true));
248 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetBounds(bounds_size)); 250 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetBounds(bounds_size));
249 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE( 251 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(
250 root->SetScrollParent(scroll_parent.get())); 252 root->SetScrollParent(scroll_parent.get()));
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
322 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES( 324 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(
323 root->OnFilterAnimated(FilterOperations())); 325 root->OnFilterAnimated(FilterOperations()));
324 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES( 326 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(
325 root->OnFilterAnimated(arbitrary_filters)); 327 root->OnFilterAnimated(arbitrary_filters));
326 328
327 // Related scrolling functions. 329 // Related scrolling functions.
328 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetBounds(large_size)); 330 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetBounds(large_size));
329 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetBounds(large_size)); 331 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetBounds(large_size));
330 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->ScrollBy(arbitrary_vector2d)); 332 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->ScrollBy(arbitrary_vector2d));
331 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(layer->ScrollBy(gfx::Vector2d())); 333 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(layer->ScrollBy(gfx::Vector2d()));
332 layer->SetScrollDelta(gfx::Vector2d(0, 0));
333 host_impl.ForcePrepareToDraw();
334 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(
335 layer->SetScrollDelta(arbitrary_vector2d));
336 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(
337 layer->SetScrollDelta(arbitrary_vector2d));
338 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->PushScrollOffsetFromMainThread(
339 gfx::ScrollOffset(arbitrary_vector2d)));
340 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->DidUpdateScrollOffset()); 334 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->DidUpdateScrollOffset());
335 layer->SetCurrentScrollOffset(layer->synced_scroll_offset()->ActiveBase() +
336 gfx::ScrollOffset());
337 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetCurrentScrollOffset(
338 gfx::ScrollOffset(arbitrary_vector2d.x(), arbitrary_vector2d.y())));
339 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetCurrentScrollOffset(
340 gfx::ScrollOffset(arbitrary_vector2d.x(), arbitrary_vector2d.y())));
341 341
342 // Unrelated functions, always set to new values, always set needs update. 342 // Unrelated functions, always set to new values, always set needs update.
343 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES( 343 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(
344 layer->SetMaskLayer(LayerImpl::Create(host_impl.active_tree(), 4)); 344 layer->SetMaskLayer(LayerImpl::Create(host_impl.active_tree(), 4));
345 layer->NoteLayerPropertyChanged()); 345 layer->NoteLayerPropertyChanged());
346 host_impl.active_tree()->BuildPropertyTreesForTesting(); 346 host_impl.active_tree()->BuildPropertyTreesForTesting();
347 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetMasksToBounds(true); 347 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetMasksToBounds(true);
348 layer->NoteLayerPropertyChanged()); 348 layer->NoteLayerPropertyChanged());
349 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetContentsOpaque(true); 349 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetContentsOpaque(true);
350 layer->NoteLayerPropertyChanged()); 350 layer->NoteLayerPropertyChanged());
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
492 host_impl_.active_tree()->root_layer()->SetBounds(gfx::Size(1, 1)); 492 host_impl_.active_tree()->root_layer()->SetBounds(gfx::Size(1, 1));
493 gfx::Vector2d max_scroll_offset(51, 81); 493 gfx::Vector2d max_scroll_offset(51, 81);
494 layer()->SetBounds(gfx::Size(max_scroll_offset.x(), max_scroll_offset.y())); 494 layer()->SetBounds(gfx::Size(max_scroll_offset.x(), max_scroll_offset.y()));
495 host_impl_.active_tree()->BuildPropertyTreesForTesting(); 495 host_impl_.active_tree()->BuildPropertyTreesForTesting();
496 } 496 }
497 497
498 LayerImpl* layer() { 498 LayerImpl* layer() {
499 return host_impl_.active_tree()->root_layer()->children()[0].get(); 499 return host_impl_.active_tree()->root_layer()->children()[0].get();
500 } 500 }
501 501
502 ScrollTree* scroll_tree(LayerImpl* layer_impl) {
503 return &layer_impl->layer_tree_impl()->property_trees()->scroll_tree;
504 }
505
502 LayerTreeHostImpl& host_impl() { return host_impl_; } 506 LayerTreeHostImpl& host_impl() { return host_impl_; }
503 507
504 LayerTreeImpl* tree() { return host_impl_.active_tree(); } 508 LayerTreeImpl* tree() { return host_impl_.active_tree(); }
505 509
506 LayerTreeSettings settings() { 510 LayerTreeSettings settings() {
507 LayerTreeSettings settings; 511 LayerTreeSettings settings;
508 return settings; 512 return settings;
509 } 513 }
510 514
511 private: 515 private:
512 FakeImplTaskRunnerProvider task_runner_provider_; 516 FakeImplTaskRunnerProvider task_runner_provider_;
513 TestSharedBitmapManager shared_bitmap_manager_; 517 TestSharedBitmapManager shared_bitmap_manager_;
514 TestTaskGraphRunner task_graph_runner_; 518 TestTaskGraphRunner task_graph_runner_;
515 FakeLayerTreeHostImpl host_impl_; 519 FakeLayerTreeHostImpl host_impl_;
516 int root_id_; 520 int root_id_;
517 }; 521 };
518 522
519 TEST_F(LayerImplScrollTest, ScrollByWithZeroOffset) { 523 TEST_F(LayerImplScrollTest, ScrollByWithZeroOffset) {
520 // Test that LayerImpl::ScrollBy only affects ScrollDelta and total scroll 524 // Test that LayerImpl::ScrollBy only affects ScrollDelta and total scroll
521 // offset is bounded by the range [0, max scroll offset]. 525 // offset is bounded by the range [0, max scroll offset].
522 526
523 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->CurrentScrollOffset()); 527 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->CurrentScrollOffset());
524 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->BaseScrollOffset()); 528 EXPECT_VECTOR_EQ(
525 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->ScrollDelta()); 529 gfx::Vector2dF(),
530 scroll_tree(layer())->GetScrollOffsetBaseForTesting(layer()->id()));
531 EXPECT_VECTOR_EQ(gfx::Vector2dF(), ScrollDelta(layer()));
526 532
527 layer()->ScrollBy(gfx::Vector2dF(-100, 100)); 533 layer()->ScrollBy(gfx::Vector2dF(-100, 100));
528 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 80), layer()->CurrentScrollOffset()); 534 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 80), layer()->CurrentScrollOffset());
529 535
530 EXPECT_VECTOR_EQ(layer()->ScrollDelta(), layer()->CurrentScrollOffset()); 536 EXPECT_VECTOR_EQ(ScrollDelta(layer()), layer()->CurrentScrollOffset());
531 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->BaseScrollOffset()); 537 EXPECT_VECTOR_EQ(
538 gfx::Vector2dF(),
539 scroll_tree(layer())->GetScrollOffsetBaseForTesting(layer()->id()));
532 540
533 layer()->ScrollBy(gfx::Vector2dF(100, -100)); 541 layer()->ScrollBy(gfx::Vector2dF(100, -100));
534 EXPECT_VECTOR_EQ(gfx::Vector2dF(50, 0), layer()->CurrentScrollOffset()); 542 EXPECT_VECTOR_EQ(gfx::Vector2dF(50, 0), layer()->CurrentScrollOffset());
535 543
536 EXPECT_VECTOR_EQ(layer()->ScrollDelta(), layer()->CurrentScrollOffset()); 544 EXPECT_VECTOR_EQ(ScrollDelta(layer()), layer()->CurrentScrollOffset());
537 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->BaseScrollOffset()); 545 EXPECT_VECTOR_EQ(
546 gfx::Vector2dF(),
547 scroll_tree(layer())->GetScrollOffsetBaseForTesting(layer()->id()));
538 } 548 }
539 549
540 TEST_F(LayerImplScrollTest, ScrollByWithNonZeroOffset) { 550 TEST_F(LayerImplScrollTest, ScrollByWithNonZeroOffset) {
541 gfx::ScrollOffset scroll_offset(10, 5); 551 gfx::ScrollOffset scroll_offset(10, 5);
542 layer()->PushScrollOffsetFromMainThread(scroll_offset); 552 scroll_tree(layer())->UpdateScrollOffsetBaseForTesting(layer()->id(),
553 scroll_offset);
543 554
544 EXPECT_VECTOR_EQ(scroll_offset, layer()->CurrentScrollOffset()); 555 EXPECT_VECTOR_EQ(scroll_offset, layer()->CurrentScrollOffset());
545 EXPECT_VECTOR_EQ(scroll_offset, layer()->BaseScrollOffset()); 556 EXPECT_VECTOR_EQ(
546 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->ScrollDelta()); 557 scroll_offset,
558 scroll_tree(layer())->GetScrollOffsetBaseForTesting(layer()->id()));
559 EXPECT_VECTOR_EQ(gfx::Vector2dF(), ScrollDelta(layer()));
547 560
548 layer()->ScrollBy(gfx::Vector2dF(-100, 100)); 561 layer()->ScrollBy(gfx::Vector2dF(-100, 100));
549 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 80), layer()->CurrentScrollOffset()); 562 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 80), layer()->CurrentScrollOffset());
550 563
551 EXPECT_VECTOR_EQ( 564 EXPECT_VECTOR_EQ(
552 gfx::ScrollOffsetWithDelta(scroll_offset, layer()->ScrollDelta()), 565 gfx::ScrollOffsetWithDelta(scroll_offset, ScrollDelta(layer())),
553 layer()->CurrentScrollOffset()); 566 layer()->CurrentScrollOffset());
554 EXPECT_VECTOR_EQ(scroll_offset, layer()->BaseScrollOffset()); 567 EXPECT_VECTOR_EQ(
568 scroll_offset,
569 scroll_tree(layer())->GetScrollOffsetBaseForTesting(layer()->id()));
555 570
556 layer()->ScrollBy(gfx::Vector2dF(100, -100)); 571 layer()->ScrollBy(gfx::Vector2dF(100, -100));
557 EXPECT_VECTOR_EQ(gfx::Vector2dF(50, 0), layer()->CurrentScrollOffset()); 572 EXPECT_VECTOR_EQ(gfx::Vector2dF(50, 0), layer()->CurrentScrollOffset());
558 573
559 EXPECT_VECTOR_EQ( 574 EXPECT_VECTOR_EQ(
560 gfx::ScrollOffsetWithDelta(scroll_offset, layer()->ScrollDelta()), 575 gfx::ScrollOffsetWithDelta(scroll_offset, ScrollDelta(layer())),
561 layer()->CurrentScrollOffset()); 576 layer()->CurrentScrollOffset());
562 EXPECT_VECTOR_EQ(scroll_offset, layer()->BaseScrollOffset()); 577 EXPECT_VECTOR_EQ(
578 scroll_offset,
579 scroll_tree(layer())->GetScrollOffsetBaseForTesting(layer()->id()));
563 } 580 }
564 581
565 TEST_F(LayerImplScrollTest, ApplySentScrollsNoListener) { 582 TEST_F(LayerImplScrollTest, ApplySentScrollsNoListener) {
566 gfx::ScrollOffset scroll_offset(10, 5); 583 gfx::ScrollOffset scroll_offset(10, 5);
567 gfx::Vector2dF scroll_delta(20.5f, 8.5f); 584 gfx::Vector2dF scroll_delta(20.5f, 8.5f);
568 gfx::Vector2d sent_scroll_delta(12, -3); 585 gfx::Vector2d sent_scroll_delta(12, -3);
569 586
570 layer()->PushScrollOffsetFromMainThread(scroll_offset); 587 scroll_tree(layer())->UpdateScrollOffsetBaseForTesting(layer()->id(),
588 scroll_offset);
571 layer()->ScrollBy(sent_scroll_delta); 589 layer()->ScrollBy(sent_scroll_delta);
572 layer()->synced_scroll_offset()->PullDeltaForMainThread(); 590 layer()->synced_scroll_offset()->PullDeltaForMainThread();
573 layer()->SetCurrentScrollOffset(scroll_offset + 591 layer()->SetCurrentScrollOffset(scroll_offset +
574 gfx::ScrollOffset(scroll_delta)); 592 gfx::ScrollOffset(scroll_delta));
575 593
576 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, scroll_delta), 594 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, scroll_delta),
577 layer()->CurrentScrollOffset()); 595 layer()->CurrentScrollOffset());
578 EXPECT_VECTOR_EQ(scroll_delta, layer()->ScrollDelta()); 596 EXPECT_VECTOR_EQ(scroll_delta, ScrollDelta(layer()));
579 EXPECT_VECTOR_EQ(scroll_offset, layer()->BaseScrollOffset()); 597 EXPECT_VECTOR_EQ(
598 scroll_offset,
599 scroll_tree(layer())->GetScrollOffsetBaseForTesting(layer()->id()));
580 600
581 layer()->synced_scroll_offset()->AbortCommit(); 601 layer()->synced_scroll_offset()->AbortCommit();
582 602
583 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, scroll_delta), 603 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, scroll_delta),
584 layer()->CurrentScrollOffset()); 604 layer()->CurrentScrollOffset());
585 EXPECT_VECTOR_EQ(scroll_delta - sent_scroll_delta, layer()->ScrollDelta()); 605 EXPECT_VECTOR_EQ(scroll_delta - sent_scroll_delta, ScrollDelta(layer()));
586 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, sent_scroll_delta), 606 EXPECT_VECTOR_EQ(
587 layer()->BaseScrollOffset()); 607 gfx::ScrollOffsetWithDelta(scroll_offset, sent_scroll_delta),
608 scroll_tree(layer())->GetScrollOffsetBaseForTesting(layer()->id()));
588 } 609 }
589 610
590 TEST_F(LayerImplScrollTest, ScrollUserUnscrollableLayer) { 611 TEST_F(LayerImplScrollTest, ScrollUserUnscrollableLayer) {
591 gfx::ScrollOffset scroll_offset(10, 5); 612 gfx::ScrollOffset scroll_offset(10, 5);
592 gfx::Vector2dF scroll_delta(20.5f, 8.5f); 613 gfx::Vector2dF scroll_delta(20.5f, 8.5f);
593 614
594 layer()->set_user_scrollable_vertical(false); 615 layer()->set_user_scrollable_vertical(false);
595 layer()->PushScrollOffsetFromMainThread(scroll_offset); 616 scroll_tree(layer())->UpdateScrollOffsetBaseForTesting(layer()->id(),
617 scroll_offset);
596 gfx::Vector2dF unscrolled = layer()->ScrollBy(scroll_delta); 618 gfx::Vector2dF unscrolled = layer()->ScrollBy(scroll_delta);
597 619
598 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 8.5f), unscrolled); 620 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 8.5f), unscrolled);
599 EXPECT_VECTOR_EQ(gfx::Vector2dF(30.5f, 5), layer()->CurrentScrollOffset()); 621 EXPECT_VECTOR_EQ(gfx::Vector2dF(30.5f, 5), layer()->CurrentScrollOffset());
600 } 622 }
601 623
602 TEST_F(LayerImplScrollTest, PushPropertiesToMirrorsCurrentScrollOffset) { 624 TEST_F(LayerImplScrollTest, PushPropertiesToMirrorsCurrentScrollOffset) {
603 gfx::ScrollOffset scroll_offset(10, 5); 625 gfx::ScrollOffset scroll_offset(10, 5);
604 gfx::Vector2dF scroll_delta(12, 18); 626 gfx::Vector2dF scroll_delta(12, 18);
605 627
606 host_impl().CreatePendingTree(); 628 host_impl().CreatePendingTree();
607 629
608 layer()->PushScrollOffsetFromMainThread(scroll_offset); 630 scroll_tree(layer())->UpdateScrollOffsetBaseForTesting(layer()->id(),
631 scroll_offset);
609 gfx::Vector2dF unscrolled = layer()->ScrollBy(scroll_delta); 632 gfx::Vector2dF unscrolled = layer()->ScrollBy(scroll_delta);
610 633
611 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), unscrolled); 634 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), unscrolled);
612 EXPECT_VECTOR_EQ(gfx::Vector2dF(22, 23), layer()->CurrentScrollOffset()); 635 EXPECT_VECTOR_EQ(gfx::Vector2dF(22, 23), layer()->CurrentScrollOffset());
613 636
614 layer()->synced_scroll_offset()->PullDeltaForMainThread(); 637 layer()->synced_scroll_offset()->PullDeltaForMainThread();
615 638
616 scoped_ptr<LayerImpl> pending_layer = 639 scoped_ptr<LayerImpl> pending_layer =
617 LayerImpl::Create(host_impl().sync_tree(), layer()->id()); 640 LayerImpl::Create(host_impl().sync_tree(), layer()->id());
618 pending_layer->PushScrollOffsetFromMainThread(layer()->CurrentScrollOffset()); 641 scroll_tree(pending_layer.get())
642 ->UpdateScrollOffsetBaseForTesting(pending_layer->id(),
643 layer()->CurrentScrollOffset());
619 644
620 pending_layer->PushPropertiesTo(layer()); 645 pending_layer->PushPropertiesTo(layer());
621 646
622 EXPECT_VECTOR_EQ(gfx::Vector2dF(22, 23), layer()->CurrentScrollOffset()); 647 EXPECT_VECTOR_EQ(gfx::Vector2dF(22, 23), layer()->CurrentScrollOffset());
623 EXPECT_VECTOR_EQ(layer()->CurrentScrollOffset(), 648 EXPECT_VECTOR_EQ(layer()->CurrentScrollOffset(),
624 pending_layer->CurrentScrollOffset()); 649 pending_layer->CurrentScrollOffset());
625 } 650 }
626 651
627 } // namespace 652 } // namespace
628 } // namespace cc 653 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698