OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |