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

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

Issue 2680953002: Remove GraphicsLayer::didScroll and directly call ScrollableArea::didScroll (Closed)
Patch Set: Incorporate reviewer comments: more tests, less bad tests Created 3 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 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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/layer_tree_host.h" 5 #include "cc/trees/layer_tree_host.h"
6 6
7 #include "base/location.h" 7 #include "base/location.h"
8 #include "base/memory/ptr_util.h" 8 #include "base/memory/ptr_util.h"
9 #include "base/memory/weak_ptr.h" 9 #include "base/memory/weak_ptr.h"
10 #include "base/single_thread_task_runner.h" 10 #include "base/single_thread_task_runner.h"
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 case 1: 140 case 1:
141 EXPECT_VECTOR_EQ(second_scroll_, ScrollTreeForLayer(scroll_layer) 141 EXPECT_VECTOR_EQ(second_scroll_, ScrollTreeForLayer(scroll_layer)
142 ->GetScrollOffsetBaseForTesting( 142 ->GetScrollOffsetBaseForTesting(
143 scroll_layer->id())); 143 scroll_layer->id()));
144 EXPECT_VECTOR_EQ(scroll_amount_, ScrollDelta(scroll_layer)); 144 EXPECT_VECTOR_EQ(scroll_amount_, ScrollDelta(scroll_layer));
145 EndTest(); 145 EndTest();
146 break; 146 break;
147 } 147 }
148 } 148 }
149 149
150 void DidScrollOuterViewport() { num_scrolls_++; } 150 void DidScrollOuterViewport(const gfx::ScrollOffset&) { num_scrolls_++; }
151 151
152 void AfterTest() override { EXPECT_EQ(1, num_scrolls_); } 152 void AfterTest() override { EXPECT_EQ(1, num_scrolls_); }
153 153
154 private: 154 private:
155 gfx::ScrollOffset initial_scroll_; 155 gfx::ScrollOffset initial_scroll_;
156 gfx::ScrollOffset second_scroll_; 156 gfx::ScrollOffset second_scroll_;
157 gfx::Vector2dF scroll_amount_; 157 gfx::Vector2dF scroll_amount_;
158 int num_scrolls_; 158 int num_scrolls_;
159 int outer_viewport_container_layer_id_; 159 int outer_viewport_container_layer_id_;
160 }; 160 };
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 // Third or later draw after second commit. 223 // Third or later draw after second commit.
224 EXPECT_GE(impl->SourceAnimationFrameNumberForTesting(), 3u); 224 EXPECT_GE(impl->SourceAnimationFrameNumberForTesting(), 3u);
225 EXPECT_VECTOR_EQ( 225 EXPECT_VECTOR_EQ(
226 gfx::ScrollOffsetWithDelta(initial_scroll_, 226 gfx::ScrollOffsetWithDelta(initial_scroll_,
227 scroll_amount_ + scroll_amount_), 227 scroll_amount_ + scroll_amount_),
228 scroll_layer_->scroll_offset()); 228 scroll_layer_->scroll_offset());
229 EndTest(); 229 EndTest();
230 } 230 }
231 } 231 }
232 232
233 void DidScrollOuterViewport() { num_scrolls_++; } 233 void DidScrollOuterViewport(const gfx::ScrollOffset&) { num_scrolls_++; }
234 234
235 void AfterTest() override { EXPECT_EQ(1, num_scrolls_); } 235 void AfterTest() override { EXPECT_EQ(1, num_scrolls_); }
236 236
237 private: 237 private:
238 gfx::ScrollOffset initial_scroll_; 238 gfx::ScrollOffset initial_scroll_;
239 gfx::Vector2dF scroll_amount_; 239 gfx::Vector2dF scroll_amount_;
240 int num_scrolls_; 240 int num_scrolls_;
241 scoped_refptr<Layer> scroll_layer_; 241 scoped_refptr<Layer> scroll_layer_;
242 }; 242 };
243 243
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
405 gfx::ScrollOffsetWithDelta(initial_scroll_, delta), 405 gfx::ScrollOffsetWithDelta(initial_scroll_, delta),
406 ScrollTreeForLayer(root_scroll_layer) 406 ScrollTreeForLayer(root_scroll_layer)
407 ->GetScrollOffsetBaseForTesting(root_scroll_layer->id())); 407 ->GetScrollOffsetBaseForTesting(root_scroll_layer->id()));
408 EndTest(); 408 EndTest();
409 } else { 409 } else {
410 // Commit for source frame 3 is aborted. 410 // Commit for source frame 3 is aborted.
411 NOTREACHED(); 411 NOTREACHED();
412 } 412 }
413 } 413 }
414 414
415 void DidScrollOuterViewport() { num_impl_scrolls_++; } 415 void DidScrollOuterViewport(const gfx::ScrollOffset&) { num_impl_scrolls_++; }
416 416
417 void AfterTest() override { 417 void AfterTest() override {
418 EXPECT_EQ(3, num_impl_scrolls_); 418 EXPECT_EQ(3, num_impl_scrolls_);
419 // Verify that the embedder sees aborted commits as real commits. 419 // Verify that the embedder sees aborted commits as real commits.
420 EXPECT_EQ(4, num_will_begin_main_frames_); 420 EXPECT_EQ(4, num_will_begin_main_frames_);
421 EXPECT_EQ(4, num_did_begin_main_frames_); 421 EXPECT_EQ(4, num_did_begin_main_frames_);
422 EXPECT_EQ(4, num_will_commits_); 422 EXPECT_EQ(4, num_will_commits_);
423 EXPECT_EQ(4, num_did_commits_); 423 EXPECT_EQ(4, num_did_commits_);
424 // ...but the compositor thread only sees two real ones. 424 // ...but the compositor thread only sees two real ones.
425 EXPECT_EQ(2, num_impl_commits_); 425 EXPECT_EQ(2, num_impl_commits_);
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
623 void BeginTest() override { PostSetNeedsCommitToMainThread(); } 623 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
624 624
625 void WillCommit() override { 625 void WillCommit() override {
626 // Keep the test committing (otherwise the early out for no update 626 // Keep the test committing (otherwise the early out for no update
627 // will stall the test). 627 // will stall the test).
628 if (layer_tree_host()->SourceFrameNumber() < 2) { 628 if (layer_tree_host()->SourceFrameNumber() < 2) {
629 layer_tree_host()->SetNeedsCommit(); 629 layer_tree_host()->SetNeedsCommit();
630 } 630 }
631 } 631 }
632 632
633 void DidScroll() { 633 void DidScroll(const gfx::ScrollOffset& offset) {
634 final_scroll_offset_ = expected_scroll_layer_->scroll_offset(); 634 final_scroll_offset_ = expected_scroll_layer_->scroll_offset();
635 EXPECT_VECTOR_EQ(offset, final_scroll_offset_);
635 } 636 }
636 637
637 void DidScrollOuterViewport() { num_scrolls_++; } 638 void DidScrollOuterViewport(const gfx::ScrollOffset&) { num_scrolls_++; }
638 639
639 void UpdateLayerTreeHost() override { 640 void UpdateLayerTreeHost() override {
640 EXPECT_VECTOR_EQ(gfx::Vector2d(), 641 EXPECT_VECTOR_EQ(gfx::Vector2d(),
641 expected_no_scroll_layer_->scroll_offset()); 642 expected_no_scroll_layer_->scroll_offset());
642 643
643 switch (layer_tree_host()->SourceFrameNumber()) { 644 switch (layer_tree_host()->SourceFrameNumber()) {
644 case 0: 645 case 0:
645 EXPECT_VECTOR_EQ(initial_offset_, 646 EXPECT_VECTOR_EQ(initial_offset_,
646 expected_scroll_layer_->scroll_offset()); 647 expected_scroll_layer_->scroll_offset());
647 break; 648 break;
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
916 gfx::ScrollOffsetWithDelta( 917 gfx::ScrollOffsetWithDelta(
917 initial_scroll_, main_thread_scroll_ + impl_thread_scroll1_), 918 initial_scroll_, main_thread_scroll_ + impl_thread_scroll1_),
918 ScrollTreeForLayer(scroll_layer) 919 ScrollTreeForLayer(scroll_layer)
919 ->GetScrollOffsetBaseForTesting(scroll_layer->id())); 920 ->GetScrollOffsetBaseForTesting(scroll_layer->id()));
920 EXPECT_VECTOR_EQ(impl_thread_scroll2_, ScrollDelta(scroll_layer)); 921 EXPECT_VECTOR_EQ(impl_thread_scroll2_, ScrollDelta(scroll_layer));
921 EndTest(); 922 EndTest();
922 break; 923 break;
923 } 924 }
924 } 925 }
925 926
926 void DidScrollOuterViewport() { num_scrolls_++; } 927 void DidScrollOuterViewport(const gfx::ScrollOffset&) { num_scrolls_++; }
927 928
928 void AfterTest() override { EXPECT_EQ(1, num_scrolls_); } 929 void AfterTest() override { EXPECT_EQ(1, num_scrolls_); }
929 930
930 private: 931 private:
931 gfx::ScrollOffset initial_scroll_; 932 gfx::ScrollOffset initial_scroll_;
932 gfx::Vector2dF main_thread_scroll_; 933 gfx::Vector2dF main_thread_scroll_;
933 gfx::Vector2dF impl_thread_scroll1_; 934 gfx::Vector2dF impl_thread_scroll1_;
934 gfx::Vector2dF impl_thread_scroll2_; 935 gfx::Vector2dF impl_thread_scroll2_;
935 int num_scrolls_; 936 int num_scrolls_;
936 }; 937 };
(...skipping 476 matching lines...) Expand 10 before | Expand all | Expand 10 after
1413 layer_tree_host()->SetRootLayer(NULL); 1414 layer_tree_host()->SetRootLayer(NULL);
1414 EndTest(); 1415 EndTest();
1415 return; 1416 return;
1416 } 1417 }
1417 layer->RemoveFromParent(); 1418 layer->RemoveFromParent();
1418 } 1419 }
1419 1420
1420 protected: 1421 protected:
1421 class FakeLayerScrollClient { 1422 class FakeLayerScrollClient {
1422 public: 1423 public:
1423 void DidScroll() { 1424 void DidScroll(const gfx::ScrollOffset&) { owner_->DidScroll(layer_); }
1424 owner_->DidScroll(layer_);
1425 }
1426 LayerTreeHostScrollTestLayerStructureChange* owner_; 1425 LayerTreeHostScrollTestLayerStructureChange* owner_;
1427 Layer* layer_; 1426 Layer* layer_;
1428 }; 1427 };
1429 1428
1430 Layer* CreateScrollLayer(Layer* parent, FakeLayerScrollClient* client) { 1429 Layer* CreateScrollLayer(Layer* parent, FakeLayerScrollClient* client) {
1431 scoped_refptr<PictureLayer> scroll_layer = 1430 scoped_refptr<PictureLayer> scroll_layer =
1432 PictureLayer::Create(&fake_content_layer_client_); 1431 PictureLayer::Create(&fake_content_layer_client_);
1433 scroll_layer->SetBounds(gfx::Size(110, 110)); 1432 scroll_layer->SetBounds(gfx::Size(110, 110));
1434 scroll_layer->SetPosition(gfx::PointF()); 1433 scroll_layer->SetPosition(gfx::PointF());
1435 scroll_layer->SetIsDrawable(true); 1434 scroll_layer->SetIsDrawable(true);
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
1565 // The scroll hasn't been consumed by the main thread. 1564 // The scroll hasn't been consumed by the main thread.
1566 EXPECT_VECTOR_EQ(scroll_amount_, ScrollDelta(scroll_layer)); 1565 EXPECT_VECTOR_EQ(scroll_amount_, ScrollDelta(scroll_layer));
1567 EXPECT_VECTOR_EQ(third_scroll_, ScrollTreeForLayer(scroll_layer) 1566 EXPECT_VECTOR_EQ(third_scroll_, ScrollTreeForLayer(scroll_layer)
1568 ->GetScrollOffsetBaseForTesting( 1567 ->GetScrollOffsetBaseForTesting(
1569 scroll_layer->id())); 1568 scroll_layer->id()));
1570 EndTest(); 1569 EndTest();
1571 break; 1570 break;
1572 } 1571 }
1573 } 1572 }
1574 1573
1575 void DidScrollOuterViewport() { num_scrolls_++; } 1574 void DidScrollOuterViewport(const gfx::ScrollOffset&) { num_scrolls_++; }
1576 1575
1577 void AfterTest() override { 1576 void AfterTest() override {
1578 EXPECT_EQ(3, num_commits_); 1577 EXPECT_EQ(3, num_commits_);
1579 EXPECT_EQ(1, num_scrolls_); 1578 EXPECT_EQ(1, num_scrolls_);
1580 } 1579 }
1581 1580
1582 private: 1581 private:
1583 void Scroll(LayerTreeHostImpl* impl) { 1582 void Scroll(LayerTreeHostImpl* impl) {
1584 LayerImpl* root = impl->active_tree()->root_layer_for_testing(); 1583 LayerImpl* root = impl->active_tree()->root_layer_for_testing();
1585 LayerImpl* scroll_layer = impl->OuterViewportScrollLayer(); 1584 LayerImpl* scroll_layer = impl->OuterViewportScrollLayer();
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
1784 EndTest(); 1783 EndTest();
1785 break; 1784 break;
1786 } 1785 }
1787 } 1786 }
1788 break; 1787 break;
1789 } 1788 }
1790 } 1789 }
1791 num_draws_++; 1790 num_draws_++;
1792 } 1791 }
1793 1792
1794 void DidScrollOuterViewport() { num_impl_scrolls_++; } 1793 void DidScrollOuterViewport(const gfx::ScrollOffset&) { num_impl_scrolls_++; }
1795 1794
1796 void AfterTest() override { 1795 void AfterTest() override {
1797 EXPECT_EQ(3, num_impl_scrolls_); 1796 EXPECT_EQ(3, num_impl_scrolls_);
1798 // Verify that the embedder sees aborted commits as real commits. 1797 // Verify that the embedder sees aborted commits as real commits.
1799 EXPECT_EQ(4, num_will_begin_main_frames_); 1798 EXPECT_EQ(4, num_will_begin_main_frames_);
1800 EXPECT_EQ(4, num_did_begin_main_frames_); 1799 EXPECT_EQ(4, num_did_begin_main_frames_);
1801 EXPECT_EQ(4, num_will_commits_); 1800 EXPECT_EQ(4, num_will_commits_);
1802 EXPECT_EQ(4, num_did_commits_); 1801 EXPECT_EQ(4, num_did_commits_);
1803 // ...but the compositor thread only sees two real ones. 1802 // ...but the compositor thread only sees two real ones.
1804 EXPECT_EQ(2, num_impl_commits_); 1803 EXPECT_EQ(2, num_impl_commits_);
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
2066 private: 2065 private:
2067 gfx::ScrollOffset initial_scroll_; 2066 gfx::ScrollOffset initial_scroll_;
2068 gfx::ScrollOffset second_scroll_; 2067 gfx::ScrollOffset second_scroll_;
2069 gfx::Vector2dF scroll_amount_; 2068 gfx::Vector2dF scroll_amount_;
2070 }; 2069 };
2071 2070
2072 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostScrollTestPropertyTreeUpdate); 2071 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostScrollTestPropertyTreeUpdate);
2073 2072
2074 } // namespace 2073 } // namespace
2075 } // namespace cc 2074 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/layer.cc ('k') | third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698