summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-10 05:40:09 +0000
committersadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-10 05:40:09 +0000
commit8a8929a614b78a6c33a3bd9b42a68286237f21de (patch)
tree53aba3cbd42f778b666edac70ff0744a8498a133
parentb8c13c5c568bbdbf87c2c9f47364b6c88436c287 (diff)
downloadchromium_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.cc19
-rw-r--r--cc/layers/layer_impl_unittest.cc4
-rw-r--r--cc/trees/layer_tree_host_impl_unittest.cc4
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));