New issue
Advanced search Search tips

Issue 753053 link

Starred by 2 users

Issue metadata

Status: Available
Owner: ----
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug



Sign in to add a comment

Slow Scrolling on long pages when using mac trackpad with synergy

Reported by jared.de...@gmail.com, Aug 7 2017

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36

Example URL:

Steps to reproduce the problem:
1. Enable the "Smooth Scrolling" flag (on by default)
2. Navigate to a long web page
3. Use a trackpad with momentum / acceleration
3. Scroll down very quickly

What is the expected behavior?
The page should scroll down very quickly.

What went wrong?
The scrolling seems to get chopped up into lots of short, slow scrolling bursts. This leaves the page lurching down slowly for several seconds after the action occurred.

Does it occur on multiple sites: Yes

Is it a problem with a plugin? No 

Did this work before? N/A 

Does this work in other browsers? Yes

Chrome version: 59.0.3071.115  Channel: stable
OS Version: OpenSUSE Tumbleweed
Flash Version: 

I use Synergy to share a Mac trackpad with a Linux desktop. Disabling the smooth scrolling flag fixes the issue and allows the page to scroll as quickly as the trackpad tells it to.
 
Labels: Needs-Milestone

Comment 2 by kochi@chromium.org, Aug 8 2017

Components: -Blink Blink>Scroll
Routing to Blink>Scroll.
Can anyone triage this?
After some more debugging, I am able to reproduce this even when smooth scrolling is disabled. The behavior seems to be caused by long pages with lots of content. Long empty pages do not exhibit the problem.

Running a performance profile between the two types of pages indicates that the issue is that the "Update Layer Tree" activity is running on each scroll event and taking longer to complete than it takes the next scroll event to arrive. This causes a backlog of scroll events that get handled increasingly later than they arrived.

I'm not sure how feasible it is to make this activity more performant, so it might be necessary to handle accumulated scroll events explicitly. Instead of queueing the events synchronously, the movement vectors should be added into a single scroll event.

Synergy uses a similar strategy for accumulating mouse events, but it has no way of taking into account the latency introduced by Chrome's scroll handlers.

Firefox does not have this issue. I can't immediately tell if it is because the activities triggered by the scroll event are faster, or if they are accumulating scroll vectors.
Labels: Hotlist-ThreadedRendering
Hotlist-ThreadedRendering please triage for "Update Layer Tree" performance issues.
Owner: petermayo@chromium.org
To get some tracing and scope of the issue ...
Summary: Slow Scrolling on long pages when using mac trackpad with synergy (was: Smooth Scrolling Slows Scrolling)
re #10: Thanks for doing a performance check and noticing "Layer Tree Update". Are you able to record and attach aperformance trace as well. It will help us in identifying the issue quicker. Here is the instruction: https://www.chromium.org/developers/how-tos/submitting-a-performance-bug

I recommend just having that one problematic tab open while recording the trace to ensure your recording does not include any potentially private data. 
Thank you for providing those instructions. I used a massive GitLab diff for this trace. (https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/12069/diffs)
trace_slow-scroll.json.gz
4.8 MB Download

Comment 8 by ajha@chromium.org, Aug 21 2017

Labels: Needs-Investigation
petermayo@: Could you please help in investigation of the attached trace.

Comment 9 by bokan@chromium.org, Aug 24 2017

Status: Assigned (was: Unconfirmed)
Owner: ----
Status: Available (was: Assigned)
It seems this might be better on someone else's queue.
It looks like this was fixed sometime in the last 8 months, because I can no longer reproduce it. When I scroll quickly on large complex pages it does not get bogged down. I notice occasional frame drop where the page scroll "animation" fails to render for a few hundred milliseconds, but when it renders the next frame it jumps to where the page scroll position should have been given the real time that passed. Thanks for looking into this.

Sign in to add a comment