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

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

Issue 800613009: Convert scroll offsets to use SyncedProperty. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Clean up, rebase Created 5 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
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/layers/painted_scrollbar_layer_impl.h" 7 #include "cc/layers/painted_scrollbar_layer_impl.h"
8 #include "cc/layers/solid_color_scrollbar_layer_impl.h" 8 #include "cc/layers/solid_color_scrollbar_layer_impl.h"
9 #include "cc/output/filter_operation.h" 9 #include "cc/output/filter_operation.h"
10 #include "cc/output/filter_operations.h" 10 #include "cc/output/filter_operations.h"
(...skipping 493 matching lines...) Expand 10 before | Expand all | Expand 10 after
504 EXPECT_VECTOR_EQ(gfx::Vector2dF(50, 0), layer()->TotalScrollOffset()); 504 EXPECT_VECTOR_EQ(gfx::Vector2dF(50, 0), layer()->TotalScrollOffset());
505 505
506 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, 506 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset,
507 layer()->ScrollDelta()), 507 layer()->ScrollDelta()),
508 layer()->TotalScrollOffset()); 508 layer()->TotalScrollOffset());
509 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 509 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset());
510 } 510 }
511 511
512 class ScrollDelegateIgnore : public LayerImpl::ScrollOffsetDelegate { 512 class ScrollDelegateIgnore : public LayerImpl::ScrollOffsetDelegate {
513 public: 513 public:
514 void SetTotalScrollOffset(const gfx::ScrollOffset& new_value) override { 514 void SetCurrentScrollOffset(const gfx::ScrollOffset& new_value) override {
515 last_attempted_set_offset_ = new_value; 515 last_attempted_set_offset_ = new_value;
516 } 516 }
517 gfx::ScrollOffset last_attempted_set_offset() const { 517 gfx::ScrollOffset last_attempted_set_offset() const {
518 return last_attempted_set_offset_; 518 return last_attempted_set_offset_;
519 } 519 }
520 520
521 gfx::ScrollOffset GetTotalScrollOffset() override { 521 gfx::ScrollOffset GetCurrentScrollOffset() override {
522 return gfx::ScrollOffset(fixed_offset_); 522 return gfx::ScrollOffset(fixed_offset_);
523 } 523 }
524 bool IsExternalFlingActive() const override { return false; } 524 bool IsExternalFlingActive() const override { return false; }
525 void Update() const override { } 525 void Update() const override { }
526 526
527 void set_fixed_offset(const gfx::Vector2dF& fixed_offset) { 527 void set_fixed_offset(const gfx::Vector2dF& fixed_offset) {
528 fixed_offset_ = fixed_offset; 528 fixed_offset_ = fixed_offset;
529 } 529 }
530 530
531 private: 531 private:
(...skipping 29 matching lines...) Expand all
561 561
562 gfx::Vector2dF scroll_delta(1, 1); 562 gfx::Vector2dF scroll_delta(1, 1);
563 layer()->ScrollBy(scroll_delta); 563 layer()->ScrollBy(scroll_delta);
564 564
565 EXPECT_VECTOR_EQ(fixed_offset + scroll_delta, layer()->TotalScrollOffset()); 565 EXPECT_VECTOR_EQ(fixed_offset + scroll_delta, layer()->TotalScrollOffset());
566 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 566 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset());
567 } 567 }
568 568
569 class ScrollDelegateAccept : public LayerImpl::ScrollOffsetDelegate { 569 class ScrollDelegateAccept : public LayerImpl::ScrollOffsetDelegate {
570 public: 570 public:
571 void SetTotalScrollOffset(const gfx::ScrollOffset& new_value) override { 571 void SetCurrentScrollOffset(const gfx::ScrollOffset& new_value) override {
572 current_offset_ = new_value; 572 current_offset_ = new_value;
573 } 573 }
574 gfx::ScrollOffset GetTotalScrollOffset() override { return current_offset_; } 574 gfx::ScrollOffset GetCurrentScrollOffset() override {
575 return current_offset_;
576 }
575 bool IsExternalFlingActive() const override { return false; } 577 bool IsExternalFlingActive() const override { return false; }
576 void Update() const override { } 578 void Update() const override { }
577 579
578 private: 580 private:
579 gfx::ScrollOffset current_offset_; 581 gfx::ScrollOffset current_offset_;
580 }; 582 };
581 583
582 TEST_F(LayerImplScrollTest, ScrollByWithAcceptingDelegate) { 584 TEST_F(LayerImplScrollTest, ScrollByWithAcceptingDelegate) {
583 gfx::ScrollOffset scroll_offset(10, 5); 585 gfx::ScrollOffset scroll_offset(10, 5);
584 layer()->SetScrollOffset(scroll_offset); 586 layer()->SetScrollOffset(scroll_offset);
(...skipping 24 matching lines...) Expand all
609 611
610 EXPECT_VECTOR_EQ(gfx::Vector2dF(1, 80), layer()->TotalScrollOffset()); 612 EXPECT_VECTOR_EQ(gfx::Vector2dF(1, 80), layer()->TotalScrollOffset());
611 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 613 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset());
612 } 614 }
613 615
614 TEST_F(LayerImplScrollTest, ApplySentScrollsNoDelegate) { 616 TEST_F(LayerImplScrollTest, ApplySentScrollsNoDelegate) {
615 gfx::ScrollOffset scroll_offset(10, 5); 617 gfx::ScrollOffset scroll_offset(10, 5);
616 gfx::Vector2dF scroll_delta(20.5f, 8.5f); 618 gfx::Vector2dF scroll_delta(20.5f, 8.5f);
617 gfx::Vector2d sent_scroll_delta(12, -3); 619 gfx::Vector2d sent_scroll_delta(12, -3);
618 620
619 layer()->SetScrollOffset(scroll_offset); 621 layer()->PushScrollOffsetFromMainThread(scroll_offset);
620 layer()->ScrollBy(scroll_delta); 622 layer()->ScrollBy(sent_scroll_delta);
621 layer()->SetSentScrollDelta(sent_scroll_delta); 623 layer()->PullDeltaForMainThread();
624 layer()->SetCurrentScrollOffset(scroll_offset +
625 gfx::ScrollOffset(scroll_delta));
622 626
623 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, scroll_delta), 627 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, scroll_delta),
624 layer()->TotalScrollOffset()); 628 layer()->TotalScrollOffset());
625 EXPECT_VECTOR_EQ(scroll_delta, layer()->ScrollDelta()); 629 EXPECT_VECTOR_EQ(scroll_delta, layer()->ScrollDelta());
626 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 630 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset());
627 EXPECT_VECTOR_EQ(sent_scroll_delta, layer()->sent_scroll_delta());
628 631
629 layer()->ApplySentScrollDeltasFromAbortedCommit(); 632 layer()->ApplySentScrollDeltasFromAbortedCommit();
630 633
631 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, scroll_delta), 634 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, scroll_delta),
632 layer()->TotalScrollOffset()); 635 layer()->TotalScrollOffset());
633 EXPECT_VECTOR_EQ(scroll_delta - sent_scroll_delta, layer()->ScrollDelta()); 636 EXPECT_VECTOR_EQ(scroll_delta - sent_scroll_delta, layer()->ScrollDelta());
634 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, sent_scroll_delta), 637 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, sent_scroll_delta),
635 layer()->scroll_offset()); 638 layer()->scroll_offset());
636 EXPECT_VECTOR_EQ(gfx::Vector2d(), layer()->sent_scroll_delta());
637 } 639 }
638 640
639 TEST_F(LayerImplScrollTest, ApplySentScrollsWithIgnoringDelegate) { 641 TEST_F(LayerImplScrollTest, ApplySentScrollsWithIgnoringDelegate) {
640 gfx::ScrollOffset scroll_offset(10, 5); 642 gfx::ScrollOffset scroll_offset(10, 5);
641 gfx::Vector2d sent_scroll_delta(12, -3); 643 gfx::Vector2d sent_scroll_delta(12, -3);
642 gfx::Vector2dF fixed_offset(32, 12); 644 gfx::Vector2dF fixed_offset(32, 12);
643 645
644 layer()->SetScrollOffset(scroll_offset); 646 layer()->PushScrollOffsetFromMainThread(scroll_offset);
647 layer()->ScrollBy(sent_scroll_delta);
648 layer()->PullDeltaForMainThread();
649 layer()->SetCurrentScrollOffset(scroll_offset);
645 ScrollDelegateIgnore delegate; 650 ScrollDelegateIgnore delegate;
646 delegate.set_fixed_offset(fixed_offset); 651 delegate.set_fixed_offset(fixed_offset);
647 layer()->SetScrollOffsetDelegate(&delegate); 652 layer()->SetScrollOffsetDelegate(&delegate);
648 layer()->SetSentScrollDelta(sent_scroll_delta);
649 653
650 EXPECT_VECTOR_EQ(fixed_offset, layer()->TotalScrollOffset()); 654 EXPECT_VECTOR_EQ(fixed_offset, layer()->TotalScrollOffset());
651 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 655 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset());
652 EXPECT_VECTOR_EQ(sent_scroll_delta, layer()->sent_scroll_delta());
653 656
654 layer()->ApplySentScrollDeltasFromAbortedCommit(); 657 layer()->ApplySentScrollDeltasFromAbortedCommit();
655 658
656 EXPECT_VECTOR_EQ(fixed_offset, delegate.last_attempted_set_offset()); 659 EXPECT_VECTOR_EQ(fixed_offset, delegate.last_attempted_set_offset());
657 660
658 EXPECT_VECTOR_EQ(fixed_offset, layer()->TotalScrollOffset()); 661 EXPECT_VECTOR_EQ(fixed_offset, layer()->TotalScrollOffset());
659 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, sent_scroll_delta), 662 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, sent_scroll_delta),
660 layer()->scroll_offset()); 663 layer()->scroll_offset());
661 EXPECT_VECTOR_EQ(gfx::Vector2d(), layer()->sent_scroll_delta());
662 } 664 }
663 665
664 TEST_F(LayerImplScrollTest, ApplySentScrollsWithAcceptingDelegate) { 666 TEST_F(LayerImplScrollTest, ApplySentScrollsWithAcceptingDelegate) {
665 gfx::ScrollOffset scroll_offset(10, 5); 667 gfx::ScrollOffset scroll_offset(10, 5);
666 gfx::Vector2d sent_scroll_delta(12, -3); 668 gfx::Vector2d sent_scroll_delta(12, -3);
667 gfx::Vector2dF scroll_delta(20.5f, 8.5f); 669 gfx::Vector2dF scroll_delta(20.5f, 8.5f);
668 670
669 layer()->SetScrollOffset(scroll_offset); 671 layer()->PushScrollOffsetFromMainThread(scroll_offset);
672 layer()->ScrollBy(sent_scroll_delta);
673 layer()->PullDeltaForMainThread();
670 ScrollDelegateAccept delegate; 674 ScrollDelegateAccept delegate;
671 layer()->SetScrollOffsetDelegate(&delegate); 675 layer()->SetScrollOffsetDelegate(&delegate);
672 layer()->ScrollBy(scroll_delta); 676 layer()->SetCurrentScrollOffset(scroll_offset +
673 layer()->SetSentScrollDelta(sent_scroll_delta); 677 gfx::ScrollOffset(scroll_delta));
674 678
675 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, scroll_delta), 679 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, scroll_delta),
676 layer()->TotalScrollOffset()); 680 layer()->TotalScrollOffset());
677 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 681 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset());
678 EXPECT_VECTOR_EQ(sent_scroll_delta, layer()->sent_scroll_delta());
679 682
680 layer()->ApplySentScrollDeltasFromAbortedCommit(); 683 layer()->ApplySentScrollDeltasFromAbortedCommit();
681 684
682 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, scroll_delta), 685 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, scroll_delta),
683 layer()->TotalScrollOffset()); 686 layer()->TotalScrollOffset());
684 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, sent_scroll_delta), 687 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, sent_scroll_delta),
685 layer()->scroll_offset()); 688 layer()->scroll_offset());
686 EXPECT_VECTOR_EQ(gfx::Vector2d(), layer()->sent_scroll_delta());
687 } 689 }
688 690
689 TEST_F(LayerImplScrollTest, ScrollUserUnscrollableLayer) { 691 TEST_F(LayerImplScrollTest, ScrollUserUnscrollableLayer) {
690 gfx::ScrollOffset scroll_offset(10, 5); 692 gfx::ScrollOffset scroll_offset(10, 5);
691 gfx::Vector2dF scroll_delta(20.5f, 8.5f); 693 gfx::Vector2dF scroll_delta(20.5f, 8.5f);
692 694
693 layer()->set_user_scrollable_vertical(false); 695 layer()->set_user_scrollable_vertical(false);
694 layer()->SetScrollOffset(scroll_offset); 696 layer()->SetScrollOffset(scroll_offset);
695 gfx::Vector2dF unscrolled = layer()->ScrollBy(scroll_delta); 697 gfx::Vector2dF unscrolled = layer()->ScrollBy(scroll_delta);
696 698
697 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 8.5f), unscrolled); 699 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 8.5f), unscrolled);
698 EXPECT_VECTOR_EQ(gfx::Vector2dF(30.5f, 5), layer()->TotalScrollOffset()); 700 EXPECT_VECTOR_EQ(gfx::Vector2dF(30.5f, 5), layer()->TotalScrollOffset());
699 } 701 }
700 702
701 TEST_F(LayerImplScrollTest, PushPropertiesToMirrorsTotalScrollOffset) { 703 TEST_F(LayerImplScrollTest, PushPropertiesToMirrorsTotalScrollOffset) {
702 gfx::ScrollOffset scroll_offset(10, 5); 704 gfx::ScrollOffset scroll_offset(10, 5);
703 gfx::Vector2dF scroll_delta(12, 18); 705 gfx::Vector2dF scroll_delta(12, 18);
704 706
705 host_impl().CreatePendingTree(); 707 host_impl().CreatePendingTree();
706 708
707 layer()->SetScrollOffset(scroll_offset); 709 layer()->SetScrollOffset(scroll_offset);
708 gfx::Vector2dF unscrolled = layer()->ScrollBy(scroll_delta); 710 gfx::Vector2dF unscrolled = layer()->ScrollBy(scroll_delta);
709 711
710 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), unscrolled); 712 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), unscrolled);
711 EXPECT_VECTOR_EQ(gfx::Vector2dF(22, 23), layer()->TotalScrollOffset()); 713 EXPECT_VECTOR_EQ(gfx::Vector2dF(22, 23), layer()->TotalScrollOffset());
712 714
713 layer()->SetSentScrollDelta(scroll_delta); 715 layer()->PullDeltaForMainThread();
714 716
715 scoped_ptr<LayerImpl> pending_layer = 717 scoped_ptr<LayerImpl> pending_layer = LayerImpl::Create(
716 LayerImpl::Create(host_impl().sync_tree(), layer()->id()); 718 host_impl().sync_tree(), layer()->id(), layer()->synced_scroll_offset());
717 pending_layer->SetScrollOffset(layer()->TotalScrollOffset()); 719 pending_layer->SetScrollOffset(layer()->TotalScrollOffset());
718 720
719 pending_layer->PushPropertiesTo(layer()); 721 pending_layer->PushPropertiesTo(layer());
720 722
721 EXPECT_VECTOR_EQ(gfx::Vector2dF(22, 23), layer()->TotalScrollOffset()); 723 EXPECT_VECTOR_EQ(gfx::Vector2dF(22, 23), layer()->TotalScrollOffset());
722 EXPECT_VECTOR_EQ(layer()->TotalScrollOffset(), 724 EXPECT_VECTOR_EQ(layer()->TotalScrollOffset(),
723 pending_layer->TotalScrollOffset()); 725 pending_layer->TotalScrollOffset());
724 } 726 }
725 727
726 TEST_F(LayerImplScrollTest, SetNewScrollbarParameters) { 728 TEST_F(LayerImplScrollTest, SetNewScrollbarParameters) {
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
869 871
870 ASSERT_TRUE(layer(IV_SCROLL, ACTIVE)->scrollable()); 872 ASSERT_TRUE(layer(IV_SCROLL, ACTIVE)->scrollable());
871 873
872 ASSERT_TRUE(LayerHasScrollbar(OV_SCROLL, ACTIVE)); 874 ASSERT_TRUE(LayerHasScrollbar(OV_SCROLL, ACTIVE));
873 ASSERT_TRUE(LayerHasScrollbar(IV_CLIP, ACTIVE)); 875 ASSERT_TRUE(LayerHasScrollbar(IV_CLIP, ACTIVE));
874 ASSERT_TRUE(LayerHasScrollbar(IV_SCROLL, ACTIVE)); 876 ASSERT_TRUE(LayerHasScrollbar(IV_SCROLL, ACTIVE));
875 } 877 }
876 878
877 } // namespace 879 } // namespace
878 } // namespace cc 880 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698