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

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: 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
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 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 root->SetUpdateRect(arbitrary_rect)); 162 root->SetUpdateRect(arbitrary_rect));
163 EXECUTE_AND_VERIFY_ONLY_LAYER_CHANGED(root->SetBounds(arbitrary_size)); 163 EXECUTE_AND_VERIFY_ONLY_LAYER_CHANGED(root->SetBounds(arbitrary_size));
164 host_impl.active_tree()->property_trees()->needs_rebuild = true; 164 host_impl.active_tree()->property_trees()->needs_rebuild = true;
165 host_impl.active_tree()->BuildPropertyTreesForTesting(); 165 host_impl.active_tree()->BuildPropertyTreesForTesting();
166 166
167 // Changing these properties affects the entire subtree of layers. 167 // Changing these properties affects the entire subtree of layers.
168 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->OnFilterAnimated(arbitrary_filters)); 168 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->OnFilterAnimated(arbitrary_filters));
169 EXECUTE_AND_VERIFY_SUBTREE_CHANGED( 169 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(
170 root->OnFilterAnimated(FilterOperations())); 170 root->OnFilterAnimated(FilterOperations()));
171 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->ScrollBy(arbitrary_vector2d)); 171 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->ScrollBy(arbitrary_vector2d));
172 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetScrollDelta(gfx::Vector2d())); 172 root->layer_tree_impl()
173 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->PushScrollOffsetFromMainThread( 173 ->property_trees()
174 gfx::ScrollOffset(arbitrary_vector2d))); 174 ->scroll_tree.UpdateScrollOffsetBaseForTesting(
175 root->id(),
176 gfx::ScrollOffset(arbitrary_vector2d.x(), arbitrary_vector2d.y()));
ajuma 2016/03/07 19:10:19 Is this line needed? (It's not obvious which, if a
sunxd 2016/03/09 01:51:20 Done.
175 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->OnOpacityAnimated(arbitrary_number)); 177 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->OnOpacityAnimated(arbitrary_number));
176 EXECUTE_AND_VERIFY_SUBTREE_CHANGED( 178 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(
177 root->OnTransformAnimated(arbitrary_transform)); 179 root->OnTransformAnimated(arbitrary_transform));
178 // SetBoundsDelta changes subtree only when masks_to_bounds is true and it 180 // 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. 181 // doesn't set needs_push_properties as it is always called on active tree.
180 root->SetMasksToBounds(true); 182 root->SetMasksToBounds(true);
181 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetBoundsDelta(arbitrary_vector2d); 183 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetBoundsDelta(arbitrary_vector2d);
182 root->SetNeedsPushProperties()); 184 root->SetNeedsPushProperties());
183 185
184 // Changing these properties only affects the layer itself. 186 // 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)); 228 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetMasksToBounds(true));
227 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE( 229 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(
228 root->SetPosition(arbitrary_point_f)); 230 root->SetPosition(arbitrary_point_f));
229 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE( 231 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(
230 root->SetShouldFlattenTransform(false)); 232 root->SetShouldFlattenTransform(false));
231 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->Set3dSortingContextId(1)); 233 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->Set3dSortingContextId(1));
232 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE( 234 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(
233 root->SetTransform(arbitrary_transform)); 235 root->SetTransform(arbitrary_transform));
234 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE( 236 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(
235 root->SetDoubleSided(false)); // constructor initializes it to "true". 237 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)); 238 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetContentsOpaque(true));
242 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetOpacity(arbitrary_number)); 239 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetOpacity(arbitrary_number));
243 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE( 240 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(
244 root->SetBlendMode(arbitrary_blend_mode)); 241 root->SetBlendMode(arbitrary_blend_mode));
245 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE( 242 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(
246 root->SetIsRootForIsolatedGroup(true)); 243 root->SetIsRootForIsolatedGroup(true));
247 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetDrawsContent(true)); 244 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetDrawsContent(true));
248 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetBounds(bounds_size)); 245 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetBounds(bounds_size));
249 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE( 246 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(
250 root->SetScrollParent(scroll_parent.get())); 247 root->SetScrollParent(scroll_parent.get()));
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
322 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES( 319 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(
323 root->OnFilterAnimated(FilterOperations())); 320 root->OnFilterAnimated(FilterOperations()));
324 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES( 321 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(
325 root->OnFilterAnimated(arbitrary_filters)); 322 root->OnFilterAnimated(arbitrary_filters));
326 323
327 // Related scrolling functions. 324 // Related scrolling functions.
328 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetBounds(large_size)); 325 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetBounds(large_size));
329 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetBounds(large_size)); 326 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetBounds(large_size));
330 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->ScrollBy(arbitrary_vector2d)); 327 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->ScrollBy(arbitrary_vector2d));
331 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(layer->ScrollBy(gfx::Vector2d())); 328 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)));
ajuma 2016/03/07 19:10:19 For these removed lines, do we have equivalent tes
sunxd 2016/03/09 01:51:20 Done.
340 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->DidUpdateScrollOffset()); 329 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->DidUpdateScrollOffset());
341 330
342 // Unrelated functions, always set to new values, always set needs update. 331 // Unrelated functions, always set to new values, always set needs update.
343 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES( 332 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(
344 layer->SetMaskLayer(LayerImpl::Create(host_impl.active_tree(), 4)); 333 layer->SetMaskLayer(LayerImpl::Create(host_impl.active_tree(), 4));
345 layer->NoteLayerPropertyChanged()); 334 layer->NoteLayerPropertyChanged());
346 host_impl.active_tree()->BuildPropertyTreesForTesting(); 335 host_impl.active_tree()->BuildPropertyTreesForTesting();
347 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetMasksToBounds(true); 336 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetMasksToBounds(true);
348 layer->NoteLayerPropertyChanged()); 337 layer->NoteLayerPropertyChanged());
349 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetContentsOpaque(true); 338 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetContentsOpaque(true);
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
492 host_impl_.active_tree()->root_layer()->SetBounds(gfx::Size(1, 1)); 481 host_impl_.active_tree()->root_layer()->SetBounds(gfx::Size(1, 1));
493 gfx::Vector2d max_scroll_offset(51, 81); 482 gfx::Vector2d max_scroll_offset(51, 81);
494 layer()->SetBounds(gfx::Size(max_scroll_offset.x(), max_scroll_offset.y())); 483 layer()->SetBounds(gfx::Size(max_scroll_offset.x(), max_scroll_offset.y()));
495 host_impl_.active_tree()->BuildPropertyTreesForTesting(); 484 host_impl_.active_tree()->BuildPropertyTreesForTesting();
496 } 485 }
497 486
498 LayerImpl* layer() { 487 LayerImpl* layer() {
499 return host_impl_.active_tree()->root_layer()->children()[0].get(); 488 return host_impl_.active_tree()->root_layer()->children()[0].get();
500 } 489 }
501 490
491 ScrollTree* scroll_tree(LayerImpl* layer_impl) {
492 return &layer_impl->layer_tree_impl()->property_trees()->scroll_tree;
493 }
494
502 LayerTreeHostImpl& host_impl() { return host_impl_; } 495 LayerTreeHostImpl& host_impl() { return host_impl_; }
503 496
504 LayerTreeImpl* tree() { return host_impl_.active_tree(); } 497 LayerTreeImpl* tree() { return host_impl_.active_tree(); }
505 498
506 LayerTreeSettings settings() { 499 LayerTreeSettings settings() {
507 LayerTreeSettings settings; 500 LayerTreeSettings settings;
508 return settings; 501 return settings;
509 } 502 }
510 503
511 private: 504 private:
512 FakeImplTaskRunnerProvider task_runner_provider_; 505 FakeImplTaskRunnerProvider task_runner_provider_;
513 TestSharedBitmapManager shared_bitmap_manager_; 506 TestSharedBitmapManager shared_bitmap_manager_;
514 TestTaskGraphRunner task_graph_runner_; 507 TestTaskGraphRunner task_graph_runner_;
515 FakeLayerTreeHostImpl host_impl_; 508 FakeLayerTreeHostImpl host_impl_;
516 int root_id_; 509 int root_id_;
517 }; 510 };
518 511
519 TEST_F(LayerImplScrollTest, ScrollByWithZeroOffset) { 512 TEST_F(LayerImplScrollTest, ScrollByWithZeroOffset) {
520 // Test that LayerImpl::ScrollBy only affects ScrollDelta and total scroll 513 // Test that LayerImpl::ScrollBy only affects ScrollDelta and total scroll
521 // offset is bounded by the range [0, max scroll offset]. 514 // offset is bounded by the range [0, max scroll offset].
522 515
523 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->CurrentScrollOffset()); 516 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->CurrentScrollOffset());
524 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->BaseScrollOffset()); 517 EXPECT_VECTOR_EQ(
518 gfx::Vector2dF(),
519 scroll_tree(layer())->GetScrollOffsetBaseForTesting(layer()->id()));
525 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->ScrollDelta()); 520 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->ScrollDelta());
526 521
527 layer()->ScrollBy(gfx::Vector2dF(-100, 100)); 522 layer()->ScrollBy(gfx::Vector2dF(-100, 100));
528 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 80), layer()->CurrentScrollOffset()); 523 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 80), layer()->CurrentScrollOffset());
529 524
530 EXPECT_VECTOR_EQ(layer()->ScrollDelta(), layer()->CurrentScrollOffset()); 525 EXPECT_VECTOR_EQ(layer()->ScrollDelta(), layer()->CurrentScrollOffset());
531 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->BaseScrollOffset()); 526 EXPECT_VECTOR_EQ(
527 gfx::Vector2dF(),
528 scroll_tree(layer())->GetScrollOffsetBaseForTesting(layer()->id()));
532 529
533 layer()->ScrollBy(gfx::Vector2dF(100, -100)); 530 layer()->ScrollBy(gfx::Vector2dF(100, -100));
534 EXPECT_VECTOR_EQ(gfx::Vector2dF(50, 0), layer()->CurrentScrollOffset()); 531 EXPECT_VECTOR_EQ(gfx::Vector2dF(50, 0), layer()->CurrentScrollOffset());
535 532
536 EXPECT_VECTOR_EQ(layer()->ScrollDelta(), layer()->CurrentScrollOffset()); 533 EXPECT_VECTOR_EQ(layer()->ScrollDelta(), layer()->CurrentScrollOffset());
537 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->BaseScrollOffset()); 534 EXPECT_VECTOR_EQ(
535 gfx::Vector2dF(),
536 scroll_tree(layer())->GetScrollOffsetBaseForTesting(layer()->id()));
538 } 537 }
539 538
540 TEST_F(LayerImplScrollTest, ScrollByWithNonZeroOffset) { 539 TEST_F(LayerImplScrollTest, ScrollByWithNonZeroOffset) {
541 gfx::ScrollOffset scroll_offset(10, 5); 540 gfx::ScrollOffset scroll_offset(10, 5);
542 layer()->PushScrollOffsetFromMainThread(scroll_offset); 541 scroll_tree(layer())->UpdateScrollOffsetBaseForTesting(layer()->id(),
542 scroll_offset);
543 543
544 EXPECT_VECTOR_EQ(scroll_offset, layer()->CurrentScrollOffset()); 544 EXPECT_VECTOR_EQ(scroll_offset, layer()->CurrentScrollOffset());
545 EXPECT_VECTOR_EQ(scroll_offset, layer()->BaseScrollOffset()); 545 EXPECT_VECTOR_EQ(
546 scroll_offset,
547 scroll_tree(layer())->GetScrollOffsetBaseForTesting(layer()->id()));
546 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->ScrollDelta()); 548 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->ScrollDelta());
547 549
548 layer()->ScrollBy(gfx::Vector2dF(-100, 100)); 550 layer()->ScrollBy(gfx::Vector2dF(-100, 100));
549 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 80), layer()->CurrentScrollOffset()); 551 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 80), layer()->CurrentScrollOffset());
550 552
551 EXPECT_VECTOR_EQ( 553 EXPECT_VECTOR_EQ(
552 gfx::ScrollOffsetWithDelta(scroll_offset, layer()->ScrollDelta()), 554 gfx::ScrollOffsetWithDelta(scroll_offset, layer()->ScrollDelta()),
553 layer()->CurrentScrollOffset()); 555 layer()->CurrentScrollOffset());
554 EXPECT_VECTOR_EQ(scroll_offset, layer()->BaseScrollOffset()); 556 EXPECT_VECTOR_EQ(
557 scroll_offset,
558 scroll_tree(layer())->GetScrollOffsetBaseForTesting(layer()->id()));
555 559
556 layer()->ScrollBy(gfx::Vector2dF(100, -100)); 560 layer()->ScrollBy(gfx::Vector2dF(100, -100));
557 EXPECT_VECTOR_EQ(gfx::Vector2dF(50, 0), layer()->CurrentScrollOffset()); 561 EXPECT_VECTOR_EQ(gfx::Vector2dF(50, 0), layer()->CurrentScrollOffset());
558 562
559 EXPECT_VECTOR_EQ( 563 EXPECT_VECTOR_EQ(
560 gfx::ScrollOffsetWithDelta(scroll_offset, layer()->ScrollDelta()), 564 gfx::ScrollOffsetWithDelta(scroll_offset, layer()->ScrollDelta()),
561 layer()->CurrentScrollOffset()); 565 layer()->CurrentScrollOffset());
562 EXPECT_VECTOR_EQ(scroll_offset, layer()->BaseScrollOffset()); 566 EXPECT_VECTOR_EQ(
567 scroll_offset,
568 scroll_tree(layer())->GetScrollOffsetBaseForTesting(layer()->id()));
563 } 569 }
564 570
565 TEST_F(LayerImplScrollTest, ApplySentScrollsNoListener) { 571 TEST_F(LayerImplScrollTest, ApplySentScrollsNoListener) {
566 gfx::ScrollOffset scroll_offset(10, 5); 572 gfx::ScrollOffset scroll_offset(10, 5);
567 gfx::Vector2dF scroll_delta(20.5f, 8.5f); 573 gfx::Vector2dF scroll_delta(20.5f, 8.5f);
568 gfx::Vector2d sent_scroll_delta(12, -3); 574 gfx::Vector2d sent_scroll_delta(12, -3);
569 575
570 layer()->PushScrollOffsetFromMainThread(scroll_offset); 576 scroll_tree(layer())->UpdateScrollOffsetBaseForTesting(layer()->id(),
577 scroll_offset);
571 layer()->ScrollBy(sent_scroll_delta); 578 layer()->ScrollBy(sent_scroll_delta);
572 layer()->synced_scroll_offset()->PullDeltaForMainThread(); 579 layer()->synced_scroll_offset()->PullDeltaForMainThread();
573 layer()->SetCurrentScrollOffset(scroll_offset + 580 layer()->SetCurrentScrollOffset(scroll_offset +
574 gfx::ScrollOffset(scroll_delta)); 581 gfx::ScrollOffset(scroll_delta));
575 582
576 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, scroll_delta), 583 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, scroll_delta),
577 layer()->CurrentScrollOffset()); 584 layer()->CurrentScrollOffset());
578 EXPECT_VECTOR_EQ(scroll_delta, layer()->ScrollDelta()); 585 EXPECT_VECTOR_EQ(scroll_delta, layer()->ScrollDelta());
579 EXPECT_VECTOR_EQ(scroll_offset, layer()->BaseScrollOffset()); 586 EXPECT_VECTOR_EQ(
587 scroll_offset,
588 scroll_tree(layer())->GetScrollOffsetBaseForTesting(layer()->id()));
580 589
581 layer()->synced_scroll_offset()->AbortCommit(); 590 layer()->synced_scroll_offset()->AbortCommit();
582 591
583 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, scroll_delta), 592 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, scroll_delta),
584 layer()->CurrentScrollOffset()); 593 layer()->CurrentScrollOffset());
585 EXPECT_VECTOR_EQ(scroll_delta - sent_scroll_delta, layer()->ScrollDelta()); 594 EXPECT_VECTOR_EQ(scroll_delta - sent_scroll_delta, layer()->ScrollDelta());
586 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, sent_scroll_delta), 595 EXPECT_VECTOR_EQ(
587 layer()->BaseScrollOffset()); 596 gfx::ScrollOffsetWithDelta(scroll_offset, sent_scroll_delta),
597 scroll_tree(layer())->GetScrollOffsetBaseForTesting(layer()->id()));
588 } 598 }
589 599
590 TEST_F(LayerImplScrollTest, ScrollUserUnscrollableLayer) { 600 TEST_F(LayerImplScrollTest, ScrollUserUnscrollableLayer) {
591 gfx::ScrollOffset scroll_offset(10, 5); 601 gfx::ScrollOffset scroll_offset(10, 5);
592 gfx::Vector2dF scroll_delta(20.5f, 8.5f); 602 gfx::Vector2dF scroll_delta(20.5f, 8.5f);
593 603
594 layer()->set_user_scrollable_vertical(false); 604 layer()->set_user_scrollable_vertical(false);
595 layer()->PushScrollOffsetFromMainThread(scroll_offset); 605 scroll_tree(layer())->UpdateScrollOffsetBaseForTesting(layer()->id(),
606 scroll_offset);
596 gfx::Vector2dF unscrolled = layer()->ScrollBy(scroll_delta); 607 gfx::Vector2dF unscrolled = layer()->ScrollBy(scroll_delta);
597 608
598 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 8.5f), unscrolled); 609 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 8.5f), unscrolled);
599 EXPECT_VECTOR_EQ(gfx::Vector2dF(30.5f, 5), layer()->CurrentScrollOffset()); 610 EXPECT_VECTOR_EQ(gfx::Vector2dF(30.5f, 5), layer()->CurrentScrollOffset());
600 } 611 }
601 612
602 TEST_F(LayerImplScrollTest, PushPropertiesToMirrorsCurrentScrollOffset) { 613 TEST_F(LayerImplScrollTest, PushPropertiesToMirrorsCurrentScrollOffset) {
603 gfx::ScrollOffset scroll_offset(10, 5); 614 gfx::ScrollOffset scroll_offset(10, 5);
604 gfx::Vector2dF scroll_delta(12, 18); 615 gfx::Vector2dF scroll_delta(12, 18);
605 616
606 host_impl().CreatePendingTree(); 617 host_impl().CreatePendingTree();
607 618
608 layer()->PushScrollOffsetFromMainThread(scroll_offset); 619 scroll_tree(layer())->UpdateScrollOffsetBaseForTesting(layer()->id(),
620 scroll_offset);
609 gfx::Vector2dF unscrolled = layer()->ScrollBy(scroll_delta); 621 gfx::Vector2dF unscrolled = layer()->ScrollBy(scroll_delta);
610 622
611 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), unscrolled); 623 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), unscrolled);
612 EXPECT_VECTOR_EQ(gfx::Vector2dF(22, 23), layer()->CurrentScrollOffset()); 624 EXPECT_VECTOR_EQ(gfx::Vector2dF(22, 23), layer()->CurrentScrollOffset());
613 625
614 layer()->synced_scroll_offset()->PullDeltaForMainThread(); 626 layer()->synced_scroll_offset()->PullDeltaForMainThread();
615 627
616 scoped_ptr<LayerImpl> pending_layer = 628 scoped_ptr<LayerImpl> pending_layer =
617 LayerImpl::Create(host_impl().sync_tree(), layer()->id()); 629 LayerImpl::Create(host_impl().sync_tree(), layer()->id());
618 pending_layer->PushScrollOffsetFromMainThread(layer()->CurrentScrollOffset()); 630 scroll_tree(pending_layer.get())
631 ->UpdateScrollOffsetBaseForTesting(pending_layer->id(),
632 layer()->CurrentScrollOffset());
619 633
620 pending_layer->PushPropertiesTo(layer()); 634 pending_layer->PushPropertiesTo(layer());
621 635
622 EXPECT_VECTOR_EQ(gfx::Vector2dF(22, 23), layer()->CurrentScrollOffset()); 636 EXPECT_VECTOR_EQ(gfx::Vector2dF(22, 23), layer()->CurrentScrollOffset());
623 EXPECT_VECTOR_EQ(layer()->CurrentScrollOffset(), 637 EXPECT_VECTOR_EQ(layer()->CurrentScrollOffset(),
624 pending_layer->CurrentScrollOffset()); 638 pending_layer->CurrentScrollOffset());
625 } 639 }
626 640
627 } // namespace 641 } // namespace
628 } // namespace cc 642 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698