New issue
Advanced search Search tips

Issue 597266 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug



Sign in to add a comment

Fling past content when scrolling on main thread

Project Member Reported by bokan@chromium.org, Mar 23 2016

Issue description

Version: 51.0.2681.0
OS: Android

What steps will reproduce the problem?
(1) Disable threaded scrolling with --disable-threaded-scrolling or in about:flags
(2) Find a scrollable page (e.g. en.m.wikipedia.org)
(3) Pinch zoom in a bit (~2x should be enough)
(4) Fling to the bottom of the page

What is the expected output?
The page should stop scrolling when it reaches the end

What do you see instead?
The page goes past the content bounds and snaps back shortly after.

This is related to the top control resize adjustment. Blink isn't given an updated size in real time as the top controls hide so we have to provide an "adjustment" in maximumScrollPosition. It seems like there's a bug in that adjustment relating to scale (the bug doesn't repro unless you're zoomed in).
 

Comment 1 by bokan@chromium.org, Mar 29 2016

Labels: -Hotlist-Polish
Owner: bokan@chromium.org
Status: Started (was: Available)
Project Member

Comment 2 by bugdroid1@chromium.org, Mar 30 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7ad75edb50ed225455b994f4e310d6db86205aa2

commit 7ad75edb50ed225455b994f4e310d6db86205aa2
Author: bokan <bokan@chromium.org>
Date: Wed Mar 30 19:29:57 2016

Update property trees' bounds delta before updating viewport container sizes.

Property trees store the bounds delta, caused by showing and hiding top
controls, separately from per-node data. This means that after a pending tree is
activated, these values need to be filled in from the LayerImpls. This was
previously happening after the call to UpdateViewportContainerSizes. This caused
a problem since UpdateViewportContainerSizes would indirectly clamp the layers
scroll offsets using LayerImpl::MaxScrollOffset, which gets the bounds_delta
from the property tree. This meant the bounds_delta would return a value of 0,
causing incorrect clamping.

BUG= 597266 
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Review URL: https://codereview.chromium.org/1841783003

Cr-Commit-Position: refs/heads/master@{#384054}

[modify] https://crrev.com/7ad75edb50ed225455b994f4e310d6db86205aa2/cc/trees/layer_tree_host_impl.cc
[modify] https://crrev.com/7ad75edb50ed225455b994f4e310d6db86205aa2/cc/trees/layer_tree_host_impl_unittest.cc

Comment 3 by bokan@chromium.org, Apr 4 2016

Status: Fixed (was: Started)

Sign in to add a comment