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

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

Issue 30793002: cc: Do not allow gesture-scrolling 'overflow[-{x|y}]:hidden' layers. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: needs-commit Created 7 years, 2 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 | Annotate | Revision Log
« no previous file with comments | « cc/trees/layer_tree_host_impl.cc ('k') | webkit/renderer/compositor_bindings/web_layer_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 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 <cmath> 7 #include <cmath>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 741 matching lines...) Expand 10 before | Expand all | Expand 10 after
752 vertical_scrollbar.get()); 752 vertical_scrollbar.get());
753 753
754 // Trying to scroll with a vertical scrollbar will succeed. 754 // Trying to scroll with a vertical scrollbar will succeed.
755 EXPECT_TRUE(host_impl_->ScrollVerticallyByPage( 755 EXPECT_TRUE(host_impl_->ScrollVerticallyByPage(
756 gfx::Point(), SCROLL_FORWARD)); 756 gfx::Point(), SCROLL_FORWARD));
757 EXPECT_FLOAT_EQ(875.f, host_impl_->RootScrollLayer()->ScrollDelta().y()); 757 EXPECT_FLOAT_EQ(875.f, host_impl_->RootScrollLayer()->ScrollDelta().y());
758 EXPECT_TRUE(host_impl_->ScrollVerticallyByPage( 758 EXPECT_TRUE(host_impl_->ScrollVerticallyByPage(
759 gfx::Point(), SCROLL_BACKWARD)); 759 gfx::Point(), SCROLL_BACKWARD));
760 } 760 }
761 761
762 TEST_F(LayerTreeHostImplTest, ScrollWithUserUnscrollableLayers) {
763 LayerImpl* scroll_layer = SetupScrollAndContentsLayers(gfx::Size(200, 200));
764 host_impl_->SetViewportSize(gfx::Size(100, 100));
765
766 gfx::Size overflow_size(400, 400);
767 ASSERT_EQ(1u, scroll_layer->children().size());
768 LayerImpl* overflow = scroll_layer->children()[0];
769 overflow->SetBounds(overflow_size);
770 overflow->SetContentBounds(overflow_size);
771 overflow->SetScrollable(true);
772 overflow->SetMaxScrollOffset(gfx::Vector2d(overflow_size.width(),
773 overflow_size.height()));
774 overflow->SetScrollOffset(gfx::Vector2d());
775 overflow->SetPosition(gfx::PointF());
776 overflow->SetAnchorPoint(gfx::PointF());
777
778 InitializeRendererAndDrawFrame();
779 gfx::Point scroll_position(10, 10);
780
781 EXPECT_EQ(InputHandler::ScrollStarted,
782 host_impl_->ScrollBegin(scroll_position, InputHandler::Wheel));
783 EXPECT_VECTOR_EQ(gfx::Vector2dF(), scroll_layer->TotalScrollOffset());
784 EXPECT_VECTOR_EQ(gfx::Vector2dF(), overflow->TotalScrollOffset());
785
786 gfx::Vector2dF scroll_delta(10, 10);
787 host_impl_->ScrollBy(scroll_position, scroll_delta);
788 host_impl_->ScrollEnd();
789 EXPECT_VECTOR_EQ(gfx::Vector2dF(), scroll_layer->TotalScrollOffset());
790 EXPECT_VECTOR_EQ(gfx::Vector2dF(10, 10), overflow->TotalScrollOffset());
791
792 overflow->set_user_scrollable_horizontal(false);
793
794 EXPECT_EQ(InputHandler::ScrollStarted,
795 host_impl_->ScrollBegin(scroll_position, InputHandler::Wheel));
796 EXPECT_VECTOR_EQ(gfx::Vector2dF(), scroll_layer->TotalScrollOffset());
797 EXPECT_VECTOR_EQ(gfx::Vector2dF(10, 10), overflow->TotalScrollOffset());
798
799 host_impl_->ScrollBy(scroll_position, scroll_delta);
800 host_impl_->ScrollEnd();
801 EXPECT_VECTOR_EQ(gfx::Vector2dF(10, 0), scroll_layer->TotalScrollOffset());
802 EXPECT_VECTOR_EQ(gfx::Vector2dF(10, 20), overflow->TotalScrollOffset());
803
804 overflow->set_user_scrollable_vertical(false);
805
806 EXPECT_EQ(InputHandler::ScrollStarted,
807 host_impl_->ScrollBegin(scroll_position, InputHandler::Wheel));
808 EXPECT_VECTOR_EQ(gfx::Vector2dF(10, 0), scroll_layer->TotalScrollOffset());
809 EXPECT_VECTOR_EQ(gfx::Vector2dF(10, 20), overflow->TotalScrollOffset());
810
811 host_impl_->ScrollBy(scroll_position, scroll_delta);
812 host_impl_->ScrollEnd();
813 EXPECT_VECTOR_EQ(gfx::Vector2dF(20, 10), scroll_layer->TotalScrollOffset());
814 EXPECT_VECTOR_EQ(gfx::Vector2dF(10, 20), overflow->TotalScrollOffset());
815 }
816
762 TEST_F(LayerTreeHostImplTest, 817 TEST_F(LayerTreeHostImplTest,
763 ClearRootRenderSurfaceAndHitTestTouchHandlerRegion) { 818 ClearRootRenderSurfaceAndHitTestTouchHandlerRegion) {
764 SetupScrollAndContentsLayers(gfx::Size(100, 100)); 819 SetupScrollAndContentsLayers(gfx::Size(100, 100));
765 host_impl_->SetViewportSize(gfx::Size(50, 50)); 820 host_impl_->SetViewportSize(gfx::Size(50, 50));
766 InitializeRendererAndDrawFrame(); 821 InitializeRendererAndDrawFrame();
767 822
768 // We should be able to hit test for touch event handlers even if the root 823 // We should be able to hit test for touch event handlers even if the root
769 // layer loses its render surface after the most recent render. 824 // layer loses its render surface after the most recent render.
770 host_impl_->active_tree()->root_layer()->ClearRenderSurface(); 825 host_impl_->active_tree()->root_layer()->ClearRenderSurface();
771 host_impl_->active_tree()->set_needs_update_draw_properties(); 826 host_impl_->active_tree()->set_needs_update_draw_properties();
(...skipping 4657 matching lines...) Expand 10 before | Expand all | Expand 10 after
5429 // The root should have scrolled. 5484 // The root should have scrolled.
5430 ASSERT_EQ(2u, scroll_info->scrolls.size()); 5485 ASSERT_EQ(2u, scroll_info->scrolls.size());
5431 ExpectContains(*scroll_info.get(), 5486 ExpectContains(*scroll_info.get(),
5432 host_impl_->active_tree()->root_layer()->id(), 5487 host_impl_->active_tree()->root_layer()->id(),
5433 gfx::Vector2d(0, 10)); 5488 gfx::Vector2d(0, 10));
5434 } 5489 }
5435 } 5490 }
5436 5491
5437 } // namespace 5492 } // namespace
5438 } // namespace cc 5493 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_impl.cc ('k') | webkit/renderer/compositor_bindings/web_layer_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698