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

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

Issue 895853003: Update from https://crrev.com/314320 (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: 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
« no previous file with comments | « cc/trees/layer_tree_host_unittest_picture.cc ('k') | cc/trees/layer_tree_impl.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/memory/weak_ptr.h" 7 #include "base/memory/weak_ptr.h"
8 #include "cc/layers/layer.h" 8 #include "cc/layers/layer.h"
9 #include "cc/layers/layer_impl.h" 9 #include "cc/layers/layer_impl.h"
10 #include "cc/layers/picture_layer.h" 10 #include "cc/layers/picture_layer.h"
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 LayerImpl* scroll_layer = root->children()[0]; 70 LayerImpl* scroll_layer = root->children()[0];
71 EXPECT_VECTOR_EQ(gfx::Vector2d(), scroll_layer->ScrollDelta()); 71 EXPECT_VECTOR_EQ(gfx::Vector2d(), scroll_layer->ScrollDelta());
72 72
73 scroll_layer->SetScrollClipLayer(root->id()); 73 scroll_layer->SetScrollClipLayer(root->id());
74 scroll_layer->SetBounds( 74 scroll_layer->SetBounds(
75 gfx::Size(root->bounds().width() + 100, root->bounds().height() + 100)); 75 gfx::Size(root->bounds().width() + 100, root->bounds().height() + 100));
76 scroll_layer->ScrollBy(scroll_amount_); 76 scroll_layer->ScrollBy(scroll_amount_);
77 77
78 switch (impl->active_tree()->source_frame_number()) { 78 switch (impl->active_tree()->source_frame_number()) {
79 case 0: 79 case 0:
80 EXPECT_VECTOR_EQ(initial_scroll_, scroll_layer->scroll_offset()); 80 EXPECT_VECTOR_EQ(initial_scroll_, scroll_layer->BaseScrollOffset());
81 EXPECT_VECTOR_EQ(scroll_amount_, scroll_layer->ScrollDelta()); 81 EXPECT_VECTOR_EQ(scroll_amount_, scroll_layer->ScrollDelta());
82 PostSetNeedsCommitToMainThread(); 82 PostSetNeedsCommitToMainThread();
83 break; 83 break;
84 case 1: 84 case 1:
85 EXPECT_VECTOR_EQ(scroll_layer->scroll_offset(), second_scroll_); 85 EXPECT_VECTOR_EQ(scroll_layer->BaseScrollOffset(), second_scroll_);
86 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), scroll_amount_); 86 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), scroll_amount_);
87 EndTest(); 87 EndTest();
88 break; 88 break;
89 } 89 }
90 } 90 }
91 91
92 void ApplyViewportDeltas(const gfx::Vector2d& scroll_delta, 92 void ApplyViewportDeltas(const gfx::Vector2d& scroll_delta,
93 float scale, 93 float scale,
94 float top_controls_delta) override { 94 float top_controls_delta) override {
95 num_scrolls_++; 95 num_scrolls_++;
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 void DrawLayersOnThread(LayerTreeHostImpl* impl) override { 150 void DrawLayersOnThread(LayerTreeHostImpl* impl) override {
151 LayerImpl* scroll_layer = 151 LayerImpl* scroll_layer =
152 impl->active_tree()->LayerById(scroll_layer_->id()); 152 impl->active_tree()->LayerById(scroll_layer_->id());
153 if (impl->active_tree()->source_frame_number() == 0 && 153 if (impl->active_tree()->source_frame_number() == 0 &&
154 impl->SourceAnimationFrameNumber() == 1) { 154 impl->SourceAnimationFrameNumber() == 1) {
155 // First draw after first commit. 155 // First draw after first commit.
156 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), gfx::Vector2d()); 156 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), gfx::Vector2d());
157 scroll_layer->ScrollBy(scroll_amount_); 157 scroll_layer->ScrollBy(scroll_amount_);
158 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), scroll_amount_); 158 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), scroll_amount_);
159 159
160 EXPECT_VECTOR_EQ(scroll_layer->scroll_offset(), initial_scroll_); 160 EXPECT_VECTOR_EQ(scroll_layer->BaseScrollOffset(), initial_scroll_);
161 PostSetNeedsRedrawToMainThread(); 161 PostSetNeedsRedrawToMainThread();
162 } else if (impl->active_tree()->source_frame_number() == 0 && 162 } else if (impl->active_tree()->source_frame_number() == 0 &&
163 impl->SourceAnimationFrameNumber() == 2) { 163 impl->SourceAnimationFrameNumber() == 2) {
164 // Second draw after first commit. 164 // Second draw after first commit.
165 EXPECT_EQ(scroll_layer->ScrollDelta(), scroll_amount_); 165 EXPECT_EQ(scroll_layer->ScrollDelta(), scroll_amount_);
166 scroll_layer->ScrollBy(scroll_amount_); 166 scroll_layer->ScrollBy(scroll_amount_);
167 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), 167 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(),
168 scroll_amount_ + scroll_amount_); 168 scroll_amount_ + scroll_amount_);
169 169
170 EXPECT_VECTOR_EQ(scroll_layer_->scroll_offset(), initial_scroll_); 170 EXPECT_VECTOR_EQ(scroll_layer_->scroll_offset(), initial_scroll_);
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
296 void DrawLayersOnThread(LayerTreeHostImpl* impl) override { 296 void DrawLayersOnThread(LayerTreeHostImpl* impl) override {
297 LayerImpl* root_scroll_layer = 297 LayerImpl* root_scroll_layer =
298 impl->active_tree()->root_layer()->children()[0]; 298 impl->active_tree()->root_layer()->children()[0];
299 299
300 if (impl->active_tree()->source_frame_number() == 0 && 300 if (impl->active_tree()->source_frame_number() == 0 &&
301 impl->SourceAnimationFrameNumber() == 1) { 301 impl->SourceAnimationFrameNumber() == 1) {
302 // First draw 302 // First draw
303 EXPECT_VECTOR_EQ(root_scroll_layer->ScrollDelta(), gfx::Vector2d()); 303 EXPECT_VECTOR_EQ(root_scroll_layer->ScrollDelta(), gfx::Vector2d());
304 root_scroll_layer->ScrollBy(impl_scroll_); 304 root_scroll_layer->ScrollBy(impl_scroll_);
305 EXPECT_VECTOR_EQ(root_scroll_layer->ScrollDelta(), impl_scroll_); 305 EXPECT_VECTOR_EQ(root_scroll_layer->ScrollDelta(), impl_scroll_);
306 EXPECT_VECTOR_EQ(root_scroll_layer->scroll_offset(), initial_scroll_); 306 EXPECT_VECTOR_EQ(root_scroll_layer->BaseScrollOffset(), initial_scroll_);
307 307
308 EXPECT_EQ(1.f, impl->active_tree()->page_scale_delta()); 308 EXPECT_EQ(1.f, impl->active_tree()->page_scale_delta());
309 EXPECT_EQ(1.f, impl->active_tree()->current_page_scale_factor()); 309 EXPECT_EQ(1.f, impl->active_tree()->current_page_scale_factor());
310 impl->SetPageScaleOnActiveTree(impl_scale_); 310 impl->SetPageScaleOnActiveTree(impl_scale_);
311 EXPECT_EQ(impl_scale_, impl->active_tree()->page_scale_delta()); 311 EXPECT_EQ(impl_scale_, impl->active_tree()->page_scale_delta());
312 EXPECT_EQ(impl_scale_, impl->active_tree()->current_page_scale_factor()); 312 EXPECT_EQ(impl_scale_, impl->active_tree()->current_page_scale_factor());
313 313
314 // To simplify the testing flow, don't redraw here, just commit. 314 // To simplify the testing flow, don't redraw here, just commit.
315 impl->SetNeedsCommit(); 315 impl->SetNeedsCommit();
316 } else if (impl->active_tree()->source_frame_number() == 0 && 316 } else if (impl->active_tree()->source_frame_number() == 0 &&
317 impl->SourceAnimationFrameNumber() == 2) { 317 impl->SourceAnimationFrameNumber() == 2) {
318 // Test a second draw after an aborted commit. 318 // Test a second draw after an aborted commit.
319 // The scroll/scale values should be baked into the offset/scale factor 319 // The scroll/scale values should be baked into the offset/scale factor
320 // since the main thread consumed but aborted the begin frame. 320 // since the main thread consumed but aborted the begin frame.
321 EXPECT_VECTOR_EQ(root_scroll_layer->ScrollDelta(), gfx::Vector2d()); 321 EXPECT_VECTOR_EQ(root_scroll_layer->ScrollDelta(), gfx::Vector2d());
322 root_scroll_layer->ScrollBy(impl_scroll_); 322 root_scroll_layer->ScrollBy(impl_scroll_);
323 EXPECT_VECTOR_EQ(root_scroll_layer->ScrollDelta(), impl_scroll_); 323 EXPECT_VECTOR_EQ(root_scroll_layer->ScrollDelta(), impl_scroll_);
324 EXPECT_VECTOR_EQ( 324 EXPECT_VECTOR_EQ(
325 root_scroll_layer->scroll_offset(), 325 root_scroll_layer->BaseScrollOffset(),
326 gfx::ScrollOffsetWithDelta(initial_scroll_, impl_scroll_)); 326 gfx::ScrollOffsetWithDelta(initial_scroll_, impl_scroll_));
327 327
328 EXPECT_EQ(1.f, impl->active_tree()->page_scale_delta()); 328 EXPECT_EQ(1.f, impl->active_tree()->page_scale_delta());
329 EXPECT_EQ(impl_scale_, impl->active_tree()->current_page_scale_factor()); 329 EXPECT_EQ(impl_scale_, impl->active_tree()->current_page_scale_factor());
330 impl->SetPageScaleOnActiveTree(impl_scale_ * impl_scale_); 330 impl->SetPageScaleOnActiveTree(impl_scale_ * impl_scale_);
331 EXPECT_EQ(impl_scale_, impl->active_tree()->page_scale_delta()); 331 EXPECT_EQ(impl_scale_, impl->active_tree()->page_scale_delta());
332 EXPECT_EQ(impl_scale_ * impl_scale_, 332 EXPECT_EQ(impl_scale_ * impl_scale_,
333 impl->active_tree()->current_page_scale_factor()); 333 impl->active_tree()->current_page_scale_factor());
334 334
335 impl->SetNeedsCommit(); 335 impl->SetNeedsCommit();
336 } else if (impl->active_tree()->source_frame_number() == 1) { 336 } else if (impl->active_tree()->source_frame_number() == 1) {
337 // Commit for source frame 1 is aborted. 337 // Commit for source frame 1 is aborted.
338 NOTREACHED(); 338 NOTREACHED();
339 } else if (impl->active_tree()->source_frame_number() == 2 && 339 } else if (impl->active_tree()->source_frame_number() == 2 &&
340 impl->SourceAnimationFrameNumber() == 3) { 340 impl->SourceAnimationFrameNumber() == 3) {
341 // Third draw after the second full commit. 341 // Third draw after the second full commit.
342 EXPECT_EQ(root_scroll_layer->ScrollDelta(), gfx::Vector2d()); 342 EXPECT_EQ(root_scroll_layer->ScrollDelta(), gfx::Vector2d());
343 root_scroll_layer->ScrollBy(impl_scroll_); 343 root_scroll_layer->ScrollBy(impl_scroll_);
344 impl->SetNeedsCommit(); 344 impl->SetNeedsCommit();
345 EXPECT_VECTOR_EQ(root_scroll_layer->ScrollDelta(), impl_scroll_); 345 EXPECT_VECTOR_EQ(root_scroll_layer->ScrollDelta(), impl_scroll_);
346 gfx::Vector2dF delta = impl_scroll_ + impl_scroll_ + second_main_scroll_; 346 gfx::Vector2dF delta = impl_scroll_ + impl_scroll_ + second_main_scroll_;
347 EXPECT_VECTOR_EQ(root_scroll_layer->scroll_offset(), 347 EXPECT_VECTOR_EQ(root_scroll_layer->BaseScrollOffset(),
348 gfx::ScrollOffsetWithDelta(initial_scroll_, delta)); 348 gfx::ScrollOffsetWithDelta(initial_scroll_, delta));
349 } else if (impl->active_tree()->source_frame_number() == 2 && 349 } else if (impl->active_tree()->source_frame_number() == 2 &&
350 impl->SourceAnimationFrameNumber() == 4) { 350 impl->SourceAnimationFrameNumber() == 4) {
351 // Final draw after the second aborted commit. 351 // Final draw after the second aborted commit.
352 EXPECT_VECTOR_EQ(root_scroll_layer->ScrollDelta(), gfx::Vector2d()); 352 EXPECT_VECTOR_EQ(root_scroll_layer->ScrollDelta(), gfx::Vector2d());
353 gfx::Vector2dF delta = 353 gfx::Vector2dF delta =
354 impl_scroll_ + impl_scroll_ + impl_scroll_ + second_main_scroll_; 354 impl_scroll_ + impl_scroll_ + impl_scroll_ + second_main_scroll_;
355 EXPECT_VECTOR_EQ(root_scroll_layer->scroll_offset(), 355 EXPECT_VECTOR_EQ(root_scroll_layer->BaseScrollOffset(),
356 gfx::ScrollOffsetWithDelta(initial_scroll_, delta)); 356 gfx::ScrollOffsetWithDelta(initial_scroll_, delta));
357 EndTest(); 357 EndTest();
358 } else { 358 } else {
359 // Commit for source frame 3 is aborted. 359 // Commit for source frame 3 is aborted.
360 NOTREACHED(); 360 NOTREACHED();
361 } 361 }
362 } 362 }
363 363
364 void ApplyViewportDeltas(const gfx::Vector2d& scroll_delta, 364 void ApplyViewportDeltas(const gfx::Vector2d& scroll_delta,
365 float scale, 365 float scale,
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
417 void BeginTest() override { PostSetNeedsCommitToMainThread(); } 417 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
418 418
419 void DrawLayersOnThread(LayerTreeHostImpl* impl) override { 419 void DrawLayersOnThread(LayerTreeHostImpl* impl) override {
420 LayerImpl* root = impl->active_tree()->root_layer(); 420 LayerImpl* root = impl->active_tree()->root_layer();
421 LayerImpl* scroll_layer = root->children()[0]; 421 LayerImpl* scroll_layer = root->children()[0];
422 422
423 // Check that a fractional scroll delta is correctly accumulated over 423 // Check that a fractional scroll delta is correctly accumulated over
424 // multiple commits. 424 // multiple commits.
425 switch (impl->active_tree()->source_frame_number()) { 425 switch (impl->active_tree()->source_frame_number()) {
426 case 0: 426 case 0:
427 EXPECT_VECTOR_EQ(scroll_layer->scroll_offset(), gfx::Vector2d(0, 0)); 427 EXPECT_VECTOR_EQ(scroll_layer->BaseScrollOffset(), gfx::Vector2d(0, 0));
428 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), gfx::Vector2d(0, 0)); 428 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), gfx::Vector2d(0, 0));
429 PostSetNeedsCommitToMainThread(); 429 PostSetNeedsCommitToMainThread();
430 break; 430 break;
431 case 1: 431 case 1:
432 EXPECT_VECTOR_EQ(scroll_layer->scroll_offset(), 432 EXPECT_VECTOR_EQ(scroll_layer->BaseScrollOffset(),
433 gfx::ToFlooredVector2d(scroll_amount_)); 433 gfx::ToFlooredVector2d(scroll_amount_));
434 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), 434 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(),
435 gfx::Vector2dF(fmod(scroll_amount_.x(), 1.0f), 0.0f)); 435 gfx::Vector2dF(fmod(scroll_amount_.x(), 1.0f), 0.0f));
436 PostSetNeedsCommitToMainThread(); 436 PostSetNeedsCommitToMainThread();
437 break; 437 break;
438 case 2: 438 case 2:
439 EXPECT_VECTOR_EQ( 439 EXPECT_VECTOR_EQ(
440 scroll_layer->scroll_offset(), 440 scroll_layer->BaseScrollOffset(),
441 gfx::ToFlooredVector2d(scroll_amount_ + scroll_amount_)); 441 gfx::ToFlooredVector2d(scroll_amount_ + scroll_amount_));
442 EXPECT_VECTOR_EQ( 442 EXPECT_VECTOR_EQ(
443 scroll_layer->ScrollDelta(), 443 scroll_layer->ScrollDelta(),
444 gfx::Vector2dF(fmod(2.0f * scroll_amount_.x(), 1.0f), 0.0f)); 444 gfx::Vector2dF(fmod(2.0f * scroll_amount_.x(), 1.0f), 0.0f));
445 EndTest(); 445 EndTest();
446 break; 446 break;
447 } 447 }
448 scroll_layer->ScrollBy(scroll_amount_); 448 scroll_layer->ScrollBy(scroll_amount_);
449 } 449 }
450 450
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
591 InputHandler::ScrollStatus status = impl->ScrollBegin( 591 InputHandler::ScrollStatus status = impl->ScrollBegin(
592 gfx::ToCeiledPoint(expected_scroll_layer_impl->position() - 592 gfx::ToCeiledPoint(expected_scroll_layer_impl->position() -
593 gfx::Vector2dF(0.5f, 0.5f)), 593 gfx::Vector2dF(0.5f, 0.5f)),
594 InputHandler::Gesture); 594 InputHandler::Gesture);
595 EXPECT_EQ(InputHandler::ScrollStarted, status); 595 EXPECT_EQ(InputHandler::ScrollStarted, status);
596 impl->ScrollBy(gfx::Point(), scroll_amount_); 596 impl->ScrollBy(gfx::Point(), scroll_amount_);
597 impl->ScrollEnd(); 597 impl->ScrollEnd();
598 598
599 // Check the scroll is applied as a delta. 599 // Check the scroll is applied as a delta.
600 EXPECT_VECTOR_EQ(initial_offset_, 600 EXPECT_VECTOR_EQ(initial_offset_,
601 expected_scroll_layer_impl->scroll_offset()); 601 expected_scroll_layer_impl->BaseScrollOffset());
602 EXPECT_VECTOR_EQ(scroll_amount_, 602 EXPECT_VECTOR_EQ(scroll_amount_,
603 expected_scroll_layer_impl->ScrollDelta()); 603 expected_scroll_layer_impl->ScrollDelta());
604 break; 604 break;
605 } 605 }
606 case 1: { 606 case 1: {
607 // Wheel scroll on impl thread. 607 // Wheel scroll on impl thread.
608 InputHandler::ScrollStatus status = impl->ScrollBegin( 608 InputHandler::ScrollStatus status = impl->ScrollBegin(
609 gfx::ToCeiledPoint(expected_scroll_layer_impl->position() + 609 gfx::ToCeiledPoint(expected_scroll_layer_impl->position() +
610 gfx::Vector2dF(0.5f, 0.5f)), 610 gfx::Vector2dF(0.5f, 0.5f)),
611 InputHandler::Wheel); 611 InputHandler::Wheel);
612 EXPECT_EQ(InputHandler::ScrollStarted, status); 612 EXPECT_EQ(InputHandler::ScrollStarted, status);
613 impl->ScrollBy(gfx::Point(), scroll_amount_); 613 impl->ScrollBy(gfx::Point(), scroll_amount_);
614 impl->ScrollEnd(); 614 impl->ScrollEnd();
615 615
616 // Check the scroll is applied as a delta. 616 // Check the scroll is applied as a delta.
617 EXPECT_VECTOR_EQ(javascript_scroll_, 617 EXPECT_VECTOR_EQ(javascript_scroll_,
618 expected_scroll_layer_impl->scroll_offset()); 618 expected_scroll_layer_impl->BaseScrollOffset());
619 EXPECT_VECTOR_EQ(scroll_amount_, 619 EXPECT_VECTOR_EQ(scroll_amount_,
620 expected_scroll_layer_impl->ScrollDelta()); 620 expected_scroll_layer_impl->ScrollDelta());
621 break; 621 break;
622 } 622 }
623 case 2: 623 case 2:
624 624
625 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(javascript_scroll_, 625 EXPECT_VECTOR_EQ(
626 scroll_amount_), 626 gfx::ScrollOffsetWithDelta(javascript_scroll_, scroll_amount_),
627 expected_scroll_layer_impl->scroll_offset()); 627 expected_scroll_layer_impl->BaseScrollOffset());
628 EXPECT_VECTOR_EQ(gfx::Vector2d(), 628 EXPECT_VECTOR_EQ(gfx::Vector2d(),
629 expected_scroll_layer_impl->ScrollDelta()); 629 expected_scroll_layer_impl->ScrollDelta());
630 630
631 EndTest(); 631 EndTest();
632 break; 632 break;
633 } 633 }
634 } 634 }
635 635
636 void AfterTest() override { 636 void AfterTest() override {
637 if (scroll_child_layer_) { 637 if (scroll_child_layer_) {
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
821 LayerImpl* pending_root = 821 LayerImpl* pending_root =
822 impl->active_tree()->FindPendingTreeLayerById(root->id()); 822 impl->active_tree()->FindPendingTreeLayerById(root->id());
823 823
824 switch (impl->active_tree()->source_frame_number()) { 824 switch (impl->active_tree()->source_frame_number()) {
825 case 0: 825 case 0:
826 if (!impl->pending_tree()) { 826 if (!impl->pending_tree()) {
827 impl->BlockNotifyReadyToActivateForTesting(true); 827 impl->BlockNotifyReadyToActivateForTesting(true);
828 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), gfx::Vector2d()); 828 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), gfx::Vector2d());
829 scroll_layer->ScrollBy(impl_thread_scroll1_); 829 scroll_layer->ScrollBy(impl_thread_scroll1_);
830 830
831 EXPECT_VECTOR_EQ(scroll_layer->scroll_offset(), initial_scroll_); 831 EXPECT_VECTOR_EQ(scroll_layer->BaseScrollOffset(), initial_scroll_);
832 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), impl_thread_scroll1_); 832 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), impl_thread_scroll1_);
833 EXPECT_VECTOR_EQ(scroll_layer->sent_scroll_delta(), gfx::Vector2d());
834 PostSetNeedsCommitToMainThread(); 833 PostSetNeedsCommitToMainThread();
835 834
836 // CommitCompleteOnThread will trigger this function again 835 // CommitCompleteOnThread will trigger this function again
837 // and cause us to take the else clause. 836 // and cause us to take the else clause.
838 } else { 837 } else {
839 impl->BlockNotifyReadyToActivateForTesting(false); 838 impl->BlockNotifyReadyToActivateForTesting(false);
840 ASSERT_TRUE(pending_root); 839 ASSERT_TRUE(pending_root);
841 EXPECT_EQ(impl->pending_tree()->source_frame_number(), 1); 840 EXPECT_EQ(impl->pending_tree()->source_frame_number(), 1);
842 841
843 scroll_layer->ScrollBy(impl_thread_scroll2_); 842 scroll_layer->ScrollBy(impl_thread_scroll2_);
844 EXPECT_VECTOR_EQ(scroll_layer->scroll_offset(), initial_scroll_); 843 EXPECT_VECTOR_EQ(scroll_layer->BaseScrollOffset(), initial_scroll_);
845 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), 844 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(),
846 impl_thread_scroll1_ + impl_thread_scroll2_); 845 impl_thread_scroll1_ + impl_thread_scroll2_);
847 EXPECT_VECTOR_EQ(scroll_layer->sent_scroll_delta(),
848 impl_thread_scroll1_);
849 846
850 LayerImpl* pending_scroll_layer = pending_root->children()[0]; 847 LayerImpl* pending_scroll_layer = pending_root->children()[0];
851 EXPECT_VECTOR_EQ( 848 EXPECT_VECTOR_EQ(
852 pending_scroll_layer->scroll_offset(), 849 pending_scroll_layer->BaseScrollOffset(),
853 gfx::ScrollOffsetWithDelta( 850 gfx::ScrollOffsetWithDelta(
854 initial_scroll_, main_thread_scroll_ + impl_thread_scroll1_)); 851 initial_scroll_, main_thread_scroll_ + impl_thread_scroll1_));
855 EXPECT_VECTOR_EQ(pending_scroll_layer->ScrollDelta(), 852 EXPECT_VECTOR_EQ(pending_scroll_layer->ScrollDelta(),
856 impl_thread_scroll2_); 853 impl_thread_scroll2_);
857 EXPECT_VECTOR_EQ(pending_scroll_layer->sent_scroll_delta(),
858 gfx::Vector2d());
859 } 854 }
860 break; 855 break;
861 case 1: 856 case 1:
862 EXPECT_FALSE(impl->pending_tree()); 857 EXPECT_FALSE(impl->pending_tree());
863 EXPECT_VECTOR_EQ( 858 EXPECT_VECTOR_EQ(
864 scroll_layer->scroll_offset(), 859 scroll_layer->BaseScrollOffset(),
865 gfx::ScrollOffsetWithDelta( 860 gfx::ScrollOffsetWithDelta(
866 initial_scroll_, main_thread_scroll_ + impl_thread_scroll1_)); 861 initial_scroll_, main_thread_scroll_ + impl_thread_scroll1_));
867 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), impl_thread_scroll2_); 862 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), impl_thread_scroll2_);
868 EXPECT_VECTOR_EQ(scroll_layer->sent_scroll_delta(), gfx::Vector2d());
869 EndTest(); 863 EndTest();
870 break; 864 break;
871 } 865 }
872 } 866 }
873 867
874 void ApplyViewportDeltas(const gfx::Vector2d& scroll_delta, 868 void ApplyViewportDeltas(const gfx::Vector2d& scroll_delta,
875 float scale, 869 float scale,
876 float top_controls_delta) override { 870 float top_controls_delta) override {
877 num_scrolls_++; 871 num_scrolls_++;
878 } 872 }
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
953 LayerImpl* active_root = impl->active_tree()->root_layer(); 947 LayerImpl* active_root = impl->active_tree()->root_layer();
954 LayerImpl* active_scroll_layer = 948 LayerImpl* active_scroll_layer =
955 active_root ? active_root->children()[0] : NULL; 949 active_root ? active_root->children()[0] : NULL;
956 LayerImpl* pending_root = impl->pending_tree()->root_layer(); 950 LayerImpl* pending_root = impl->pending_tree()->root_layer();
957 LayerImpl* pending_scroll_layer = pending_root->children()[0]; 951 LayerImpl* pending_scroll_layer = pending_root->children()[0];
958 952
959 ASSERT_TRUE(pending_root); 953 ASSERT_TRUE(pending_root);
960 ASSERT_TRUE(pending_scroll_layer); 954 ASSERT_TRUE(pending_scroll_layer);
961 switch (impl->pending_tree()->source_frame_number()) { 955 switch (impl->pending_tree()->source_frame_number()) {
962 case 0: 956 case 0:
963 EXPECT_VECTOR_EQ(pending_scroll_layer->scroll_offset(), 957 EXPECT_VECTOR_EQ(pending_scroll_layer->BaseScrollOffset(),
964 initial_scroll_); 958 initial_scroll_);
965 EXPECT_VECTOR_EQ(pending_scroll_layer->ScrollDelta(), gfx::Vector2d()); 959 EXPECT_VECTOR_EQ(pending_scroll_layer->ScrollDelta(), gfx::Vector2d());
966 EXPECT_VECTOR_EQ(pending_scroll_layer->sent_scroll_delta(),
967 gfx::Vector2d());
968 EXPECT_FALSE(active_root); 960 EXPECT_FALSE(active_root);
969 break; 961 break;
970 case 1: 962 case 1:
971 // Even though the scroll happened during the commit, both layers 963 // Even though the scroll happened during the commit, both layers
972 // should have the appropriate scroll delta. 964 // should have the appropriate scroll delta.
973 EXPECT_VECTOR_EQ(pending_scroll_layer->scroll_offset(), 965 EXPECT_VECTOR_EQ(pending_scroll_layer->BaseScrollOffset(),
974 initial_scroll_); 966 initial_scroll_);
975 EXPECT_VECTOR_EQ(pending_scroll_layer->ScrollDelta(), 967 EXPECT_VECTOR_EQ(pending_scroll_layer->ScrollDelta(),
976 impl_thread_scroll_); 968 impl_thread_scroll_);
977 EXPECT_VECTOR_EQ(pending_scroll_layer->sent_scroll_delta(),
978 gfx::Vector2d());
979 ASSERT_TRUE(active_root); 969 ASSERT_TRUE(active_root);
980 EXPECT_VECTOR_EQ(active_scroll_layer->scroll_offset(), initial_scroll_); 970 EXPECT_VECTOR_EQ(active_scroll_layer->BaseScrollOffset(),
971 initial_scroll_);
981 EXPECT_VECTOR_EQ(active_scroll_layer->ScrollDelta(), 972 EXPECT_VECTOR_EQ(active_scroll_layer->ScrollDelta(),
982 impl_thread_scroll_); 973 impl_thread_scroll_);
983 EXPECT_VECTOR_EQ(active_scroll_layer->sent_scroll_delta(),
984 gfx::Vector2d());
985 break; 974 break;
986 case 2: 975 case 2:
987 // On the next commit, this delta should have been sent and applied. 976 // On the next commit, this delta should have been sent and applied.
988 EXPECT_VECTOR_EQ(pending_scroll_layer->scroll_offset(), 977 EXPECT_VECTOR_EQ(
989 gfx::ScrollOffsetWithDelta(initial_scroll_, 978 pending_scroll_layer->BaseScrollOffset(),
990 impl_thread_scroll_)); 979 gfx::ScrollOffsetWithDelta(initial_scroll_, impl_thread_scroll_));
991 EXPECT_VECTOR_EQ(pending_scroll_layer->ScrollDelta(), gfx::Vector2d()); 980 EXPECT_VECTOR_EQ(pending_scroll_layer->ScrollDelta(), gfx::Vector2d());
992 EXPECT_VECTOR_EQ(pending_scroll_layer->sent_scroll_delta(),
993 gfx::Vector2d());
994 break; 981 break;
995 } 982 }
996 } 983 }
997 984
998 void DrawLayersOnThread(LayerTreeHostImpl* impl) override { 985 void DrawLayersOnThread(LayerTreeHostImpl* impl) override {
999 ImplSidePaintingScrollTest::DrawLayersOnThread(impl); 986 ImplSidePaintingScrollTest::DrawLayersOnThread(impl);
1000 987
1001 LayerImpl* root = impl->active_tree()->root_layer(); 988 LayerImpl* root = impl->active_tree()->root_layer();
1002 LayerImpl* scroll_layer = root->children()[0]; 989 LayerImpl* scroll_layer = root->children()[0];
1003 990
1004 switch (impl->active_tree()->source_frame_number()) { 991 switch (impl->active_tree()->source_frame_number()) {
1005 case 0: 992 case 0:
1006 EXPECT_VECTOR_EQ(scroll_layer->scroll_offset(), initial_scroll_); 993 EXPECT_VECTOR_EQ(scroll_layer->BaseScrollOffset(), initial_scroll_);
1007 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), gfx::Vector2d()); 994 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), gfx::Vector2d());
1008 EXPECT_VECTOR_EQ(scroll_layer->sent_scroll_delta(), gfx::Vector2d());
1009 EXPECT_EQ(1.f, impl->active_tree()->page_scale_delta()); 995 EXPECT_EQ(1.f, impl->active_tree()->page_scale_delta());
1010 EXPECT_EQ(1.f, impl->active_tree()->current_page_scale_factor()); 996 EXPECT_EQ(1.f, impl->active_tree()->current_page_scale_factor());
1011 PostSetNeedsCommitToMainThread(); 997 PostSetNeedsCommitToMainThread();
1012 break; 998 break;
1013 case 1: 999 case 1:
1014 EXPECT_VECTOR_EQ(scroll_layer->scroll_offset(), initial_scroll_); 1000 EXPECT_VECTOR_EQ(scroll_layer->BaseScrollOffset(), initial_scroll_);
1015 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), impl_thread_scroll_); 1001 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), impl_thread_scroll_);
1016 EXPECT_VECTOR_EQ(scroll_layer->sent_scroll_delta(), gfx::Vector2d());
1017 EXPECT_EQ(impl_scale_, impl->active_tree()->page_scale_delta()); 1002 EXPECT_EQ(impl_scale_, impl->active_tree()->page_scale_delta());
1018 EXPECT_EQ(impl_scale_, 1003 EXPECT_EQ(impl_scale_,
1019 impl->active_tree()->current_page_scale_factor()); 1004 impl->active_tree()->current_page_scale_factor());
1020 PostSetNeedsCommitToMainThread(); 1005 PostSetNeedsCommitToMainThread();
1021 break; 1006 break;
1022 case 2: 1007 case 2:
1023 EXPECT_EQ(1.f, impl->active_tree()->page_scale_delta()); 1008 EXPECT_EQ(1.f, impl->active_tree()->page_scale_delta());
1024 EXPECT_EQ(impl_scale_, 1009 EXPECT_EQ(impl_scale_,
1025 impl->active_tree()->current_page_scale_factor()); 1010 impl->active_tree()->current_page_scale_factor());
1026 EndTest(); 1011 EndTest();
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
1246 RunTest(true, false, true); 1231 RunTest(true, false, true);
1247 } 1232 }
1248 1233
1249 TEST_F(LayerTreeHostScrollTestLayerStructureChange, ScrollDestroyWholeTree) { 1234 TEST_F(LayerTreeHostScrollTestLayerStructureChange, ScrollDestroyWholeTree) {
1250 scroll_destroy_whole_tree_ = true; 1235 scroll_destroy_whole_tree_ = true;
1251 RunTest(true, false, true); 1236 RunTest(true, false, true);
1252 } 1237 }
1253 1238
1254 } // namespace 1239 } // namespace
1255 } // namespace cc 1240 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_unittest_picture.cc ('k') | cc/trees/layer_tree_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698