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 PostSetNeedsCommitToMainThread(); | 833 PostSetNeedsCommitToMainThread(); |
834 | 834 |
835 // CommitCompleteOnThread will trigger this function again | 835 // CommitCompleteOnThread will trigger this function again |
836 // and cause us to take the else clause. | 836 // and cause us to take the else clause. |
837 } else { | 837 } else { |
838 impl->BlockNotifyReadyToActivateForTesting(false); | 838 impl->BlockNotifyReadyToActivateForTesting(false); |
839 ASSERT_TRUE(pending_root); | 839 ASSERT_TRUE(pending_root); |
840 EXPECT_EQ(impl->pending_tree()->source_frame_number(), 1); | 840 EXPECT_EQ(impl->pending_tree()->source_frame_number(), 1); |
841 | 841 |
842 scroll_layer->ScrollBy(impl_thread_scroll2_); | 842 scroll_layer->ScrollBy(impl_thread_scroll2_); |
843 EXPECT_VECTOR_EQ(scroll_layer->scroll_offset(), initial_scroll_); | 843 EXPECT_VECTOR_EQ(scroll_layer->BaseScrollOffset(), initial_scroll_); |
844 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), | 844 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), |
845 impl_thread_scroll1_ + impl_thread_scroll2_); | 845 impl_thread_scroll1_ + impl_thread_scroll2_); |
846 | 846 |
847 LayerImpl* pending_scroll_layer = pending_root->children()[0]; | 847 LayerImpl* pending_scroll_layer = pending_root->children()[0]; |
848 EXPECT_VECTOR_EQ( | 848 EXPECT_VECTOR_EQ( |
849 pending_scroll_layer->scroll_offset(), | 849 pending_scroll_layer->BaseScrollOffset(), |
850 gfx::ScrollOffsetWithDelta( | 850 gfx::ScrollOffsetWithDelta( |
851 initial_scroll_, main_thread_scroll_ + impl_thread_scroll1_)); | 851 initial_scroll_, main_thread_scroll_ + impl_thread_scroll1_)); |
852 EXPECT_VECTOR_EQ(pending_scroll_layer->ScrollDelta(), | 852 EXPECT_VECTOR_EQ(pending_scroll_layer->ScrollDelta(), |
853 impl_thread_scroll2_); | 853 impl_thread_scroll2_); |
854 } | 854 } |
855 break; | 855 break; |
856 case 1: | 856 case 1: |
857 EXPECT_FALSE(impl->pending_tree()); | 857 EXPECT_FALSE(impl->pending_tree()); |
858 EXPECT_VECTOR_EQ( | 858 EXPECT_VECTOR_EQ( |
859 scroll_layer->scroll_offset(), | 859 scroll_layer->BaseScrollOffset(), |
860 gfx::ScrollOffsetWithDelta( | 860 gfx::ScrollOffsetWithDelta( |
861 initial_scroll_, main_thread_scroll_ + impl_thread_scroll1_)); | 861 initial_scroll_, main_thread_scroll_ + impl_thread_scroll1_)); |
862 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), impl_thread_scroll2_); | 862 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), impl_thread_scroll2_); |
863 EndTest(); | 863 EndTest(); |
864 break; | 864 break; |
865 } | 865 } |
866 } | 866 } |
867 | 867 |
868 void ApplyViewportDeltas(const gfx::Vector2d& scroll_delta, | 868 void ApplyViewportDeltas(const gfx::Vector2d& scroll_delta, |
869 float scale, | 869 float scale, |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
947 LayerImpl* active_root = impl->active_tree()->root_layer(); | 947 LayerImpl* active_root = impl->active_tree()->root_layer(); |
948 LayerImpl* active_scroll_layer = | 948 LayerImpl* active_scroll_layer = |
949 active_root ? active_root->children()[0] : NULL; | 949 active_root ? active_root->children()[0] : NULL; |
950 LayerImpl* pending_root = impl->pending_tree()->root_layer(); | 950 LayerImpl* pending_root = impl->pending_tree()->root_layer(); |
951 LayerImpl* pending_scroll_layer = pending_root->children()[0]; | 951 LayerImpl* pending_scroll_layer = pending_root->children()[0]; |
952 | 952 |
953 ASSERT_TRUE(pending_root); | 953 ASSERT_TRUE(pending_root); |
954 ASSERT_TRUE(pending_scroll_layer); | 954 ASSERT_TRUE(pending_scroll_layer); |
955 switch (impl->pending_tree()->source_frame_number()) { | 955 switch (impl->pending_tree()->source_frame_number()) { |
956 case 0: | 956 case 0: |
957 EXPECT_VECTOR_EQ(pending_scroll_layer->scroll_offset(), | 957 EXPECT_VECTOR_EQ(pending_scroll_layer->BaseScrollOffset(), |
958 initial_scroll_); | 958 initial_scroll_); |
959 EXPECT_VECTOR_EQ(pending_scroll_layer->ScrollDelta(), gfx::Vector2d()); | 959 EXPECT_VECTOR_EQ(pending_scroll_layer->ScrollDelta(), gfx::Vector2d()); |
960 EXPECT_FALSE(active_root); | 960 EXPECT_FALSE(active_root); |
961 break; | 961 break; |
962 case 1: | 962 case 1: |
963 // Even though the scroll happened during the commit, both layers | 963 // Even though the scroll happened during the commit, both layers |
964 // should have the appropriate scroll delta. | 964 // should have the appropriate scroll delta. |
965 EXPECT_VECTOR_EQ(pending_scroll_layer->scroll_offset(), | 965 EXPECT_VECTOR_EQ(pending_scroll_layer->BaseScrollOffset(), |
966 initial_scroll_); | 966 initial_scroll_); |
967 EXPECT_VECTOR_EQ(pending_scroll_layer->ScrollDelta(), | 967 EXPECT_VECTOR_EQ(pending_scroll_layer->ScrollDelta(), |
968 impl_thread_scroll_); | 968 impl_thread_scroll_); |
969 ASSERT_TRUE(active_root); | 969 ASSERT_TRUE(active_root); |
970 EXPECT_VECTOR_EQ(active_scroll_layer->scroll_offset(), initial_scroll_); | 970 EXPECT_VECTOR_EQ(active_scroll_layer->BaseScrollOffset(), |
| 971 initial_scroll_); |
971 EXPECT_VECTOR_EQ(active_scroll_layer->ScrollDelta(), | 972 EXPECT_VECTOR_EQ(active_scroll_layer->ScrollDelta(), |
972 impl_thread_scroll_); | 973 impl_thread_scroll_); |
973 break; | 974 break; |
974 case 2: | 975 case 2: |
975 // 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. |
976 EXPECT_VECTOR_EQ(pending_scroll_layer->scroll_offset(), | 977 EXPECT_VECTOR_EQ( |
977 gfx::ScrollOffsetWithDelta(initial_scroll_, | 978 pending_scroll_layer->BaseScrollOffset(), |
978 impl_thread_scroll_)); | 979 gfx::ScrollOffsetWithDelta(initial_scroll_, impl_thread_scroll_)); |
979 EXPECT_VECTOR_EQ(pending_scroll_layer->ScrollDelta(), gfx::Vector2d()); | 980 EXPECT_VECTOR_EQ(pending_scroll_layer->ScrollDelta(), gfx::Vector2d()); |
980 break; | 981 break; |
981 } | 982 } |
982 } | 983 } |
983 | 984 |
984 void DrawLayersOnThread(LayerTreeHostImpl* impl) override { | 985 void DrawLayersOnThread(LayerTreeHostImpl* impl) override { |
985 ImplSidePaintingScrollTest::DrawLayersOnThread(impl); | 986 ImplSidePaintingScrollTest::DrawLayersOnThread(impl); |
986 | 987 |
987 LayerImpl* root = impl->active_tree()->root_layer(); | 988 LayerImpl* root = impl->active_tree()->root_layer(); |
988 LayerImpl* scroll_layer = root->children()[0]; | 989 LayerImpl* scroll_layer = root->children()[0]; |
989 | 990 |
990 switch (impl->active_tree()->source_frame_number()) { | 991 switch (impl->active_tree()->source_frame_number()) { |
991 case 0: | 992 case 0: |
992 EXPECT_VECTOR_EQ(scroll_layer->scroll_offset(), initial_scroll_); | 993 EXPECT_VECTOR_EQ(scroll_layer->BaseScrollOffset(), initial_scroll_); |
993 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), gfx::Vector2d()); | 994 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), gfx::Vector2d()); |
994 EXPECT_EQ(1.f, impl->active_tree()->page_scale_delta()); | 995 EXPECT_EQ(1.f, impl->active_tree()->page_scale_delta()); |
995 EXPECT_EQ(1.f, impl->active_tree()->current_page_scale_factor()); | 996 EXPECT_EQ(1.f, impl->active_tree()->current_page_scale_factor()); |
996 PostSetNeedsCommitToMainThread(); | 997 PostSetNeedsCommitToMainThread(); |
997 break; | 998 break; |
998 case 1: | 999 case 1: |
999 EXPECT_VECTOR_EQ(scroll_layer->scroll_offset(), initial_scroll_); | 1000 EXPECT_VECTOR_EQ(scroll_layer->BaseScrollOffset(), initial_scroll_); |
1000 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), impl_thread_scroll_); | 1001 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), impl_thread_scroll_); |
1001 EXPECT_EQ(impl_scale_, impl->active_tree()->page_scale_delta()); | 1002 EXPECT_EQ(impl_scale_, impl->active_tree()->page_scale_delta()); |
1002 EXPECT_EQ(impl_scale_, | 1003 EXPECT_EQ(impl_scale_, |
1003 impl->active_tree()->current_page_scale_factor()); | 1004 impl->active_tree()->current_page_scale_factor()); |
1004 PostSetNeedsCommitToMainThread(); | 1005 PostSetNeedsCommitToMainThread(); |
1005 break; | 1006 break; |
1006 case 2: | 1007 case 2: |
1007 EXPECT_EQ(1.f, impl->active_tree()->page_scale_delta()); | 1008 EXPECT_EQ(1.f, impl->active_tree()->page_scale_delta()); |
1008 EXPECT_EQ(impl_scale_, | 1009 EXPECT_EQ(impl_scale_, |
1009 impl->active_tree()->current_page_scale_factor()); | 1010 impl->active_tree()->current_page_scale_factor()); |
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1230 RunTest(true, false, true); | 1231 RunTest(true, false, true); |
1231 } | 1232 } |
1232 | 1233 |
1233 TEST_F(LayerTreeHostScrollTestLayerStructureChange, ScrollDestroyWholeTree) { | 1234 TEST_F(LayerTreeHostScrollTestLayerStructureChange, ScrollDestroyWholeTree) { |
1234 scroll_destroy_whole_tree_ = true; | 1235 scroll_destroy_whole_tree_ = true; |
1235 RunTest(true, false, true); | 1236 RunTest(true, false, true); |
1236 } | 1237 } |
1237 | 1238 |
1238 } // namespace | 1239 } // namespace |
1239 } // namespace cc | 1240 } // namespace cc |
OLD | NEW |