| 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/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 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 96 layer_tree()->outer_viewport_scroll_layer()->SetScrollOffset( | 96 layer_tree()->outer_viewport_scroll_layer()->SetScrollOffset( |
| 97 initial_scroll_); | 97 initial_scroll_); |
| 98 layer_tree()->outer_viewport_scroll_layer()->set_did_scroll_callback( | 98 layer_tree()->outer_viewport_scroll_layer()->set_did_scroll_callback( |
| 99 base::Bind(&LayerTreeHostScrollTestScrollSimple::DidScrollOuterViewport, | 99 base::Bind(&LayerTreeHostScrollTestScrollSimple::DidScrollOuterViewport, |
| 100 base::Unretained(this))); | 100 base::Unretained(this))); |
| 101 PostSetNeedsCommitToMainThread(); | 101 PostSetNeedsCommitToMainThread(); |
| 102 } | 102 } |
| 103 | 103 |
| 104 void UpdateLayerTreeHost() override { | 104 void UpdateLayerTreeHost() override { |
| 105 Layer* scroll_layer = layer_tree()->outer_viewport_scroll_layer(); | 105 Layer* scroll_layer = layer_tree()->outer_viewport_scroll_layer(); |
| 106 if (!layer_tree_host()->source_frame_number()) { | 106 if (!layer_tree_host()->SourceFrameNumber()) { |
| 107 EXPECT_VECTOR_EQ(initial_scroll_, scroll_layer->scroll_offset()); | 107 EXPECT_VECTOR_EQ(initial_scroll_, scroll_layer->scroll_offset()); |
| 108 } else { | 108 } else { |
| 109 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(initial_scroll_, | 109 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(initial_scroll_, |
| 110 scroll_amount_), | 110 scroll_amount_), |
| 111 scroll_layer->scroll_offset()); | 111 scroll_layer->scroll_offset()); |
| 112 | 112 |
| 113 // Pretend like Javascript updated the scroll position itself. | 113 // Pretend like Javascript updated the scroll position itself. |
| 114 scroll_layer->SetScrollOffset(second_scroll_); | 114 scroll_layer->SetScrollOffset(second_scroll_); |
| 115 } | 115 } |
| 116 } | 116 } |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 166 void BeginTest() override { | 166 void BeginTest() override { |
| 167 scroll_layer_ = layer_tree()->outer_viewport_scroll_layer(); | 167 scroll_layer_ = layer_tree()->outer_viewport_scroll_layer(); |
| 168 scroll_layer_->SetScrollOffset(initial_scroll_); | 168 scroll_layer_->SetScrollOffset(initial_scroll_); |
| 169 scroll_layer_->set_did_scroll_callback(base::Bind( | 169 scroll_layer_->set_did_scroll_callback(base::Bind( |
| 170 &LayerTreeHostScrollTestScrollMultipleRedraw::DidScrollOuterViewport, | 170 &LayerTreeHostScrollTestScrollMultipleRedraw::DidScrollOuterViewport, |
| 171 base::Unretained(this))); | 171 base::Unretained(this))); |
| 172 PostSetNeedsCommitToMainThread(); | 172 PostSetNeedsCommitToMainThread(); |
| 173 } | 173 } |
| 174 | 174 |
| 175 void BeginCommitOnThread(LayerTreeHostImpl* impl) override { | 175 void BeginCommitOnThread(LayerTreeHostImpl* impl) override { |
| 176 switch (layer_tree_host()->source_frame_number()) { | 176 switch (layer_tree_host()->SourceFrameNumber()) { |
| 177 case 0: | 177 case 0: |
| 178 EXPECT_VECTOR_EQ(initial_scroll_, scroll_layer_->scroll_offset()); | 178 EXPECT_VECTOR_EQ(initial_scroll_, scroll_layer_->scroll_offset()); |
| 179 break; | 179 break; |
| 180 case 1: | 180 case 1: |
| 181 EXPECT_VECTOR_EQ( | 181 EXPECT_VECTOR_EQ( |
| 182 gfx::ScrollOffsetWithDelta(initial_scroll_, | 182 gfx::ScrollOffsetWithDelta(initial_scroll_, |
| 183 scroll_amount_ + scroll_amount_), | 183 scroll_amount_ + scroll_amount_), |
| 184 scroll_layer_->scroll_offset()); | 184 scroll_layer_->scroll_offset()); |
| 185 case 2: | 185 case 2: |
| 186 EXPECT_VECTOR_EQ( | 186 EXPECT_VECTOR_EQ( |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 272 layer_tree()->SetPageScaleFactorAndLimits(1.f, 0.01f, 100.f); | 272 layer_tree()->SetPageScaleFactorAndLimits(1.f, 0.01f, 100.f); |
| 273 } | 273 } |
| 274 | 274 |
| 275 void WillBeginMainFrame() override { | 275 void WillBeginMainFrame() override { |
| 276 num_will_begin_main_frames_++; | 276 num_will_begin_main_frames_++; |
| 277 Layer* root_scroll_layer = layer_tree()->outer_viewport_scroll_layer(); | 277 Layer* root_scroll_layer = layer_tree()->outer_viewport_scroll_layer(); |
| 278 switch (num_will_begin_main_frames_) { | 278 switch (num_will_begin_main_frames_) { |
| 279 case 1: | 279 case 1: |
| 280 // This will not be aborted because of the initial prop changes. | 280 // This will not be aborted because of the initial prop changes. |
| 281 EXPECT_EQ(0, num_impl_scrolls_); | 281 EXPECT_EQ(0, num_impl_scrolls_); |
| 282 EXPECT_EQ(0, layer_tree_host()->source_frame_number()); | 282 EXPECT_EQ(0, layer_tree_host()->SourceFrameNumber()); |
| 283 EXPECT_VECTOR_EQ(initial_scroll_, root_scroll_layer->scroll_offset()); | 283 EXPECT_VECTOR_EQ(initial_scroll_, root_scroll_layer->scroll_offset()); |
| 284 EXPECT_EQ(1.f, layer_tree()->page_scale_factor()); | 284 EXPECT_EQ(1.f, layer_tree()->page_scale_factor()); |
| 285 break; | 285 break; |
| 286 case 2: | 286 case 2: |
| 287 // This commit will be aborted, and another commit will be | 287 // This commit will be aborted, and another commit will be |
| 288 // initiated from the redraw. | 288 // initiated from the redraw. |
| 289 EXPECT_EQ(1, num_impl_scrolls_); | 289 EXPECT_EQ(1, num_impl_scrolls_); |
| 290 EXPECT_EQ(1, layer_tree_host()->source_frame_number()); | 290 EXPECT_EQ(1, layer_tree_host()->SourceFrameNumber()); |
| 291 EXPECT_VECTOR_EQ( | 291 EXPECT_VECTOR_EQ( |
| 292 gfx::ScrollOffsetWithDelta(initial_scroll_, impl_scroll_), | 292 gfx::ScrollOffsetWithDelta(initial_scroll_, impl_scroll_), |
| 293 root_scroll_layer->scroll_offset()); | 293 root_scroll_layer->scroll_offset()); |
| 294 EXPECT_EQ(impl_scale_, layer_tree()->page_scale_factor()); | 294 EXPECT_EQ(impl_scale_, layer_tree()->page_scale_factor()); |
| 295 PostSetNeedsRedrawToMainThread(); | 295 PostSetNeedsRedrawToMainThread(); |
| 296 break; | 296 break; |
| 297 case 3: | 297 case 3: |
| 298 // This commit will not be aborted because of the scroll change. | 298 // This commit will not be aborted because of the scroll change. |
| 299 EXPECT_EQ(2, num_impl_scrolls_); | 299 EXPECT_EQ(2, num_impl_scrolls_); |
| 300 // The source frame number still increases even with the abort. | 300 // The source frame number still increases even with the abort. |
| 301 EXPECT_EQ(2, layer_tree_host()->source_frame_number()); | 301 EXPECT_EQ(2, layer_tree_host()->SourceFrameNumber()); |
| 302 EXPECT_VECTOR_EQ( | 302 EXPECT_VECTOR_EQ( |
| 303 gfx::ScrollOffsetWithDelta(initial_scroll_, | 303 gfx::ScrollOffsetWithDelta(initial_scroll_, |
| 304 impl_scroll_ + impl_scroll_), | 304 impl_scroll_ + impl_scroll_), |
| 305 root_scroll_layer->scroll_offset()); | 305 root_scroll_layer->scroll_offset()); |
| 306 EXPECT_EQ(impl_scale_ * impl_scale_, layer_tree()->page_scale_factor()); | 306 EXPECT_EQ(impl_scale_ * impl_scale_, layer_tree()->page_scale_factor()); |
| 307 root_scroll_layer->SetScrollOffset(gfx::ScrollOffsetWithDelta( | 307 root_scroll_layer->SetScrollOffset(gfx::ScrollOffsetWithDelta( |
| 308 root_scroll_layer->scroll_offset(), second_main_scroll_)); | 308 root_scroll_layer->scroll_offset(), second_main_scroll_)); |
| 309 break; | 309 break; |
| 310 case 4: | 310 case 4: |
| 311 // This commit will also be aborted. | 311 // This commit will also be aborted. |
| 312 EXPECT_EQ(3, num_impl_scrolls_); | 312 EXPECT_EQ(3, num_impl_scrolls_); |
| 313 EXPECT_EQ(3, layer_tree_host()->source_frame_number()); | 313 EXPECT_EQ(3, layer_tree_host()->SourceFrameNumber()); |
| 314 gfx::Vector2dF delta = | 314 gfx::Vector2dF delta = |
| 315 impl_scroll_ + impl_scroll_ + impl_scroll_ + second_main_scroll_; | 315 impl_scroll_ + impl_scroll_ + impl_scroll_ + second_main_scroll_; |
| 316 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(initial_scroll_, delta), | 316 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(initial_scroll_, delta), |
| 317 root_scroll_layer->scroll_offset()); | 317 root_scroll_layer->scroll_offset()); |
| 318 | 318 |
| 319 // End the test by drawing to verify this commit is also aborted. | 319 // End the test by drawing to verify this commit is also aborted. |
| 320 PostSetNeedsRedrawToMainThread(); | 320 PostSetNeedsRedrawToMainThread(); |
| 321 break; | 321 break; |
| 322 } | 322 } |
| 323 } | 323 } |
| (...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 612 base::Bind( | 612 base::Bind( |
| 613 &LayerTreeHostScrollTestCaseWithChild::DidScrollOuterViewport, | 613 &LayerTreeHostScrollTestCaseWithChild::DidScrollOuterViewport, |
| 614 base::Unretained(this))); | 614 base::Unretained(this))); |
| 615 } | 615 } |
| 616 | 616 |
| 617 void BeginTest() override { PostSetNeedsCommitToMainThread(); } | 617 void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
| 618 | 618 |
| 619 void WillCommit() override { | 619 void WillCommit() override { |
| 620 // Keep the test committing (otherwise the early out for no update | 620 // Keep the test committing (otherwise the early out for no update |
| 621 // will stall the test). | 621 // will stall the test). |
| 622 if (layer_tree_host()->source_frame_number() < 2) { | 622 if (layer_tree_host()->SourceFrameNumber() < 2) { |
| 623 layer_tree_host()->SetNeedsCommit(); | 623 layer_tree_host()->SetNeedsCommit(); |
| 624 } | 624 } |
| 625 } | 625 } |
| 626 | 626 |
| 627 void DidScroll() { | 627 void DidScroll() { |
| 628 final_scroll_offset_ = expected_scroll_layer_->scroll_offset(); | 628 final_scroll_offset_ = expected_scroll_layer_->scroll_offset(); |
| 629 } | 629 } |
| 630 | 630 |
| 631 void DidScrollOuterViewport() { num_scrolls_++; } | 631 void DidScrollOuterViewport() { num_scrolls_++; } |
| 632 | 632 |
| 633 void UpdateLayerTreeHost() override { | 633 void UpdateLayerTreeHost() override { |
| 634 EXPECT_VECTOR_EQ(gfx::Vector2d(), | 634 EXPECT_VECTOR_EQ(gfx::Vector2d(), |
| 635 expected_no_scroll_layer_->scroll_offset()); | 635 expected_no_scroll_layer_->scroll_offset()); |
| 636 | 636 |
| 637 switch (layer_tree_host()->source_frame_number()) { | 637 switch (layer_tree_host()->SourceFrameNumber()) { |
| 638 case 0: | 638 case 0: |
| 639 EXPECT_VECTOR_EQ(initial_offset_, | 639 EXPECT_VECTOR_EQ(initial_offset_, |
| 640 expected_scroll_layer_->scroll_offset()); | 640 expected_scroll_layer_->scroll_offset()); |
| 641 break; | 641 break; |
| 642 case 1: | 642 case 1: |
| 643 EXPECT_VECTOR_EQ( | 643 EXPECT_VECTOR_EQ( |
| 644 gfx::ScrollOffsetWithDelta(initial_offset_, scroll_amount_), | 644 gfx::ScrollOffsetWithDelta(initial_offset_, scroll_amount_), |
| 645 expected_scroll_layer_->scroll_offset()); | 645 expected_scroll_layer_->scroll_offset()); |
| 646 | 646 |
| 647 // Pretend like Javascript updated the scroll position itself. | 647 // Pretend like Javascript updated the scroll position itself. |
| (...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 829 layer_tree()->outer_viewport_scroll_layer()->SetScrollOffset( | 829 layer_tree()->outer_viewport_scroll_layer()->SetScrollOffset( |
| 830 initial_scroll_); | 830 initial_scroll_); |
| 831 layer_tree()->outer_viewport_scroll_layer()->set_did_scroll_callback( | 831 layer_tree()->outer_viewport_scroll_layer()->set_did_scroll_callback( |
| 832 base::Bind(&LayerTreeHostScrollTestSimple::DidScrollOuterViewport, | 832 base::Bind(&LayerTreeHostScrollTestSimple::DidScrollOuterViewport, |
| 833 base::Unretained(this))); | 833 base::Unretained(this))); |
| 834 PostSetNeedsCommitToMainThread(); | 834 PostSetNeedsCommitToMainThread(); |
| 835 } | 835 } |
| 836 | 836 |
| 837 void UpdateLayerTreeHost() override { | 837 void UpdateLayerTreeHost() override { |
| 838 Layer* scroll_layer = layer_tree()->outer_viewport_scroll_layer(); | 838 Layer* scroll_layer = layer_tree()->outer_viewport_scroll_layer(); |
| 839 if (!layer_tree_host()->source_frame_number()) { | 839 if (!layer_tree_host()->SourceFrameNumber()) { |
| 840 EXPECT_VECTOR_EQ(initial_scroll_, scroll_layer->scroll_offset()); | 840 EXPECT_VECTOR_EQ(initial_scroll_, scroll_layer->scroll_offset()); |
| 841 } else { | 841 } else { |
| 842 EXPECT_VECTOR_EQ( | 842 EXPECT_VECTOR_EQ( |
| 843 scroll_layer->scroll_offset(), | 843 scroll_layer->scroll_offset(), |
| 844 gfx::ScrollOffsetWithDelta(initial_scroll_, impl_thread_scroll1_)); | 844 gfx::ScrollOffsetWithDelta(initial_scroll_, impl_thread_scroll1_)); |
| 845 | 845 |
| 846 // Pretend like Javascript updated the scroll position itself with a | 846 // Pretend like Javascript updated the scroll position itself with a |
| 847 // change of main_thread_scroll. | 847 // change of main_thread_scroll. |
| 848 scroll_layer->SetScrollOffset( | 848 scroll_layer->SetScrollOffset( |
| 849 gfx::ScrollOffsetWithDelta( | 849 gfx::ScrollOffsetWithDelta( |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 948 } | 948 } |
| 949 | 949 |
| 950 void BeginTest() override { | 950 void BeginTest() override { |
| 951 layer_tree()->outer_viewport_scroll_layer()->SetScrollOffset( | 951 layer_tree()->outer_viewport_scroll_layer()->SetScrollOffset( |
| 952 initial_scroll_); | 952 initial_scroll_); |
| 953 PostSetNeedsCommitToMainThread(); | 953 PostSetNeedsCommitToMainThread(); |
| 954 } | 954 } |
| 955 | 955 |
| 956 void WillCommit() override { | 956 void WillCommit() override { |
| 957 Layer* scroll_layer = layer_tree()->outer_viewport_scroll_layer(); | 957 Layer* scroll_layer = layer_tree()->outer_viewport_scroll_layer(); |
| 958 switch (layer_tree_host()->source_frame_number()) { | 958 switch (layer_tree_host()->SourceFrameNumber()) { |
| 959 case 0: | 959 case 0: |
| 960 EXPECT_TRUE( | 960 EXPECT_TRUE( |
| 961 scroll_layer->GetLayerTree()->LayerNeedsPushPropertiesForTesting( | 961 scroll_layer->GetLayerTree()->LayerNeedsPushPropertiesForTesting( |
| 962 scroll_layer)); | 962 scroll_layer)); |
| 963 break; | 963 break; |
| 964 case 1: | 964 case 1: |
| 965 // Even if this layer doesn't need push properties, it should | 965 // Even if this layer doesn't need push properties, it should |
| 966 // still pick up scrolls that happen on the active layer during | 966 // still pick up scrolls that happen on the active layer during |
| 967 // commit. | 967 // commit. |
| 968 EXPECT_FALSE( | 968 EXPECT_FALSE( |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1085 | 1085 |
| 1086 void BeginTest() override { | 1086 void BeginTest() override { |
| 1087 outer_viewport_container_layer_id_ = | 1087 outer_viewport_container_layer_id_ = |
| 1088 layer_tree()->outer_viewport_scroll_layer()->scroll_clip_layer()->id(); | 1088 layer_tree()->outer_viewport_scroll_layer()->scroll_clip_layer()->id(); |
| 1089 PostSetNeedsCommitToMainThread(); | 1089 PostSetNeedsCommitToMainThread(); |
| 1090 } | 1090 } |
| 1091 | 1091 |
| 1092 void UpdateLayerTreeHost() override { | 1092 void UpdateLayerTreeHost() override { |
| 1093 Layer* root = layer_tree()->root_layer(); | 1093 Layer* root = layer_tree()->root_layer(); |
| 1094 Layer* scroll_layer = layer_tree()->outer_viewport_scroll_layer(); | 1094 Layer* scroll_layer = layer_tree()->outer_viewport_scroll_layer(); |
| 1095 switch (layer_tree_host()->source_frame_number()) { | 1095 switch (layer_tree_host()->SourceFrameNumber()) { |
| 1096 case 0: | 1096 case 0: |
| 1097 scroll_layer->SetScrollClipLayerId(outer_viewport_container_layer_id_); | 1097 scroll_layer->SetScrollClipLayerId(outer_viewport_container_layer_id_); |
| 1098 // Set max_scroll_offset = (100, 100). | 1098 // Set max_scroll_offset = (100, 100). |
| 1099 scroll_layer->SetBounds(gfx::Size(root->bounds().width() + 100, | 1099 scroll_layer->SetBounds(gfx::Size(root->bounds().width() + 100, |
| 1100 root->bounds().height() + 100)); | 1100 root->bounds().height() + 100)); |
| 1101 break; | 1101 break; |
| 1102 case 1: | 1102 case 1: |
| 1103 // Set max_scroll_offset = (0, 0). | 1103 // Set max_scroll_offset = (0, 0). |
| 1104 scroll_layer->SetBounds(root->bounds()); | 1104 scroll_layer->SetBounds(root->bounds()); |
| 1105 break; | 1105 break; |
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1310 TestSharedBitmapManager shared_bitmap_manager; | 1310 TestSharedBitmapManager shared_bitmap_manager; |
| 1311 TestTaskGraphRunner task_graph_runner; | 1311 TestTaskGraphRunner task_graph_runner; |
| 1312 | 1312 |
| 1313 LayerTreeHost::InitParams params; | 1313 LayerTreeHost::InitParams params; |
| 1314 params.client = &layer_tree_host_client; | 1314 params.client = &layer_tree_host_client; |
| 1315 params.shared_bitmap_manager = &shared_bitmap_manager; | 1315 params.shared_bitmap_manager = &shared_bitmap_manager; |
| 1316 params.task_graph_runner = &task_graph_runner; | 1316 params.task_graph_runner = &task_graph_runner; |
| 1317 params.settings = &settings; | 1317 params.settings = &settings; |
| 1318 params.main_task_runner = base::ThreadTaskRunnerHandle::Get(); | 1318 params.main_task_runner = base::ThreadTaskRunnerHandle::Get(); |
| 1319 params.animation_host = AnimationHost::CreateForTesting(ThreadInstance::MAIN); | 1319 params.animation_host = AnimationHost::CreateForTesting(ThreadInstance::MAIN); |
| 1320 std::unique_ptr<LayerTreeHost> layer_tree_host = | 1320 std::unique_ptr<LayerTreeHostInterface> layer_tree_host = |
| 1321 LayerTreeHost::CreateThreaded(impl_thread.task_runner(), ¶ms); | 1321 LayerTreeHost::CreateThreaded(impl_thread.task_runner(), ¶ms); |
| 1322 | 1322 |
| 1323 ThreadCheckingInputHandlerClient input_handler_client( | 1323 ThreadCheckingInputHandlerClient input_handler_client( |
| 1324 impl_thread.task_runner().get(), &received_stop_flinging); | 1324 impl_thread.task_runner().get(), &received_stop_flinging); |
| 1325 impl_thread.task_runner()->PostTask( | 1325 impl_thread.task_runner()->PostTask( |
| 1326 FROM_HERE, base::Bind(&BindInputHandlerOnCompositorThread, | 1326 FROM_HERE, base::Bind(&BindInputHandlerOnCompositorThread, |
| 1327 layer_tree_host->GetInputHandler(), | 1327 layer_tree_host->GetInputHandler(), |
| 1328 base::Unretained(&input_handler_client))); | 1328 base::Unretained(&input_handler_client))); |
| 1329 | 1329 |
| 1330 layer_tree_host->DidStopFlinging(); | 1330 layer_tree_host->DidStopFlinging(); |
| (...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1490 case 2: | 1490 case 2: |
| 1491 // Unblock activation after third commit is ready. | 1491 // Unblock activation after third commit is ready. |
| 1492 impl->BlockNotifyReadyToActivateForTesting(false); | 1492 impl->BlockNotifyReadyToActivateForTesting(false); |
| 1493 break; | 1493 break; |
| 1494 } | 1494 } |
| 1495 num_commits_++; | 1495 num_commits_++; |
| 1496 } | 1496 } |
| 1497 | 1497 |
| 1498 void UpdateLayerTreeHost() override { | 1498 void UpdateLayerTreeHost() override { |
| 1499 Layer* scroll_layer = layer_tree()->outer_viewport_scroll_layer(); | 1499 Layer* scroll_layer = layer_tree()->outer_viewport_scroll_layer(); |
| 1500 switch (layer_tree_host()->source_frame_number()) { | 1500 switch (layer_tree_host()->SourceFrameNumber()) { |
| 1501 case 0: | 1501 case 0: |
| 1502 EXPECT_VECTOR_EQ(initial_scroll_, scroll_layer->scroll_offset()); | 1502 EXPECT_VECTOR_EQ(initial_scroll_, scroll_layer->scroll_offset()); |
| 1503 break; | 1503 break; |
| 1504 case 1: | 1504 case 1: |
| 1505 EXPECT_VECTOR_EQ( | 1505 EXPECT_VECTOR_EQ( |
| 1506 gfx::ScrollOffsetWithDelta(initial_scroll_, scroll_amount_), | 1506 gfx::ScrollOffsetWithDelta(initial_scroll_, scroll_amount_), |
| 1507 scroll_layer->scroll_offset()); | 1507 scroll_layer->scroll_offset()); |
| 1508 // Pretend like Javascript updated the scroll position itself. | 1508 // Pretend like Javascript updated the scroll position itself. |
| 1509 scroll_layer->SetScrollOffset(second_scroll_); | 1509 scroll_layer->SetScrollOffset(second_scroll_); |
| 1510 break; | 1510 break; |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1617 layer_tree()->SetPageScaleFactorAndLimits(1.f, 0.01f, 100.f); | 1617 layer_tree()->SetPageScaleFactorAndLimits(1.f, 0.01f, 100.f); |
| 1618 } | 1618 } |
| 1619 | 1619 |
| 1620 void WillBeginMainFrame() override { | 1620 void WillBeginMainFrame() override { |
| 1621 num_will_begin_main_frames_++; | 1621 num_will_begin_main_frames_++; |
| 1622 Layer* root_scroll_layer = layer_tree()->outer_viewport_scroll_layer(); | 1622 Layer* root_scroll_layer = layer_tree()->outer_viewport_scroll_layer(); |
| 1623 switch (num_will_begin_main_frames_) { | 1623 switch (num_will_begin_main_frames_) { |
| 1624 case 1: | 1624 case 1: |
| 1625 // This will not be aborted because of the initial prop changes. | 1625 // This will not be aborted because of the initial prop changes. |
| 1626 EXPECT_EQ(0, num_impl_scrolls_); | 1626 EXPECT_EQ(0, num_impl_scrolls_); |
| 1627 EXPECT_EQ(0, layer_tree_host()->source_frame_number()); | 1627 EXPECT_EQ(0, layer_tree_host()->SourceFrameNumber()); |
| 1628 EXPECT_VECTOR_EQ(initial_scroll_, root_scroll_layer->scroll_offset()); | 1628 EXPECT_VECTOR_EQ(initial_scroll_, root_scroll_layer->scroll_offset()); |
| 1629 break; | 1629 break; |
| 1630 case 2: | 1630 case 2: |
| 1631 // This commit will not be aborted because of the scroll change. | 1631 // This commit will not be aborted because of the scroll change. |
| 1632 EXPECT_EQ(1, num_impl_scrolls_); | 1632 EXPECT_EQ(1, num_impl_scrolls_); |
| 1633 EXPECT_EQ(1, layer_tree_host()->source_frame_number()); | 1633 EXPECT_EQ(1, layer_tree_host()->SourceFrameNumber()); |
| 1634 EXPECT_VECTOR_EQ( | 1634 EXPECT_VECTOR_EQ( |
| 1635 gfx::ScrollOffsetWithDelta(initial_scroll_, impl_scroll_), | 1635 gfx::ScrollOffsetWithDelta(initial_scroll_, impl_scroll_), |
| 1636 root_scroll_layer->scroll_offset()); | 1636 root_scroll_layer->scroll_offset()); |
| 1637 root_scroll_layer->SetScrollOffset(gfx::ScrollOffsetWithDelta( | 1637 root_scroll_layer->SetScrollOffset(gfx::ScrollOffsetWithDelta( |
| 1638 root_scroll_layer->scroll_offset(), second_main_scroll_)); | 1638 root_scroll_layer->scroll_offset(), second_main_scroll_)); |
| 1639 break; | 1639 break; |
| 1640 case 3: { | 1640 case 3: { |
| 1641 // This commit will be aborted. | 1641 // This commit will be aborted. |
| 1642 EXPECT_EQ(2, num_impl_scrolls_); | 1642 EXPECT_EQ(2, num_impl_scrolls_); |
| 1643 // The source frame number still increases even with the abort. | 1643 // The source frame number still increases even with the abort. |
| 1644 EXPECT_EQ(2, layer_tree_host()->source_frame_number()); | 1644 EXPECT_EQ(2, layer_tree_host()->SourceFrameNumber()); |
| 1645 gfx::Vector2dF delta = | 1645 gfx::Vector2dF delta = |
| 1646 impl_scroll_ + impl_scroll_ + second_main_scroll_; | 1646 impl_scroll_ + impl_scroll_ + second_main_scroll_; |
| 1647 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(initial_scroll_, delta), | 1647 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(initial_scroll_, delta), |
| 1648 root_scroll_layer->scroll_offset()); | 1648 root_scroll_layer->scroll_offset()); |
| 1649 break; | 1649 break; |
| 1650 } | 1650 } |
| 1651 case 4: { | 1651 case 4: { |
| 1652 // This commit will also be aborted. | 1652 // This commit will also be aborted. |
| 1653 EXPECT_EQ(3, num_impl_scrolls_); | 1653 EXPECT_EQ(3, num_impl_scrolls_); |
| 1654 EXPECT_EQ(3, layer_tree_host()->source_frame_number()); | 1654 EXPECT_EQ(3, layer_tree_host()->SourceFrameNumber()); |
| 1655 gfx::Vector2dF delta = | 1655 gfx::Vector2dF delta = |
| 1656 impl_scroll_ + impl_scroll_ + impl_scroll_ + second_main_scroll_; | 1656 impl_scroll_ + impl_scroll_ + impl_scroll_ + second_main_scroll_; |
| 1657 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(initial_scroll_, delta), | 1657 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(initial_scroll_, delta), |
| 1658 root_scroll_layer->scroll_offset()); | 1658 root_scroll_layer->scroll_offset()); |
| 1659 break; | 1659 break; |
| 1660 } | 1660 } |
| 1661 } | 1661 } |
| 1662 } | 1662 } |
| 1663 | 1663 |
| 1664 void DidBeginMainFrame() override { num_did_begin_main_frames_++; } | 1664 void DidBeginMainFrame() override { num_did_begin_main_frames_++; } |
| (...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1973 | 1973 |
| 1974 const gfx::Vector2dF elastic_overscroll_test_cases_[5] = { | 1974 const gfx::Vector2dF elastic_overscroll_test_cases_[5] = { |
| 1975 gfx::Vector2dF(0, 0), gfx::Vector2dF(5, 10), gfx::Vector2dF(5, 5), | 1975 gfx::Vector2dF(0, 0), gfx::Vector2dF(5, 10), gfx::Vector2dF(5, 5), |
| 1976 gfx::Vector2dF(-4, -5), gfx::Vector2dF(0, 0)}; | 1976 gfx::Vector2dF(-4, -5), gfx::Vector2dF(0, 0)}; |
| 1977 }; | 1977 }; |
| 1978 | 1978 |
| 1979 MULTI_THREAD_TEST_F(LayerTreeHostScrollTestElasticOverscroll); | 1979 MULTI_THREAD_TEST_F(LayerTreeHostScrollTestElasticOverscroll); |
| 1980 | 1980 |
| 1981 } // namespace | 1981 } // namespace |
| 1982 } // namespace cc | 1982 } // namespace cc |
| OLD | NEW |