| OLD | NEW |
| 1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 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_impl.h" | 5 #include "cc/trees/layer_tree_host_impl.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <cmath> | 8 #include <cmath> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 94 did_request_prepare_tiles_(false), | 94 did_request_prepare_tiles_(false), |
| 95 did_complete_page_scale_animation_(false), | 95 did_complete_page_scale_animation_(false), |
| 96 reduce_memory_result_(true) { | 96 reduce_memory_result_(true) { |
| 97 media::InitializeMediaLibrary(); | 97 media::InitializeMediaLibrary(); |
| 98 } | 98 } |
| 99 | 99 |
| 100 LayerTreeSettings DefaultSettings() { | 100 LayerTreeSettings DefaultSettings() { |
| 101 LayerTreeSettings settings; | 101 LayerTreeSettings settings; |
| 102 settings.minimum_occlusion_tracking_size = gfx::Size(); | 102 settings.minimum_occlusion_tracking_size = gfx::Size(); |
| 103 settings.renderer_settings.texture_id_allocation_chunk_size = 1; | 103 settings.renderer_settings.texture_id_allocation_chunk_size = 1; |
| 104 settings.report_overscroll_only_for_scrollable_axes = true; | |
| 105 settings.gpu_rasterization_enabled = true; | 104 settings.gpu_rasterization_enabled = true; |
| 106 return settings; | 105 return settings; |
| 107 } | 106 } |
| 108 | 107 |
| 109 void SetUp() override { | 108 void SetUp() override { |
| 110 CreateHostImpl(DefaultSettings(), CreateOutputSurface()); | 109 CreateHostImpl(DefaultSettings(), CreateOutputSurface()); |
| 111 } | 110 } |
| 112 | 111 |
| 113 void TearDown() override {} | 112 void TearDown() override {} |
| 114 | 113 |
| (...skipping 4514 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4629 | 4628 |
| 4630 // Even though the layer can't scroll the overscroll still happens. | 4629 // Even though the layer can't scroll the overscroll still happens. |
| 4631 EXPECT_EQ(InputHandler::SCROLL_STARTED, | 4630 EXPECT_EQ(InputHandler::SCROLL_STARTED, |
| 4632 host_impl_->ScrollBegin(gfx::Point(), InputHandler::WHEEL)); | 4631 host_impl_->ScrollBegin(gfx::Point(), InputHandler::WHEEL)); |
| 4633 scroll_result = host_impl_->ScrollBy(gfx::Point(), gfx::Vector2d(0, 10)); | 4632 scroll_result = host_impl_->ScrollBy(gfx::Point(), gfx::Vector2d(0, 10)); |
| 4634 EXPECT_FALSE(scroll_result.did_scroll); | 4633 EXPECT_FALSE(scroll_result.did_scroll); |
| 4635 EXPECT_TRUE(scroll_result.did_overscroll_root); | 4634 EXPECT_TRUE(scroll_result.did_overscroll_root); |
| 4636 EXPECT_EQ(gfx::Vector2dF(0, 10), host_impl_->accumulated_root_overscroll()); | 4635 EXPECT_EQ(gfx::Vector2dF(0, 10), host_impl_->accumulated_root_overscroll()); |
| 4637 } | 4636 } |
| 4638 | 4637 |
| 4639 TEST_F(LayerTreeHostImplTest, NoOverscrollOnFractionalDeviceScale) { | |
| 4640 InputHandlerScrollResult scroll_result; | |
| 4641 gfx::Size surface_size(980, 1439); | |
| 4642 gfx::Size content_size(980, 1438); | |
| 4643 float device_scale_factor = 1.5f; | |
| 4644 scoped_ptr<LayerImpl> root_clip = | |
| 4645 LayerImpl::Create(host_impl_->active_tree(), 3); | |
| 4646 root_clip->SetHasRenderSurface(true); | |
| 4647 | |
| 4648 scoped_ptr<LayerImpl> root = | |
| 4649 CreateScrollableLayer(1, content_size, root_clip.get()); | |
| 4650 root->SetIsContainerForFixedPositionLayers(true); | |
| 4651 scoped_ptr<LayerImpl> child = | |
| 4652 CreateScrollableLayer(2, content_size, root_clip.get()); | |
| 4653 root->scroll_clip_layer()->SetBounds(gfx::Size(320, 469)); | |
| 4654 host_impl_->active_tree()->PushPageScaleFromMainThread(0.326531f, 0.326531f, | |
| 4655 5.f); | |
| 4656 host_impl_->SetPageScaleOnActiveTree(0.326531f); | |
| 4657 child->SetScrollClipLayer(Layer::INVALID_ID); | |
| 4658 root->AddChild(child.Pass()); | |
| 4659 root_clip->AddChild(root.Pass()); | |
| 4660 | |
| 4661 host_impl_->SetViewportSize(surface_size); | |
| 4662 host_impl_->SetDeviceScaleFactor(device_scale_factor); | |
| 4663 host_impl_->active_tree()->SetRootLayer(root_clip.Pass()); | |
| 4664 host_impl_->active_tree()->SetViewportLayersFromIds(Layer::INVALID_ID, 3, 1, | |
| 4665 Layer::INVALID_ID); | |
| 4666 host_impl_->active_tree()->DidBecomeActive(); | |
| 4667 DrawFrame(); | |
| 4668 { | |
| 4669 // Horizontal & Vertical GlowEffect should not be applied when | |
| 4670 // content size is less then view port size. For Example Horizontal & | |
| 4671 // vertical GlowEffect should not be applied in about:blank page. | |
| 4672 EXPECT_EQ(InputHandler::SCROLL_STARTED, | |
| 4673 host_impl_->ScrollBegin(gfx::Point(0, 0), InputHandler::WHEEL)); | |
| 4674 scroll_result = host_impl_->ScrollBy(gfx::Point(), gfx::Vector2dF(0, -1)); | |
| 4675 EXPECT_FALSE(scroll_result.did_scroll); | |
| 4676 EXPECT_FALSE(scroll_result.did_overscroll_root); | |
| 4677 EXPECT_EQ(gfx::Vector2dF().ToString(), | |
| 4678 host_impl_->accumulated_root_overscroll().ToString()); | |
| 4679 | |
| 4680 host_impl_->ScrollEnd(); | |
| 4681 } | |
| 4682 } | |
| 4683 | |
| 4684 TEST_F(LayerTreeHostImplTest, NoOverscrollWhenNotAtEdge) { | 4638 TEST_F(LayerTreeHostImplTest, NoOverscrollWhenNotAtEdge) { |
| 4685 InputHandlerScrollResult scroll_result; | 4639 InputHandlerScrollResult scroll_result; |
| 4686 gfx::Size surface_size(100, 100); | 4640 gfx::Size surface_size(100, 100); |
| 4687 gfx::Size content_size(200, 200); | 4641 gfx::Size content_size(200, 200); |
| 4688 scoped_ptr<LayerImpl> root_clip = | 4642 scoped_ptr<LayerImpl> root_clip = |
| 4689 LayerImpl::Create(host_impl_->active_tree(), 3); | 4643 LayerImpl::Create(host_impl_->active_tree(), 3); |
| 4690 root_clip->SetHasRenderSurface(true); | 4644 root_clip->SetHasRenderSurface(true); |
| 4691 | 4645 |
| 4692 scoped_ptr<LayerImpl> root = | 4646 scoped_ptr<LayerImpl> root = |
| 4693 CreateScrollableLayer(1, content_size, root_clip.get()); | 4647 CreateScrollableLayer(1, content_size, root_clip.get()); |
| (...skipping 3499 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8193 // Hold an unowned pointer to the output surface to use for mock expectations. | 8147 // Hold an unowned pointer to the output surface to use for mock expectations. |
| 8194 MockReclaimResourcesOutputSurface* mock_output_surface = output_surface.get(); | 8148 MockReclaimResourcesOutputSurface* mock_output_surface = output_surface.get(); |
| 8195 | 8149 |
| 8196 CreateHostImpl(DefaultSettings(), output_surface.Pass()); | 8150 CreateHostImpl(DefaultSettings(), output_surface.Pass()); |
| 8197 EXPECT_CALL(*mock_output_surface, ForceReclaimResources()).Times(1); | 8151 EXPECT_CALL(*mock_output_surface, ForceReclaimResources()).Times(1); |
| 8198 host_impl_->BeginCommit(); | 8152 host_impl_->BeginCommit(); |
| 8199 } | 8153 } |
| 8200 | 8154 |
| 8201 } // namespace | 8155 } // namespace |
| 8202 } // namespace cc | 8156 } // namespace cc |
| OLD | NEW |