diff options
author | sadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-10 05:40:09 +0000 |
---|---|---|
committer | sadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-10 05:40:09 +0000 |
commit | 8a8929a614b78a6c33a3bd9b42a68286237f21de (patch) | |
tree | 53aba3cbd42f778b666edac70ff0744a8498a133 | |
parent | b8c13c5c568bbdbf87c2c9f47364b6c88436c287 (diff) | |
download | chromium_src-8a8929a614b78a6c33a3bd9b42a68286237f21de.zip chromium_src-8a8929a614b78a6c33a3bd9b42a68286237f21de.tar.gz chromium_src-8a8929a614b78a6c33a3bd9b42a68286237f21de.tar.bz2 |
cc: Allow 'overflow: hidden' layers to be scrolled again.
Disabling scroll of 'overflow: hidden' layers break sites when user zooms in. So allow
scrolling such layers until a better fox for panning in zoomed content is available.
BUG=322223
R=aelias@chromium.org
Review URL: https://codereview.chromium.org/109343003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239675 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | cc/layers/layer_impl.cc | 19 | ||||
-rw-r--r-- | cc/layers/layer_impl_unittest.cc | 4 | ||||
-rw-r--r-- | cc/trees/layer_tree_host_impl_unittest.cc | 4 |
3 files changed, 7 insertions, 20 deletions
diff --git a/cc/layers/layer_impl.cc b/cc/layers/layer_impl.cc index e46f4db..f60ae81 100644 --- a/cc/layers/layer_impl.cc +++ b/cc/layers/layer_impl.cc @@ -358,16 +358,6 @@ void LayerImpl::SetSentScrollDelta(gfx::Vector2d sent_scroll_delta) { gfx::Vector2dF LayerImpl::ScrollBy(gfx::Vector2dF scroll) { DCHECK(scrollable()); - gfx::Vector2dF scroll_hidden; - if (!user_scrollable_horizontal_) { - scroll_hidden.set_x(scroll.x()); - scroll.set_x(0.f); - } - if (!user_scrollable_vertical_) { - scroll_hidden.set_y(scroll.y()); - scroll.set_y(0.f); - } - gfx::Vector2dF min_delta = -scroll_offset_; gfx::Vector2dF max_delta = max_scroll_offset_ - scroll_offset_; // Clamp new_delta so that position + delta stays within scroll bounds. @@ -375,7 +365,7 @@ gfx::Vector2dF LayerImpl::ScrollBy(gfx::Vector2dF scroll) { new_delta.SetToMax(min_delta); new_delta.SetToMin(max_delta); gfx::Vector2dF unscrolled = - ScrollDelta() + scroll + scroll_hidden - new_delta; + ScrollDelta() + scroll - new_delta; SetScrollDelta(new_delta); return unscrolled; } @@ -476,13 +466,6 @@ InputHandler::ScrollStatus LayerImpl::TryScroll( return InputHandler::ScrollIgnored; } - if (!user_scrollable_horizontal_ && !user_scrollable_vertical_) { - TRACE_EVENT0("cc", - "LayerImpl::TryScroll: Ignored. User gesture is not allowed" - " to scroll this layer."); - return InputHandler::ScrollIgnored; - } - return InputHandler::ScrollStarted; } diff --git a/cc/layers/layer_impl_unittest.cc b/cc/layers/layer_impl_unittest.cc index c43adff..9d90c04 100644 --- a/cc/layers/layer_impl_unittest.cc +++ b/cc/layers/layer_impl_unittest.cc @@ -566,7 +566,9 @@ TEST_F(LayerImplScrollTest, ApplySentScrollsWithAcceptingDelegate) { EXPECT_VECTOR_EQ(gfx::Vector2d(), layer()->sent_scroll_delta()); } -TEST_F(LayerImplScrollTest, ScrollUserUnscrollableLayer) { +// The user-scrollability breaks for zoomed-in pages. So disable this. +// http://crbug.com/322223 +TEST_F(LayerImplScrollTest, DISABLED_ScrollUserUnscrollableLayer) { gfx::Vector2d max_scroll_offset(50, 80); gfx::Vector2d scroll_offset(10, 5); gfx::Vector2dF scroll_delta(20.5f, 8.5f); diff --git a/cc/trees/layer_tree_host_impl_unittest.cc b/cc/trees/layer_tree_host_impl_unittest.cc index 3a1cf8d..59ee586 100644 --- a/cc/trees/layer_tree_host_impl_unittest.cc +++ b/cc/trees/layer_tree_host_impl_unittest.cc @@ -731,7 +731,9 @@ TEST_F(LayerTreeHostImplTest, ScrollVerticallyByPageReturnsCorrectValue) { gfx::Point(), SCROLL_BACKWARD)); } -TEST_F(LayerTreeHostImplTest, ScrollWithUserUnscrollableLayers) { +// The user-scrollability breaks for zoomed-in pages. So disable this. +// http://crbug.com/322223 +TEST_F(LayerTreeHostImplTest, DISABLED_ScrollWithUserUnscrollableLayers) { LayerImpl* scroll_layer = SetupScrollAndContentsLayers(gfx::Size(200, 200)); host_impl_->SetViewportSize(gfx::Size(100, 100)); |