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

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

Issue 2144303002: Made layout viewport scroll updates from compositor work like ordinary layers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@rootScrollerOnCompositor
Patch Set: Initialize ScrollUpdateInfo's layer id in constructor Created 4 years, 5 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_host_impl_unittest.cc ('k') | cc/trees/property_tree.h » ('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 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/weak_ptr.h" 8 #include "base/memory/weak_ptr.h"
9 #include "base/single_thread_task_runner.h" 9 #include "base/single_thread_task_runner.h"
10 #include "base/threading/thread_task_runner_handle.h" 10 #include "base/threading/thread_task_runner_handle.h"
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 scroll_amount_(2, -1), 86 scroll_amount_(2, -1),
87 num_scrolls_(0) {} 87 num_scrolls_(0) {}
88 88
89 void BeginTest() override { 89 void BeginTest() override {
90 outer_viewport_container_layer_id_ = layer_tree_host() 90 outer_viewport_container_layer_id_ = layer_tree_host()
91 ->outer_viewport_scroll_layer() 91 ->outer_viewport_scroll_layer()
92 ->scroll_clip_layer() 92 ->scroll_clip_layer()
93 ->id(); 93 ->id();
94 layer_tree_host()->outer_viewport_scroll_layer()->SetScrollOffset( 94 layer_tree_host()->outer_viewport_scroll_layer()->SetScrollOffset(
95 initial_scroll_); 95 initial_scroll_);
96 layer_tree_host()->outer_viewport_scroll_layer()->set_did_scroll_callback(
97 base::Bind(&LayerTreeHostScrollTestScrollSimple::DidScrollOuterViewport,
98 base::Unretained(this)));
96 PostSetNeedsCommitToMainThread(); 99 PostSetNeedsCommitToMainThread();
97 } 100 }
98 101
99 void UpdateLayerTreeHost() override { 102 void UpdateLayerTreeHost() override {
100 Layer* scroll_layer = layer_tree_host()->outer_viewport_scroll_layer(); 103 Layer* scroll_layer = layer_tree_host()->outer_viewport_scroll_layer();
101 if (!layer_tree_host()->source_frame_number()) { 104 if (!layer_tree_host()->source_frame_number()) {
102 EXPECT_VECTOR_EQ(initial_scroll_, scroll_layer->scroll_offset()); 105 EXPECT_VECTOR_EQ(initial_scroll_, scroll_layer->scroll_offset());
103 } else { 106 } else {
104 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(initial_scroll_, 107 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(initial_scroll_,
105 scroll_amount_), 108 scroll_amount_),
(...skipping 25 matching lines...) Expand all
131 case 1: 134 case 1:
132 EXPECT_VECTOR_EQ(second_scroll_, ScrollTreeForLayer(scroll_layer) 135 EXPECT_VECTOR_EQ(second_scroll_, ScrollTreeForLayer(scroll_layer)
133 ->GetScrollOffsetBaseForTesting( 136 ->GetScrollOffsetBaseForTesting(
134 scroll_layer->id())); 137 scroll_layer->id()));
135 EXPECT_VECTOR_EQ(scroll_amount_, ScrollDelta(scroll_layer)); 138 EXPECT_VECTOR_EQ(scroll_amount_, ScrollDelta(scroll_layer));
136 EndTest(); 139 EndTest();
137 break; 140 break;
138 } 141 }
139 } 142 }
140 143
141 void ApplyViewportDeltas(const gfx::Vector2dF& inner_delta, 144 void DidScrollOuterViewport() { num_scrolls_++; }
142 const gfx::Vector2dF& outer_delta,
143 const gfx::Vector2dF& elastic_overscroll_delta,
144 float scale,
145 float top_controls_delta) override {
146 num_scrolls_++;
147 }
148 145
149 void AfterTest() override { EXPECT_EQ(1, num_scrolls_); } 146 void AfterTest() override { EXPECT_EQ(1, num_scrolls_); }
150 147
151 private: 148 private:
152 gfx::ScrollOffset initial_scroll_; 149 gfx::ScrollOffset initial_scroll_;
153 gfx::ScrollOffset second_scroll_; 150 gfx::ScrollOffset second_scroll_;
154 gfx::Vector2dF scroll_amount_; 151 gfx::Vector2dF scroll_amount_;
155 int num_scrolls_; 152 int num_scrolls_;
156 int outer_viewport_container_layer_id_; 153 int outer_viewport_container_layer_id_;
157 }; 154 };
158 155
159 MULTI_THREAD_TEST_F(LayerTreeHostScrollTestScrollSimple); 156 MULTI_THREAD_TEST_F(LayerTreeHostScrollTestScrollSimple);
160 157
161 class LayerTreeHostScrollTestScrollMultipleRedraw 158 class LayerTreeHostScrollTestScrollMultipleRedraw
162 : public LayerTreeHostScrollTest { 159 : public LayerTreeHostScrollTest {
163 public: 160 public:
164 LayerTreeHostScrollTestScrollMultipleRedraw() 161 LayerTreeHostScrollTestScrollMultipleRedraw()
165 : initial_scroll_(40, 10), scroll_amount_(-3, 17), num_scrolls_(0) {} 162 : initial_scroll_(40, 10), scroll_amount_(-3, 17), num_scrolls_(0) {}
166 163
167 void BeginTest() override { 164 void BeginTest() override {
168 scroll_layer_ = layer_tree_host()->outer_viewport_scroll_layer(); 165 scroll_layer_ = layer_tree_host()->outer_viewport_scroll_layer();
169 scroll_layer_->SetScrollOffset(initial_scroll_); 166 scroll_layer_->SetScrollOffset(initial_scroll_);
167 scroll_layer_->set_did_scroll_callback(base::Bind(
168 &LayerTreeHostScrollTestScrollMultipleRedraw::DidScrollOuterViewport,
169 base::Unretained(this)));
170 PostSetNeedsCommitToMainThread(); 170 PostSetNeedsCommitToMainThread();
171 } 171 }
172 172
173 void BeginCommitOnThread(LayerTreeHostImpl* impl) override { 173 void BeginCommitOnThread(LayerTreeHostImpl* impl) override {
174 switch (layer_tree_host()->source_frame_number()) { 174 switch (layer_tree_host()->source_frame_number()) {
175 case 0: 175 case 0:
176 EXPECT_VECTOR_EQ(initial_scroll_, scroll_layer_->scroll_offset()); 176 EXPECT_VECTOR_EQ(initial_scroll_, scroll_layer_->scroll_offset());
177 break; 177 break;
178 case 1: 178 case 1:
179 EXPECT_VECTOR_EQ( 179 EXPECT_VECTOR_EQ(
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 // Third or later draw after second commit. 217 // Third or later draw after second commit.
218 EXPECT_GE(impl->SourceAnimationFrameNumberForTesting(), 3u); 218 EXPECT_GE(impl->SourceAnimationFrameNumberForTesting(), 3u);
219 EXPECT_VECTOR_EQ( 219 EXPECT_VECTOR_EQ(
220 gfx::ScrollOffsetWithDelta(initial_scroll_, 220 gfx::ScrollOffsetWithDelta(initial_scroll_,
221 scroll_amount_ + scroll_amount_), 221 scroll_amount_ + scroll_amount_),
222 scroll_layer_->scroll_offset()); 222 scroll_layer_->scroll_offset());
223 EndTest(); 223 EndTest();
224 } 224 }
225 } 225 }
226 226
227 void ApplyViewportDeltas(const gfx::Vector2dF& inner_delta, 227 void DidScrollOuterViewport() { num_scrolls_++; }
228 const gfx::Vector2dF& outer_delta,
229 const gfx::Vector2dF& elastic_overscroll_delta,
230 float scale,
231 float top_controls_delta) override {
232 num_scrolls_++;
233 }
234 228
235 void AfterTest() override { EXPECT_EQ(1, num_scrolls_); } 229 void AfterTest() override { EXPECT_EQ(1, num_scrolls_); }
236 230
237 private: 231 private:
238 gfx::ScrollOffset initial_scroll_; 232 gfx::ScrollOffset initial_scroll_;
239 gfx::Vector2dF scroll_amount_; 233 gfx::Vector2dF scroll_amount_;
240 int num_scrolls_; 234 int num_scrolls_;
241 scoped_refptr<Layer> scroll_layer_; 235 scoped_refptr<Layer> scroll_layer_;
242 }; 236 };
243 237
(...skipping 10 matching lines...) Expand all
254 num_will_begin_main_frames_(0), 248 num_will_begin_main_frames_(0),
255 num_did_begin_main_frames_(0), 249 num_did_begin_main_frames_(0),
256 num_will_commits_(0), 250 num_will_commits_(0),
257 num_did_commits_(0), 251 num_did_commits_(0),
258 num_impl_commits_(0), 252 num_impl_commits_(0),
259 num_impl_scrolls_(0) {} 253 num_impl_scrolls_(0) {}
260 254
261 void BeginTest() override { 255 void BeginTest() override {
262 layer_tree_host()->outer_viewport_scroll_layer()->SetScrollOffset( 256 layer_tree_host()->outer_viewport_scroll_layer()->SetScrollOffset(
263 initial_scroll_); 257 initial_scroll_);
258 layer_tree_host()->outer_viewport_scroll_layer()->set_did_scroll_callback(
259 base::Bind(
260 &LayerTreeHostScrollTestScrollAbortedCommit::DidScrollOuterViewport,
261 base::Unretained(this)));
264 PostSetNeedsCommitToMainThread(); 262 PostSetNeedsCommitToMainThread();
265 } 263 }
266 264
267 void SetupTree() override { 265 void SetupTree() override {
268 LayerTreeHostScrollTest::SetupTree(); 266 LayerTreeHostScrollTest::SetupTree();
269 267
270 gfx::Size scroll_layer_bounds(200, 200); 268 gfx::Size scroll_layer_bounds(200, 200);
271 layer_tree_host()->outer_viewport_scroll_layer()->SetBounds( 269 layer_tree_host()->outer_viewport_scroll_layer()->SetBounds(
272 scroll_layer_bounds); 270 scroll_layer_bounds);
273 layer_tree_host()->SetPageScaleFactorAndLimits(1.f, 0.01f, 100.f); 271 layer_tree_host()->SetPageScaleFactorAndLimits(1.f, 0.01f, 100.f);
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
402 gfx::ScrollOffsetWithDelta(initial_scroll_, delta), 400 gfx::ScrollOffsetWithDelta(initial_scroll_, delta),
403 ScrollTreeForLayer(root_scroll_layer) 401 ScrollTreeForLayer(root_scroll_layer)
404 ->GetScrollOffsetBaseForTesting(root_scroll_layer->id())); 402 ->GetScrollOffsetBaseForTesting(root_scroll_layer->id()));
405 EndTest(); 403 EndTest();
406 } else { 404 } else {
407 // Commit for source frame 3 is aborted. 405 // Commit for source frame 3 is aborted.
408 NOTREACHED(); 406 NOTREACHED();
409 } 407 }
410 } 408 }
411 409
412 void ApplyViewportDeltas(const gfx::Vector2dF& inner_delta, 410 void DidScrollOuterViewport() { num_impl_scrolls_++; }
413 const gfx::Vector2dF& outer_delta,
414 const gfx::Vector2dF& elastic_overscroll_delta,
415 float scale,
416 float top_controls_delta) override {
417 num_impl_scrolls_++;
418 }
419 411
420 void AfterTest() override { 412 void AfterTest() override {
421 EXPECT_EQ(3, num_impl_scrolls_); 413 EXPECT_EQ(3, num_impl_scrolls_);
422 // Verify that the embedder sees aborted commits as real commits. 414 // Verify that the embedder sees aborted commits as real commits.
423 EXPECT_EQ(4, num_will_begin_main_frames_); 415 EXPECT_EQ(4, num_will_begin_main_frames_);
424 EXPECT_EQ(4, num_did_begin_main_frames_); 416 EXPECT_EQ(4, num_did_begin_main_frames_);
425 EXPECT_EQ(4, num_will_commits_); 417 EXPECT_EQ(4, num_will_commits_);
426 EXPECT_EQ(4, num_did_commits_); 418 EXPECT_EQ(4, num_did_commits_);
427 // ...but the compositor thread only sees two real ones. 419 // ...but the compositor thread only sees two real ones.
428 EXPECT_EQ(2, num_impl_commits_); 420 EXPECT_EQ(2, num_impl_commits_);
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
609 } else { 601 } else {
610 expected_scroll_layer_ = root_scroll_layer_; 602 expected_scroll_layer_ = root_scroll_layer_;
611 expected_no_scroll_layer_ = child_layer_; 603 expected_no_scroll_layer_ = child_layer_;
612 } 604 }
613 605
614 expected_scroll_layer_->SetScrollOffset(initial_offset_); 606 expected_scroll_layer_->SetScrollOffset(initial_offset_);
615 607
616 layer_tree_host()->SetRootLayer(root_layer); 608 layer_tree_host()->SetRootLayer(root_layer);
617 LayerTreeTest::SetupTree(); 609 LayerTreeTest::SetupTree();
618 fake_content_layer_client_.set_bounds(root_layer->bounds()); 610 fake_content_layer_client_.set_bounds(root_layer->bounds());
611
612 layer_tree_host()->outer_viewport_scroll_layer()->set_did_scroll_callback(
613 base::Bind(
614 &LayerTreeHostScrollTestCaseWithChild::DidScrollOuterViewport,
615 base::Unretained(this)));
619 } 616 }
620 617
621 void BeginTest() override { PostSetNeedsCommitToMainThread(); } 618 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
622 619
623 void WillCommit() override { 620 void WillCommit() override {
624 // Keep the test committing (otherwise the early out for no update 621 // Keep the test committing (otherwise the early out for no update
625 // will stall the test). 622 // will stall the test).
626 if (layer_tree_host()->source_frame_number() < 2) { 623 if (layer_tree_host()->source_frame_number() < 2) {
627 layer_tree_host()->SetNeedsCommit(); 624 layer_tree_host()->SetNeedsCommit();
628 } 625 }
629 } 626 }
630 627
631 void DidScroll() { 628 void DidScroll() {
632 final_scroll_offset_ = expected_scroll_layer_->scroll_offset(); 629 final_scroll_offset_ = expected_scroll_layer_->scroll_offset();
633 } 630 }
634 631
635 void ApplyViewportDeltas(const gfx::Vector2dF& inner_delta, 632 void DidScrollOuterViewport() { num_scrolls_++; }
636 const gfx::Vector2dF& outer_delta,
637 const gfx::Vector2dF& elastic_overscroll_delta,
638 float scale,
639 float top_controls_delta) override {
640 num_scrolls_++;
641 }
642 633
643 void UpdateLayerTreeHost() override { 634 void UpdateLayerTreeHost() override {
644 EXPECT_VECTOR_EQ(gfx::Vector2d(), 635 EXPECT_VECTOR_EQ(gfx::Vector2d(),
645 expected_no_scroll_layer_->scroll_offset()); 636 expected_no_scroll_layer_->scroll_offset());
646 637
647 switch (layer_tree_host()->source_frame_number()) { 638 switch (layer_tree_host()->source_frame_number()) {
648 case 0: 639 case 0:
649 EXPECT_VECTOR_EQ(initial_offset_, 640 EXPECT_VECTOR_EQ(initial_offset_,
650 expected_scroll_layer_->scroll_offset()); 641 expected_scroll_layer_->scroll_offset());
651 break; 642 break;
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
875 num_scrolls_(0) {} 866 num_scrolls_(0) {}
876 867
877 void SetupTree() override { 868 void SetupTree() override {
878 LayerTreeHostScrollTest::SetupTree(); 869 LayerTreeHostScrollTest::SetupTree();
879 layer_tree_host()->SetPageScaleFactorAndLimits(1.f, 0.01f, 100.f); 870 layer_tree_host()->SetPageScaleFactorAndLimits(1.f, 0.01f, 100.f);
880 } 871 }
881 872
882 void BeginTest() override { 873 void BeginTest() override {
883 layer_tree_host()->outer_viewport_scroll_layer()->SetScrollOffset( 874 layer_tree_host()->outer_viewport_scroll_layer()->SetScrollOffset(
884 initial_scroll_); 875 initial_scroll_);
876 layer_tree_host()->outer_viewport_scroll_layer()->set_did_scroll_callback(
877 base::Bind(&LayerTreeHostScrollTestSimple::DidScrollOuterViewport,
878 base::Unretained(this)));
885 PostSetNeedsCommitToMainThread(); 879 PostSetNeedsCommitToMainThread();
886 } 880 }
887 881
888 void UpdateLayerTreeHost() override { 882 void UpdateLayerTreeHost() override {
889 Layer* scroll_layer = layer_tree_host()->outer_viewport_scroll_layer(); 883 Layer* scroll_layer = layer_tree_host()->outer_viewport_scroll_layer();
890 if (!layer_tree_host()->source_frame_number()) { 884 if (!layer_tree_host()->source_frame_number()) {
891 EXPECT_VECTOR_EQ(initial_scroll_, scroll_layer->scroll_offset()); 885 EXPECT_VECTOR_EQ(initial_scroll_, scroll_layer->scroll_offset());
892 } else { 886 } else {
893 EXPECT_VECTOR_EQ( 887 EXPECT_VECTOR_EQ(
894 scroll_layer->scroll_offset(), 888 scroll_layer->scroll_offset(),
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
962 gfx::ScrollOffsetWithDelta( 956 gfx::ScrollOffsetWithDelta(
963 initial_scroll_, main_thread_scroll_ + impl_thread_scroll1_), 957 initial_scroll_, main_thread_scroll_ + impl_thread_scroll1_),
964 ScrollTreeForLayer(scroll_layer) 958 ScrollTreeForLayer(scroll_layer)
965 ->GetScrollOffsetBaseForTesting(scroll_layer->id())); 959 ->GetScrollOffsetBaseForTesting(scroll_layer->id()));
966 EXPECT_VECTOR_EQ(impl_thread_scroll2_, ScrollDelta(scroll_layer)); 960 EXPECT_VECTOR_EQ(impl_thread_scroll2_, ScrollDelta(scroll_layer));
967 EndTest(); 961 EndTest();
968 break; 962 break;
969 } 963 }
970 } 964 }
971 965
972 void ApplyViewportDeltas(const gfx::Vector2dF& inner_delta, 966 void DidScrollOuterViewport() { num_scrolls_++; }
973 const gfx::Vector2dF& outer_delta,
974 const gfx::Vector2dF& elastic_overscroll_delta,
975 float scale,
976 float top_controls_delta) override {
977 num_scrolls_++;
978 }
979 967
980 void AfterTest() override { EXPECT_EQ(1, num_scrolls_); } 968 void AfterTest() override { EXPECT_EQ(1, num_scrolls_); }
981 969
982 private: 970 private:
983 gfx::ScrollOffset initial_scroll_; 971 gfx::ScrollOffset initial_scroll_;
984 gfx::Vector2dF main_thread_scroll_; 972 gfx::Vector2dF main_thread_scroll_;
985 gfx::Vector2dF impl_thread_scroll1_; 973 gfx::Vector2dF impl_thread_scroll1_;
986 gfx::Vector2dF impl_thread_scroll2_; 974 gfx::Vector2dF impl_thread_scroll2_;
987 int num_scrolls_; 975 int num_scrolls_;
988 }; 976 };
(...skipping 543 matching lines...) Expand 10 before | Expand all | Expand 10 after
1532 settings->main_frame_before_activation_enabled = true; 1520 settings->main_frame_before_activation_enabled = true;
1533 } 1521 }
1534 1522
1535 void BeginTest() override { 1523 void BeginTest() override {
1536 outer_viewport_container_layer_id_ = layer_tree_host() 1524 outer_viewport_container_layer_id_ = layer_tree_host()
1537 ->outer_viewport_scroll_layer() 1525 ->outer_viewport_scroll_layer()
1538 ->scroll_clip_layer() 1526 ->scroll_clip_layer()
1539 ->id(); 1527 ->id();
1540 layer_tree_host()->outer_viewport_scroll_layer()->SetScrollOffset( 1528 layer_tree_host()->outer_viewport_scroll_layer()->SetScrollOffset(
1541 initial_scroll_); 1529 initial_scroll_);
1530 layer_tree_host()->outer_viewport_scroll_layer()->set_did_scroll_callback(
1531 base::Bind(&LayerTreeHostScrollTestScrollMFBA::DidScrollOuterViewport,
1532 base::Unretained(this)));
1542 PostSetNeedsCommitToMainThread(); 1533 PostSetNeedsCommitToMainThread();
1543 } 1534 }
1544 1535
1545 void StartCommitOnImpl() override { 1536 void StartCommitOnImpl() override {
1546 switch (num_commits_) { 1537 switch (num_commits_) {
1547 case 1: 1538 case 1:
1548 // Ask for commit here because activation (and draw) will be blocked. 1539 // Ask for commit here because activation (and draw) will be blocked.
1549 GetProxyImplForTest()->SetNeedsCommitOnImpl(); 1540 GetProxyImplForTest()->SetNeedsCommitOnImpl();
1550 // Block activation after second commit until third commit is ready. 1541 // Block activation after second commit until third commit is ready.
1551 GetProxyImplForTest()->BlockNotifyReadyToActivateForTesting(true); 1542 GetProxyImplForTest()->BlockNotifyReadyToActivateForTesting(true);
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
1606 // The scroll hasn't been consumed by the main thread. 1597 // The scroll hasn't been consumed by the main thread.
1607 EXPECT_VECTOR_EQ(scroll_amount_, ScrollDelta(scroll_layer)); 1598 EXPECT_VECTOR_EQ(scroll_amount_, ScrollDelta(scroll_layer));
1608 EXPECT_VECTOR_EQ(third_scroll_, ScrollTreeForLayer(scroll_layer) 1599 EXPECT_VECTOR_EQ(third_scroll_, ScrollTreeForLayer(scroll_layer)
1609 ->GetScrollOffsetBaseForTesting( 1600 ->GetScrollOffsetBaseForTesting(
1610 scroll_layer->id())); 1601 scroll_layer->id()));
1611 EndTest(); 1602 EndTest();
1612 break; 1603 break;
1613 } 1604 }
1614 } 1605 }
1615 1606
1616 void ApplyViewportDeltas(const gfx::Vector2dF& inner_delta, 1607 void DidScrollOuterViewport() { num_scrolls_++; }
1617 const gfx::Vector2dF& outer_delta,
1618 const gfx::Vector2dF& elastic_overscroll_delta,
1619 float scale,
1620 float top_controls_delta) override {
1621 num_scrolls_++;
1622 }
1623 1608
1624 void AfterTest() override { 1609 void AfterTest() override {
1625 EXPECT_EQ(3, num_commits_); 1610 EXPECT_EQ(3, num_commits_);
1626 EXPECT_EQ(1, num_scrolls_); 1611 EXPECT_EQ(1, num_scrolls_);
1627 } 1612 }
1628 1613
1629 private: 1614 private:
1630 void Scroll(LayerTreeHostImpl* impl) { 1615 void Scroll(LayerTreeHostImpl* impl) {
1631 LayerImpl* root = impl->active_tree()->root_layer_for_testing(); 1616 LayerImpl* root = impl->active_tree()->root_layer_for_testing();
1632 LayerImpl* scroll_layer = impl->OuterViewportScrollLayer(); 1617 LayerImpl* scroll_layer = impl->OuterViewportScrollLayer();
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
1664 num_impl_scrolls_(0), 1649 num_impl_scrolls_(0),
1665 num_draws_(0) {} 1650 num_draws_(0) {}
1666 1651
1667 void InitializeSettings(LayerTreeSettings* settings) override { 1652 void InitializeSettings(LayerTreeSettings* settings) override {
1668 settings->main_frame_before_activation_enabled = true; 1653 settings->main_frame_before_activation_enabled = true;
1669 } 1654 }
1670 1655
1671 void BeginTest() override { 1656 void BeginTest() override {
1672 layer_tree_host()->outer_viewport_scroll_layer()->SetScrollOffset( 1657 layer_tree_host()->outer_viewport_scroll_layer()->SetScrollOffset(
1673 initial_scroll_); 1658 initial_scroll_);
1659 layer_tree_host()->outer_viewport_scroll_layer()->set_did_scroll_callback(
1660 base::Bind(&LayerTreeHostScrollTestScrollAbortedCommitMFBA::
1661 DidScrollOuterViewport,
1662 base::Unretained(this)));
1674 PostSetNeedsCommitToMainThread(); 1663 PostSetNeedsCommitToMainThread();
1675 } 1664 }
1676 1665
1677 void SetupTree() override { 1666 void SetupTree() override {
1678 LayerTreeHostScrollTest::SetupTree(); 1667 LayerTreeHostScrollTest::SetupTree();
1679 1668
1680 gfx::Size scroll_layer_bounds(200, 200); 1669 gfx::Size scroll_layer_bounds(200, 200);
1681 layer_tree_host()->outer_viewport_scroll_layer()->SetBounds( 1670 layer_tree_host()->outer_viewport_scroll_layer()->SetBounds(
1682 scroll_layer_bounds); 1671 scroll_layer_bounds);
1683 layer_tree_host()->SetPageScaleFactorAndLimits(1.f, 0.01f, 100.f); 1672 layer_tree_host()->SetPageScaleFactorAndLimits(1.f, 0.01f, 100.f);
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
1827 EndTest(); 1816 EndTest();
1828 break; 1817 break;
1829 } 1818 }
1830 } 1819 }
1831 break; 1820 break;
1832 } 1821 }
1833 } 1822 }
1834 num_draws_++; 1823 num_draws_++;
1835 } 1824 }
1836 1825
1837 void ApplyViewportDeltas(const gfx::Vector2dF& inner_delta, 1826 void DidScrollOuterViewport() { num_impl_scrolls_++; }
1838 const gfx::Vector2dF& outer_delta,
1839 const gfx::Vector2dF& elastic_overscroll_delta,
1840 float scale,
1841 float top_controls_delta) override {
1842 num_impl_scrolls_++;
1843 }
1844 1827
1845 void AfterTest() override { 1828 void AfterTest() override {
1846 EXPECT_EQ(3, num_impl_scrolls_); 1829 EXPECT_EQ(3, num_impl_scrolls_);
1847 // Verify that the embedder sees aborted commits as real commits. 1830 // Verify that the embedder sees aborted commits as real commits.
1848 EXPECT_EQ(4, num_will_begin_main_frames_); 1831 EXPECT_EQ(4, num_will_begin_main_frames_);
1849 EXPECT_EQ(4, num_did_begin_main_frames_); 1832 EXPECT_EQ(4, num_did_begin_main_frames_);
1850 EXPECT_EQ(4, num_will_commits_); 1833 EXPECT_EQ(4, num_will_commits_);
1851 EXPECT_EQ(4, num_did_commits_); 1834 EXPECT_EQ(4, num_did_commits_);
1852 // ...but the compositor thread only sees two real ones. 1835 // ...but the compositor thread only sees two real ones.
1853 EXPECT_EQ(2, num_impl_commits_); 1836 EXPECT_EQ(2, num_impl_commits_);
(...skipping 14 matching lines...) Expand all
1868 int num_impl_commits_; 1851 int num_impl_commits_;
1869 int num_aborted_commits_; 1852 int num_aborted_commits_;
1870 int num_impl_scrolls_; 1853 int num_impl_scrolls_;
1871 int num_draws_; 1854 int num_draws_;
1872 }; 1855 };
1873 1856
1874 MULTI_THREAD_TEST_F(LayerTreeHostScrollTestScrollAbortedCommitMFBA); 1857 MULTI_THREAD_TEST_F(LayerTreeHostScrollTestScrollAbortedCommitMFBA);
1875 1858
1876 } // namespace 1859 } // namespace
1877 } // namespace cc 1860 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_impl_unittest.cc ('k') | cc/trees/property_tree.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698