Project: chromium Issues People Development process History Sign in
New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.
Starred by 576 users

Comments by non-members will not trigger notification emails to users who starred this issue.
Status: Fixed
Owner:
Closed: Jan 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Feature

Blocked on:
issue 395297
issue 520947
issue 537393
issue 539339
issue 550554
issue 552556
issue 563760
issue 571680
issue 574221

Blocking:
issue 468754
issue 55218
issue 61140
issue 62833
issue 468747
issue 501568

Restricted
  • Only users with EditIssue permission may comment.



Sign in to add a comment
Smooth scrolling
Reported by bharat2...@gmail.com, Sep 3 2008 Back to list
Product Version      : 0.2.149.27 (1583)
URLs (if applicable) : http://en.wikipedia.org/wiki/Main_Page
Other browsers tested:
Add OK or FAIL after other browsers where you have tested this issue:
     Safari 3: OK
    Firefox 3: OK
         IE 7: OK

What steps will reproduce the problem?
1. scroll using the scroller
2.
3.

What is the expected result?
should scroll smoothly

What happens instead?
scrolls in steps.not smooth

Please provide any additional information below. Attach a screenshot if 
possible.
 
 
Comment 1 by Deleted ...@, Sep 3 2008
See also issue 117.
Comment 2 Deleted
Personally I find scrolling generally smooth on normal HTML pages, however any Flash 
content visible on the page causes jerky/slow scrolling.
I like the scroll implementation for using a scroll wheel. Perhaps smooth scrolling 
should only be used for track pad scrolling. 
How about optional smooth scroll? Just as in Firefox.
Comment 6 by Deleted ...@, Sep 10 2008
I'm using a Lenovo ThinkPad with UltraNav.  Using the middle button in combination 
with the trackpoint to scroll moves the page too much, and I lose track of where I am 
when reading long pages of text.  I can't find any Windows settings to adjust scroll 
amount, but scrolling works fine in Firefox and IE with the trackpoint+3rd button or 
edge of touchpad.  Neither works in Safari for Windows, actually - so perhaps this is 
a WebKit issue that Google Chrome has attempted to address... but it's not good 
enough yet.
Comment 7 by evan@chromium.org, Sep 10 2008
Labels: -Type-Bug -Area-Unknown Type-Feature Area-BrowserUI
Summary: Smooth scrolling (was: NULL)
Retitling and marking as a feature request.

kevin.cormier: please file bugs unrelated to this one separately.
Comment 8 by bwa...@gmail.com, Oct 1 2008
+1 scrolling is even way more jerky than firefox with smooth scroll off. And this is 
on a regular ms mouse with a scroll wheel.
Comment 9 by gab...@gmail.com, Oct 6 2008
Scolling with Synaptics Trackpad is really nasty - too rough with respect to MS IE.
Almost unusable.

Labels: Mstone-X
Status: Available
For me, scrolling does not work with a Lenovo ThinkPad running Windows Vista
Ultimate.  In other applications, I can scroll by holding the middle mouse button and
then moving the Trackpoint up and down.  In Chrome, this does not work, which
significantly reduces its usability for me.
Issue 930 has been merged into this issue.
Scrolling feels very "laggy"/"jumpy" compared to other browsers, both while using the 
auto scroll and regular scroll features. 
Repeatedly scrolling up and down using auto scroll in a full-screen test shows that 
chrome uses 70%+ CPU. While doing the same test in firefox it reached a max of ~20%. 

http://www.dynamicwebsitesystems.com/ScrollTest.htm

Win XP Pro
AMD Athlon XP 2400+ ~2.01 GHz
1600x1200, 19" monitor
Chrome 0.3.155.0
Firefox 3.0.4
Comment 14 by dan...@gmail.com, Nov 25 2008
I noticed on the first Chrome release that scrolling only worked in the down
direction with my laptop trackpad virtual scroll, but not back upwards. It annoyed me
so much that I decided not to use Chrome until it had been fixed.

Then I later downloaded a Chromium developer release, and the issue had been somewhat
fixed. It was able to scroll down and back up with the trackpad. But, as you say, the
motion is very jumpy which is unpleasant and also makes it difficult to navigate/read
text comfortably.
http://www.google.com/support/forum/p/Chrome/thread?tid=51ec41555d6e2ba5&hl=en

Link exchange - hoping for feature addition of smooth scrolling as is available in
Mozilla Seamonkey and FireFox

Comment 16 by bra...@gmail.com, Dec 8 2008
I believe almost every reply to this issue is completely misunderstanding the 
original meaning of this issue.  This is not an issue about "laggy" or "jumpy" 
scrolling, or scrolling using up CPU.  This is not an issue about middle clicking and 
being able to scroll in any direction or not scrolling with trackpads.

Try playing with the option titled "Use smooth scrolling" in Firefox.

Without "smooth scrolling":
When you scroll one step up or down, the frame redraws once, and window contents jump 
up/down about 100 pixels.

With "smooth scrolling":
Over ~200 ms, the frame redraws several times, making the frame contents move 
gradually and smoothly to the desired position.  This helps the eye follow text 
movement.

This is a feature request to add the option of "smooth scrolling"
The middle click scrolling behavior is known as "Universal scrolling".
Issue 5103 has been merged into this issue.
Comment 19 by Deleted ...@, Feb 28 2009
I am still using IE7 only for this reason : no smooth scrolling on chrome :)
I noticed that the latest dev versions seem to scroll much smoother than the current 
stable release.
Comment 21 by rcdai...@gmail.com, Mar 24 2009
When viewing a very long conversation in GMail using Chrome 2.0.170.0, it is very 
choppy. Scrolling is very slow in this case.
smooth scrolling is a need for a web browser. when reading a text it is frustrating to 
always loose your place in the text. I suggest to Google Inc. that this is changed as 
soon as possible!
Comment 23 by Deleted ...@, Apr 30 2009
Even with the new new Chrome beta 2, any page that has any kind of flash/dynamic 
content the scrolling gets very sluggish.  

Pages that just have text and no active content, the scrolling is completely perfect.
Hopefully someone can work on this feature for 2.1..more features are needed to 
attract and keep new users and to also keep current users.
Comment 25 by Deleted ...@, May 22 2009
Please add smooth scrolling.
Chrome just hurts on a netbook :(
Comment 26 by bwa...@gmail.com, May 22 2009
We really need this, any other browser worth it's salt and all the big browsers have an 
option for smooth scrolling. Scrolling with a touchpad is awful on chrome.
Enough already. This is the 8th most starred bug on the system. The Chromium team is 
WELL AWARE of it, and they have the sense to assess the importance themselves. They're 
probably working on it right now. All posting a whiney comment here does is send over 
125 whiney emails to people who feel the same way as you.

READ BEFORE POSTING: DO NOT ADD COMMENTS JUST TO ASK FOR THIS FEATURE. YOU RISK 
PROVOKING OTHERS TO UNSTAR IT JUST TO STOP RECEIVING EMAILS ABOUT YOUR COMMENTS. JUST 
STAR IT YOURSELF AND BE PATIENT. Thanks.
Comment 28 Deleted
Smooth scrolling babey I need it
Comment 30 by Deleted ...@, May 26 2009
I, too, would love to see smooth scrolling as an option in Chrome.
Can anyone work on this for 3.0? 
Gmail is a great example of how Chrome's scrolling is dismal compared to the 
competitors (Firefox). However Safari is just as choppy as Chrome, so I'm guessing it 
is a webkit issue?
Comment 33 Deleted
Comment 34 by igi...@gmail.com, Jul 1 2009
People, have some patience, would you? There are other much more important issues which 
are currently the focus of the team, e.g. issue 19, issue 84, etc. Smooth scrolling is 
*not* essential. It's a nice-to-have.
Comment 35 Deleted
Personally I rather hope the Chromium developers are spending their time developing 
solutions to all three of these issues rather than reading these impromptu forums on 
how they should do their jobs.
Comment 37 Deleted
@#32:
I think smooth scroll is not webkit's problem. Safari on mac is really nice when comes 
to scrolling.

Something I noticed from FF3.5 vs Opera 10, opera's smooth scrolling is so much better, 
even in youtube (and other flash content).

Anyone tried with FF smooth scrolling add-on?
Safari's 4.0.2 scrolling is not as smooth as Firefox's 3.5. I compared scrolling on
my Gmail inbox using both Firefox 3.5, Chromium and Safari. Firefox is the smoothest
by far, and responsive. Safari is second, but scrolling responsiveness lags behind
with respect my input. Chromium is the worst by far.
Comment 40 by maste...@gmail.com, Jul 21 2009
Picasa-like smooth scrolling!
Nice. Especially with its scrubber.
And if it is used, I think the input controls might be better adapted with the 
scrollbar style.
Comment 42 by dhw@chromium.org, Aug 6 2009
Issue 18657 has been merged into this issue.
Not sure if this is the right place for this issue, but at home Chrome respects my 
mouse wheel settings (Logitech MX518 on Windows 7 RC1).  At work it always seems to 
page down, even if I have it set to scroll one line at a time. (MS IntelliMouse Optical 
- Windows XP SP3)
Hi,
I wrote a little extension for that.
Currently it is not more than a proof of concept.

You can find everything here:
http://chromium.exxe.ath.cx/smoothscroll/

BTW: If some of you are bored you can help me making it better. If improvements are 
made i will update the extension via an auto update.

Patrick.
Comment 45 by rcdai...@gmail.com, Aug 17 2009
patrick, dude, amazing job on this. You've definitely made me a happier man. Absolutely 
astounding job on this extension.
Comment 46 by dch...@gmail.com, Aug 17 2009
patrick, it made scrolling even worse, at least on a Mac version of Chromium using a 
trackpad two-finger scrolling. 

Scrolling is not the same as in Safari, it jumps too fast, and accelerates.
Comment 47 by rcdai...@gmail.com, Aug 17 2009
I'm actually starting to find some issues with this extension, although for the most 
part it works fine for me on Windows. If you visit this slashdot article:

http://yro.slashdot.org/story/09/08/16/1146242/Woman-With-Police-Monitoring-Blog-
Arrested

Notice the very long page of comments at the bottom. If you scroll down through these 
quickly with the mouse wheel, the "smooth scrolling" effect becomes very choppy. If 
you scroll slowly, it is not noticeable.
Yes, i am aware of these performance problems. It gets even worse if you are using a 
slow PC. 

@dchest: sorry, i have not tested the extension in linux or mac builds yet.

However, please write bug reports or suggestions here:
http://chromium.exxe.ath.cx/smoothscroll/

Patrick.
Comment 49 by evrye...@gmail.com, Aug 17 2009
how do I enable extensions?  When I click dl it says"could not download. extensions not 
enabled?"
Thanks Patrick! Just thought I'd mention that your extension works perfectly on my 
Linux build of Chrome (3.0.198.1, Kubuntu 64-bit).

@evryedge: You have to run Chrome with the --enable-extensions switch. What I would do 
is modify your "Google Chrome" shortcut to contain this switch.
Comment 51 by bnre...@gmail.com, Aug 18 2009
Patrick! while your extension is in its obvious early stages with the bugs you've 
already made known, your work is nothing less than awesome! very much appreciated!!

another bug that you probably already know about: when on a page where there is 
scrollable text/area *within* a page that is already scrollable, only the main page 
will scroll, not the smaller, embedded scrollable areas.
Updated to 0.2

This version fixes mousewheel-scrolling of elements which are scrollable.
Users who have already installed the extension will get an auto update within the next 
hours.

regards,
Patrick.
GREAT EXTENSION
Comment 54 Deleted
I agree... a great extension! maybe you could see if implement nativly that extension, 
but even if not, when the extensions system will be ready for all users and the UI 
implemented with link to gallery, this extension, I'm sure, will be one of the most 
rated! great job... ;)
Comment 56 by dch...@gmail.com, Oct 22 2009
Can we please move the extension talk to some other place? I'm subscribed to this thread to head 
news/discussion from Chromium developers about adding smooth scrolling. Thanks!
Comment 57 by igi...@gmail.com, Oct 22 2009
I agree with dchest . Take the extension chatter to 
http://www.chromeextensions.org/appearance-functioning/smoothscroll/
Comment 58 by mbh...@gmail.com, Oct 26 2009
@dchest: regarding performance, is this related to the very high CPU usage for 
scrolling on the Mac? A couple months ago, simple dragging of the scrollbar would 
use all CPU...Mac builds certainly haven't been in the same ballpark as Windows 
builds for scrolling speed.
Comment 59 by boekh...@gmail.com, Nov 26 2009
Hi,

I'm running:
 OS X v10.6.2
 Chrome version=4.0.249.12 

Here's my two cents worth. I've noticed scrolling issues when fancy adverts are 
loaded in the background using Adobe Flash Player 10.

As an example:
  http://www.nu.nl/

(Unfortunately the content changes with time (so it might be hard to reproduce);  
I've included the page source as text attachment).
Note I've also noticed this with (for instance) BBC News pages with certain 'fancy' 
adverts (but can't reproduce this).

Note that this particular page loads fine in (Mac):
   Safari 4 (latest version)
and on Windows XP (latest):
   Chrome version 3.0.195.21 (ported to USB)
   IE6.0.2900.5512.xpsp_sp3_gdr.090804-1435

Happy problem hunting.

Gegroet.   Paul.





www_nu_nl.TXT
29.8 KB View Download
Comment 60 by dch...@gmail.com, Nov 26 2009
I think scrolling with trackpad on Mac is okay now as of 4.0.249 (and even before). 
Thanks for fixing it!
Comment 61 by boekh...@gmail.com, Nov 26 2009
Hi,

I disagree with comment 60; even this morning, the www.nu.nl page freezes (using 
cursors or trackpad).

I'm running:
 OS X v10.6.2
 Chrome version=4.0.249.12 

Gegroet.   Paul.
Issue 28973 has been merged into this issue.
Comment 63 Deleted
Status: Upstream
BUG CLARITY
This bug covers implementing "smooth scrolling" a la the preferences in IE and 
Firefox (not yet clear whether we'll put this under a pref in Chrome).  It does NOT 
cover things like "scrolling on the Mac feels worse than in Safari", "my page scrolls 
slowly when there are Flash ads", etc.  Those are other bugs, that we should fix 
regardless of whether we do "smooth scrolling".  Hopefully they're on file already, 
but feel free to file them if not.

I am now working on the implementation of this in WebKit at 
https://bugs.webkit.org/show_bug.cgi?id=32356 .  WebKit currently does not have 
support for smooth scrolling on any platform.

Please do not add noise to this bug (e.g. "yay", "please fix soon", "i really want 
this", "why is this not in yet", "hey here's an extension to do this").  It only 
distracts, which makes it take longer to implement this.
Comment 65 by jakob...@gmail.com, Dec 10 2009
Comment 64 by pkasting@chromium.org, Yesterday (21 hours ago)
> (not yet clear whether we'll put this under a pref in Chrome)

I expect smooth scrolling to be a performance killer and cpu-eater (at least) on 
netbooks. Please, don't implement this without a way to disable it.
Comment 66 by oritm@chromium.org, Dec 18 2009
Labels: -Area-BrowserUI Area-UI-Features
Area-UI-Features label replaces Area-BrowserUI label
Comment 67 by weij...@gmail.com, Jan 7 2010
Scrolling has gotten worse on the latest Mac dev build (4.0.288.1).  
Don't add unrelated comments to existing bugs.  File new bugs.
Issue 20093 has been merged into this issue.
Issue 32988 has been merged into this issue.
Labels: Area-UI
Labels: -Area-UI-Features
Labels: WebKitBug-32356
Comment 74 by Deleted ...@, Feb 27 2010
i agree, scrolling is terrible. 
since a main goal of chrome is to avoid flickering of any sort in the ui, you should 
have a look at how Opera handles scrolling with the smooth scrolling option set.
and do not forget the kinetic, especially when reaching the side of the page. The latest smooth scroll 
plugin for firefox does a nice touch at this.
pkasting@ - Are you finished with this bug on the webkit side?
Sorry to disagree with the people pointing out that the smooth scroll extension fixes things.

I've had the opportunity to use 2 different extensions on both Mac and Windows that advertise 
"smooth scroll", but they only work as smooth as the page contents allows.

On pages longer/heavier pages, with youtube videos (etc) the scroll is usually very jerky.

I believe the smooth scroll should be implemented on a low level on the browser, and not be 
dependent on the performance of the extensions engine.

Extensions tested: "SmoothScroll" and "Chromium Wheel Smooth Scroller"
The availability of extensions is definitely not a solution. Lack of this ability
makes Chrome inconsistent with all other browsers, as well as their host operating
systems. It needs to be implemented directly. That said, LAUREN7INO, the performance
of existing smooth scrolling extensions seem to be more or less totally dependent on
the browser itself. For instance, until the latest dev build, scrolling on the Mac
version of Chrome was very jerky and slow, regardless of which smooth scrolling
extension was in use. With the latest dev build, it is much improved, without any
changes to the extensions.
This bug has nothing to do with smooth scrolling extensions.  Please stop wasting 
everyone's time by debating about how well extensions work and whether they're 
substitutes for doing things in the browser.  This bug is about implementing smooth 
scrolling in Chrome itself.

@76: The upstream bug is pretty clear about what the state of the world is.
Comment 80 Deleted
This is a bug tracker, and as such its primary purpose is for us to coordinate 
engineering effort.  We have forums (e.g. http://www.google.com/support/chrome/?hl=en-
US ) and mailing lists (e.g. chromium-discuss@chromium.org) for people to discuss 
things and have a sense of community to their heart's content.  In here, however, 
messages go directly to engineers' inboxes, and that means every off-topic message 
directly wastes the time of the people who are trying to make Chrome better.  It is 
therefore extremely important to observe good bug tracker etiquette, and not doing so 
will earn first blunt comments, and then locked-down, read-only bugs if needed.
Issue 23201 has been merged into this issue.
They must like getting the emails, else-wise they would have fixed this two year old bug, not to mention the fact that all the other browsers do smooth scrolling.
Comment 84 by rcdai...@gmail.com, Jun 29 2010
I use the smooth scroll extension because it isn't a built in feature, and on a Core 2 Duo machine with 2GB of RAM, it runs like complete crap. The performance of this feature in an extension is sub-par compared to what it would be as a built-in feature written in good ol C++.
'Chromium Wheel Smooth Scroller' is a good extension - works with track pads too, but needs tweaking in the options to make it to your preference. On most pages it works well, but looks a little odd on you tube when scrolling. The extension has an iPhone scroll effect, at the end or top of the page it bounces. - The implementation of the extension is good, although by no means perfect - would like to see an Chrome's default scrolling use this method, it's different to other browsers.
Re: Comment 85 by JackBlack340,

I don't have extensions due to ram security etc. but i tried your suggestion and it was the very good, it felt professional. Surely chrome guys could implement the code into chrome?

Maybe someone could setup a separate bug issue "Implement Chromium Wheel Smooth Scroller Extension into default chrome." for us to follow and be worked on?
I prefer using SmoothScroll, and that's maybe why Google don't built it in, to let users chose what they prefer.
Comment 88 by wra...@gmail.com, Jun 29 2010
> to let users chose what they prefer.
Just the opposite, Chromium developers are against user-customizable behavior.
And users can't choose anything non-standard for non-http tabs.
> Chromium developers are against user-customizable behavior

Yeah, that's why they spent so much time and effort implementing themes and extensions, so users couldn't customize their browser. I suspect the real reason they haven't implemented this is because, like comment 87 said, there's a lot of debate over which method is best. Also, some people just don't like smooth scrolling. It's one of those nice-to-have-but-not-essential things that is best left to extensions.
Comment 90 by Deleted ...@, Jun 29 2010
>I prefer using SmoothScroll

not cool bro
Labels: Restrict-AddIssueComment-Commit
There isn't debate over which method is best.  If anyone bothered to read the upstream bug about this you would see that the issue is that we've written a patch that adds smooth scrolling, but the WebKit reviewers are asking that we completely refactor scrolling in WebKit before landing it.  This is simply technically difficult.
Comment 92 by evan@chromium.org, Aug 6 2010
Status: ExternalDependency
Status: Started
The upstream patch has landed.  Once that's merged to Chromium, Windows will have smooth scrolling.  The other platforms don't have it yet, though they could easily turn it on; I think it's prudent to test things for a bit first.
Labels: -Mstone-X Mstone-8
We had to disable this shortly after landing due to several bugs.

I'm hoping to get this in M8, but that's now at risk.
Labels: -Area-UI -WebKitBug-32356 Area-WebKit
Labels: -Mstone-8 Mstone-9
Labels: -Mstone-9 Mstone-10 MovedFrom-9
Moving all mstone:9 bugs that are not ReleaseBlockers to mstone:10
Issue 67307 has been merged into this issue.
Labels: -Mstone-10 -MovedFrom-9 Mstone-11
Labels: -Mstone-11 MovedFrom-11 Mstone-12
rolling non releaseblocker mstone 11 bugs to mstone 12. 
Blocking: 55261
Blocking: 55218
Blocking: 62833
Labels: -Mstone-12 Mstone-14
Owner: scottbye...@gtempaccount.com
Status: Assigned
Scott's going to look into this.

The primary blocker to enabling the v1 experience is adding a timer heuristic that will auto-disable smooth scrolling when the previous scroll (smooth or not) took "too long", and re-enable it when the previous scroll was fast.  There is not currently a separate bug on this.
Project Member Comment 106 by bugdroid1@chromium.org, Jun 23 2011
The following revision refers to this bug:
    http://src.chromium.org/viewvc/chrome?view=rev&revision=90136

------------------------------------------------------------------------
r90136 | scottbyer@chromium.org | Wed Jun 22 17:05:39 PDT 2011

Changed paths:
 M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/glue/webpreferences.h?r1=90136&r2=90135&pathrev=90136
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/about_flags.cc?r1=90136&r2=90135&pathrev=90136
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/app/generated_resources.grd?r1=90136&r2=90135&pathrev=90136
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/chrome_browser.gypi?r1=90136&r2=90135&pathrev=90136
 M http://src.chromium.org/viewvc/chrome/trunk/src/content/common/view_messages.h?r1=90136&r2=90135&pathrev=90136
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/tab_contents/render_view_host_delegate_helper.cc?r1=90136&r2=90135&pathrev=90136
 M http://src.chromium.org/viewvc/chrome/trunk/src/build/common.gypi?r1=90136&r2=90135&pathrev=90136
 M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/glue/webpreferences.cc?r1=90136&r2=90135&pathrev=90136
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/chrome_switches.cc?r1=90136&r2=90135&pathrev=90136
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/chrome_switches.h?r1=90136&r2=90135&pathrev=90136

Linux/CrOS smooth scrolling support - behind a flag.

Add runtime flag to control smooth scrolling. Add compile time flag handling for a GYP_DEFINE (enable_smooth_scrolling=1).

BUG=575,61140
TEST=compile still works without the flag. Compiling with the flag works once the WebKit change is landed, and then the flag appears in the about:flags page, and actually turns on that WebKit implementation.


Review URL: http://codereview.chromium.org/7034052
------------------------------------------------------------------------
Comment 107 by k...@google.com, Jul 28 2011
Labels: -Mstone-14 Mstone-15 MovedFrom-14
Punting out non-critical bugs.  Please move back to 14 if you believe this was done in error.
Labels: -Mstone-15 Mstone-16
Will be on behind a flag for Linux and Windows (Mac is a separate implementation that is already on). On by default for ChromeOS. Moving coming out from behind the flag out to M16.
Project Member Comment 109 by bugdroid1@chromium.org, Sep 1 2011
The following revision refers to this bug:
    http://src.chromium.org/viewvc/chrome?view=rev&revision=99186

------------------------------------------------------------------------
r99186 | thakis@chromium.org | Thu Sep 01 08:23:56 PDT 2011

Changed paths:
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/ui/ppapi_uitest.cc?r1=99186&r2=99185&pathrev=99186
 M http://src.chromium.org/viewvc/chrome/trunk/src/content/renderer/render_view_browsertest_mac.mm?r1=99186&r2=99185&pathrev=99186
 M http://src.chromium.org/viewvc/chrome/trunk/src/content/renderer/render_view.h?r1=99186&r2=99185&pathrev=99186
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/tab_contents/render_view_host_delegate_helper.cc?r1=99186&r2=99185&pathrev=99186
 M http://src.chromium.org/viewvc/chrome/trunk/src/build/common.gypi?r1=99186&r2=99185&pathrev=99186
 M http://src.chromium.org/viewvc/chrome/trunk/src/content/common/content_switches.h?r1=99186&r2=99185&pathrev=99186
 M http://src.chromium.org/viewvc/chrome/trunk/src/base/test/mock_time_provider.h?r1=99186&r2=99185&pathrev=99186
 M http://src.chromium.org/viewvc/chrome/trunk/src/content/common/content_switches.cc?r1=99186&r2=99185&pathrev=99186

Enable smooth scrolling on mac

This confuses a few unit tests, so add some machinery to disable the feature in tests and do so in the tests that need it.

BUG=61140,575
TEST=Go to en.wikipedia.org, hit space. Scroll should be animated.

Review URL: http://codereview.chromium.org/7693019
------------------------------------------------------------------------
Labels: -Mstone-16 MovedFrom-16 Mstone-17
Comment 111 by k...@google.com, Dec 19 2011
Labels: -Mstone-17 Mstone-18 MovedFrom-17
Moving bugs marked as Assigned but not blockers from M17 to M18.  Please move back if you think this is a blocker, and add the ReleaseBlock-Stable label.  If you're able.
Labels: -Mstone-18 Mstone-20 MovedFrom-18
While some progress has been made, there are a number of issues left that need to be fixed before this can come out from behind the flag on Windows and Linux. Everything is under way, the issues are deeper than they first appeared.
Comment 113 by k...@google.com, Apr 27 2012
Labels: -Mstone-20 MovedFrom-20
These bugs have hit their move limit.  Please re-target as appropriate.
Cc: jam...@chromium.org
Issue 128324 has been merged into this issue.
Labels: -Restrict-AddIssueComment-Commit Restrict-AddIssueComment-EditIssue
Project Member Comment 117 by bugdroid1@chromium.org, Apr 6 2013
Labels: -Cr-Content Cr-Blink
Cc: jdduke@chromium.org briander...@chromium.org
Scott, can you provide a summary of the blocking issues here?

We may want to consider moving the implementation to the Impl thread and using the same mechanisms that fling scroll animations use. It'll be immune to main thread jank and might be easier to implement at this point if fling scroll animations have already solved the remaining issues smooth scrolling needs to solve. It'll also make future development easier if we improvements to one can easily be translated into improvements in the other.
I noticed the ScrollAnimatorNone class is already enabled by default on ChromeOS. ScrollANimatorNone is the same class used for Windows and Linux. Is there anything specific about Windows and Linux that prevents us from enabling it by default everywhere?
ChromeOS is a more controlled environment, some of the things that let smooth scrolling be smooth were enabled there by default along with smooth scrolling, mostly having to do with the compositor. I think we just need to see where things are at.
Cc: ajuma@chromium.org
Windows has a threaded compositor now, just like ChromeOS. Linux doesn't have the threaded compositor by default yet, but should soon once LinuxAura arrives.

ChromeOS doesn't have impl-side-painting enabled, so that shouldn't be blocking factor.

+ajuma, who is currently looking into animating scrollTo.
Cc: danakj@chromium.org davemoore@chromium.org vollick@chromium.org wjmaclean@chromium.org
Is there any update for this? Is the goal to eventually turn it on for all Aura platforms?

Also currently scrollAnimation is only enabled for FrameView (main frame scrollbars). Is that internal or something we want to fix moving forward?

Come across this when working on Issue 307578, adding scrollbar thinning/thickening animation for mouse over/away. Since that logic also has to live behind a flag on Aura, I would prefer if there is a way to separate out instead of putting both into ScrollAnimatorNone.
Project Member Comment 123 by bugdroid1@chromium.org, Apr 23 2014
The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=172418

------------------------------------------------------------------
r172418 | weiliangc@chromium.org | 2014-04-23T21:43:24.750050Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/page/PageAnimator.cpp?r1=172418&r2=172417&pathrev=172418
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderLayerScrollableArea.cpp?r1=172418&r2=172417&pathrev=172418
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/scroll-behavior/sub-frame-scroll-expected.txt?r1=172418&r2=172417&pathrev=172418
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderLayerScrollableArea.h?r1=172418&r2=172417&pathrev=172418
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/TestExpectations?r1=172418&r2=172417&pathrev=172418
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/scroll-behavior/sub-frame-scroll.html?r1=172418&r2=172417&pathrev=172418

Enable Scroll Animation for RenderLayerScrollableArea

In Blink, only FrameView scrollbars animation is enabled and serviced.
This patch enables scroll animation for non-mainframe scrollbars (
RenderLayerScrollableArea) and service them.

BUG=575, 299059, 307578, 359028

Review URL: https://codereview.chromium.org/214953004
-----------------------------------------------------------------
Project Member Comment 124 by bugdroid1@chromium.org, Jul 10 2014
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/749cbc62498edd705dba6138f924a82c75274c88

commit 749cbc62498edd705dba6138f924a82c75274c88
Author: skobes@chromium.org <skobes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Date: Thu Jul 10 01:06:35 2014

Impl thread smooth scrolling.

This is a first pass at smooth scrolling on the compositor thread.  It adds LayerTreeHostImpl::ScrollAnimated, which kicks off a scroll offset animation through the layer animation controller.

When the --enable-smooth-scrolling flag is present, InputHandlerProxy will call ScrollAnimated for composited wheel scrolls.

Once this is in the next steps are:

(1) Update the animation curve to aim at a new target when a wheel event comes in while a scroll animation is in progress.  (For now we just drop the event.)

(2) Unify the behavior with WebCore::ScrollAnimatorNone.  We should be able to share a lot of logic since cc::ScrollOffsetAnimationCurve is already exposed to Blink through compositor bindings (for http://crbug.com/243871).

BUG=575

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@282205 0039d316-1c4b-4281-b951-d872f2087c98


Project Member Comment 125 by bugdroid1@chromium.org, Jul 10 2014
------------------------------------------------------------------
r282205 | skobes@chromium.org | 2014-07-10T01:06:35.353897Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/renderer/input/input_handler_proxy_unittest.cc?r1=282205&r2=282204&pathrev=282205
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/renderer/input/input_handler_proxy.cc?r1=282205&r2=282204&pathrev=282205
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/renderer/input/input_handler_proxy.h?r1=282205&r2=282204&pathrev=282205
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/animation/animation_delegate.h?r1=282205&r2=282204&pathrev=282205
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_impl_unittest.cc?r1=282205&r2=282204&pathrev=282205
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_impl.cc?r1=282205&r2=282204&pathrev=282205
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/animation/layer_animation_controller_unittest.cc?r1=282205&r2=282204&pathrev=282205
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer_impl.cc?r1=282205&r2=282204&pathrev=282205
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/animation/layer_animation_controller.cc?r1=282205&r2=282204&pathrev=282205
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/input/input_handler.h?r1=282205&r2=282204&pathrev=282205
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_impl.h?r1=282205&r2=282204&pathrev=282205
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer_impl.h?r1=282205&r2=282204&pathrev=282205
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_impl.cc?r1=282205&r2=282204&pathrev=282205
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/animation/layer_animation_controller.h?r1=282205&r2=282204&pathrev=282205
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_impl.h?r1=282205&r2=282204&pathrev=282205
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/render_process_host_impl.cc?r1=282205&r2=282204&pathrev=282205

Impl thread smooth scrolling.

This is a first pass at smooth scrolling on the compositor thread.  It adds LayerTreeHostImpl::ScrollAnimated, which kicks off a scroll offset animation through the layer animation controller.

When the --enable-smooth-scrolling flag is present, InputHandlerProxy will call ScrollAnimated for composited wheel scrolls.

Once this is in the next steps are:

(1) Update the animation curve to aim at a new target when a wheel event comes in while a scroll animation is in progress.  (For now we just drop the event.)

(2) Unify the behavior with WebCore::ScrollAnimatorNone.  We should be able to share a lot of logic since cc::ScrollOffsetAnimationCurve is already exposed to Blink through compositor bindings (for http://crbug.com/243871).

BUG=575

Review URL: https://codereview.chromium.org/361143002
-----------------------------------------------------------------
Project Member Comment 126 by bugdroid1@chromium.org, Jul 18 2014
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7a7d5bec832fd997b6b2eef3ec9c0906b74ef16d

commit 7a7d5bec832fd997b6b2eef3ec9c0906b74ef16d
Author: skobes@chromium.org <skobes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Date: Fri Jul 18 22:37:26 2014

Scroll offset animation curve retargeting.

Adds support for updating the target of an in-progress input-triggered impl-side scroll offset animation, keeping the velocity function continuous.

BUG=575

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@284228 0039d316-1c4b-4281-b951-d872f2087c98


Project Member Comment 127 by bugdroid1@chromium.org, Jul 18 2014
------------------------------------------------------------------
r284228 | skobes@chromium.org | 2014-07-18T22:37:26.129864Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/animation/scroll_offset_animation_curve.h?r1=284228&r2=284227&pathrev=284228
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_impl_unittest.cc?r1=284228&r2=284227&pathrev=284228
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/animation/timing_function.cc?r1=284228&r2=284227&pathrev=284228
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_impl.cc?r1=284228&r2=284227&pathrev=284228
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/gfx/geometry/cubic_bezier_unittest.cc?r1=284228&r2=284227&pathrev=284228
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/gfx/geometry/cubic_bezier.cc?r1=284228&r2=284227&pathrev=284228
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/animation/timing_function.h?r1=284228&r2=284227&pathrev=284228
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/gfx/geometry/cubic_bezier.h?r1=284228&r2=284227&pathrev=284228
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/animation/scroll_offset_animation_curve_unittest.cc?r1=284228&r2=284227&pathrev=284228
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/animation/scroll_offset_animation_curve.cc?r1=284228&r2=284227&pathrev=284228

Scroll offset animation curve retargeting.

Adds support for updating the target of an in-progress input-triggered impl-side scroll offset animation, keeping the velocity function continuous.

BUG=575

Review URL: https://codereview.chromium.org/393713002
-----------------------------------------------------------------
Owner: skobes@chromium.org
Status: Started
Blockedon: chromium:395297
Project Member Comment 130 by bugdroid1@chromium.org, Jan 7 2015
The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=188007

------------------------------------------------------------------
r188007 | skobes@chromium.org | 2015-01-07T23:45:31.703467Z

Changed paths:
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/scroll-behavior/precise-delta-no-animate.html?r1=188007&r2=188006&pathrev=188007
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/events/WheelEvent.cpp?r1=188007&r2=188006&pathrev=188007
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/page/EventHandler.cpp?r1=188007&r2=188006&pathrev=188007
   M http://src.chromium.org/viewvc/blink/trunk/Source/web/tests/WebInputEventConversionTest.cpp?r1=188007&r2=188006&pathrev=188007
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/events/WheelEvent.h?r1=188007&r2=188006&pathrev=188007
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/scroll-behavior/precise-delta-no-animate-expected.txt?r1=188007&r2=188006&pathrev=188007

Plumb hasPreciseScrollingDeltas into ScrollGranularity for overflow scrolls.

This will let us re-land http://crrev.com/214953004, which was reverted in
http://crbug.com/383946.

BUG=575,417782

Review URL: https://codereview.chromium.org/831393003
-----------------------------------------------------------------
Labels: Hotlist-Input-Dev Cr-Internals-Compositing
Project Member Comment 132 by bugdroid1@chromium.org, Feb 6 2015
The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=189681

------------------------------------------------------------------
r189681 | skobes@chromium.org | 2015-02-06T20:39:43.576575Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/scroll/ScrollAnimatorNone.cpp?r1=189681&r2=189680&pathrev=189681
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/scroll/ScrollAnimator.h?r1=189681&r2=189680&pathrev=189681
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/scroll/ScrollAnimatorNone.h?r1=189681&r2=189680&pathrev=189681
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/layout/Layer.cpp?r1=189681&r2=189680&pathrev=189681

Update ScrollAnimator's copy of the layer dimensions after layout.

BUG=575

Review URL: https://codereview.chromium.org/905463007
-----------------------------------------------------------------
Project Member Comment 133 by bugdroid1@chromium.org, Feb 11 2015
The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=190002

------------------------------------------------------------------
r190002 | skobes@chromium.org | 2015-02-11T22:22:23.836895Z

Changed paths:
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/scroll-behavior/overflow-scroll-animates-expected.txt?r1=190002&r2=190001&pathrev=190002
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/layout/LayerScrollableArea.h?r1=190002&r2=190001&pathrev=190002
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/TestExpectations?r1=190002&r2=190001&pathrev=190002
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/scroll-behavior/overflow-scroll-animates.html?r1=190002&r2=190001&pathrev=190002
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/scroll-behavior/precise-delta-no-animate-expected.txt?r1=190002&r2=190001&pathrev=190002
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/layout/LayerScrollableArea.cpp?r1=190002&r2=190001&pathrev=190002
   M http://src.chromium.org/viewvc/blink/trunk/Source/web/WebPagePopupImpl.cpp?r1=190002&r2=190001&pathrev=190002
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/scroll-behavior/precise-delta-no-animate.html?r1=190002&r2=190001&pathrev=190002

Respect the smooth scrolling setting in LayerScrollableArea.

This was previously done in http://crrev.com/214953004 but reverted due to
http://crbug.com/383946.  With http://crrev.com/831393003 it should be safe to
re-land.  (This is also needed for http://crbug.com/417782 because everything
will go through the LayerScrollableArea path.)

BUG=575,417782

Review URL: https://codereview.chromium.org/882813005
-----------------------------------------------------------------
Project Member Comment 134 by bugdroid1@chromium.org, Feb 19 2015
The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=190451

------------------------------------------------------------------
r190451 | ccameron@chromium.org | 2015-02-19T09:35:14.793580Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/TestExpectations?r1=190451&r2=190450&pathrev=190451
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/scroll-behavior/overflow-scroll-animates.html?r1=190451&r2=190450&pathrev=190451
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/scroll-behavior/precise-delta-no-animate-expected.txt?r1=190451&r2=190450&pathrev=190451
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/layout/LayerScrollableArea.cpp?r1=190451&r2=190450&pathrev=190451
   M http://src.chromium.org/viewvc/blink/trunk/Source/web/WebPagePopupImpl.cpp?r1=190451&r2=190450&pathrev=190451
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/scroll-behavior/precise-delta-no-animate.html?r1=190451&r2=190450&pathrev=190451
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/scroll-behavior/overflow-scroll-animates-expected.txt?r1=190451&r2=190450&pathrev=190451
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/layout/LayerScrollableArea.h?r1=190451&r2=190450&pathrev=190451

Revert of Respect the smooth scrolling setting in LayerScrollableArea. (patchset #4 id:120001 of https://codereview.chromium.org/882813005/)

Reason for revert:
Regresses scrolling on Mac:
http://crbug.com/459739

Original issue's description:
> Respect the smooth scrolling setting in LayerScrollableArea.
> 
> This was previously done in http://crrev.com/214953004 but reverted due to
> http://crbug.com/383946.  With http://crrev.com/831393003 it should be safe to
> re-land.  (This is also needed for http://crbug.com/417782 because everything
> will go through the LayerScrollableArea path.)
> 
> BUG=575,417782
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=190002

TBR=ajuma@chromium.org,japhet@chromium.org,skobes@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=575,417782

Review URL: https://codereview.chromium.org/933823004
-----------------------------------------------------------------
Project Member Comment 135 by bugdroid1@chromium.org, Feb 20 2015
The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=190597

------------------------------------------------------------------
r190597 | skobes@chromium.org | 2015-02-20T22:35:38.911343Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/mac/ScrollAnimatorMac.mm?r1=190597&r2=190596&pathrev=190597

Suppress smooth scroll for trackpad scrolls on Mac.

Smooth scrolling doesn't make sense when the event is marked as having precise
scrolling deltas.  This change tells ScrollAnimatorMac to skip smooth scrolls
in this case even if smooth scrolling is otherwise enabled.  There is already
similar code in ScrollAnimatorNone for other platforms.

ScrollAnimatorMac now smooth-scrolls only for line/page/document granularity
(e.g., keyboard-triggered scrolls).  It was disabled for wheel scrolls in
http://trac.webkit.org/changeset/73683.

BUG=575,459739

Review URL: https://codereview.chromium.org/941843002
-----------------------------------------------------------------
Project Member Comment 136 by bugdroid1@chromium.org, Feb 23 2015
The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=190675

------------------------------------------------------------------
r190675 | skobes@chromium.org | 2015-02-23T18:37:13.067213Z

Changed paths:
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/scroll-behavior/precise-delta-no-animate.html?r1=190675&r2=190674&pathrev=190675
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/scroll-behavior/overflow-scroll-animates-expected.txt?r1=190675&r2=190674&pathrev=190675
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/layout/LayerScrollableArea.h?r1=190675&r2=190674&pathrev=190675
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/TestExpectations?r1=190675&r2=190674&pathrev=190675
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/scroll-behavior/overflow-scroll-animates.html?r1=190675&r2=190674&pathrev=190675
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/scroll-behavior/precise-delta-no-animate-expected.txt?r1=190675&r2=190674&pathrev=190675
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/layout/LayerScrollableArea.cpp?r1=190675&r2=190674&pathrev=190675
   M http://src.chromium.org/viewvc/blink/trunk/Source/web/WebPagePopupImpl.cpp?r1=190675&r2=190674&pathrev=190675

Reland: Respect the smooth scrolling setting in LayerScrollableArea.

This relands https://blink.lc/blink/commit/?id=5668429, which was reverted in
https://blink.lc/blink/commit/?id=a1303a8.

The Mac trackpad regression is addressed by
https://blink.lc/blink/commit/?id=021397d.

BUG=575,417782

Review URL: https://codereview.chromium.org/882813005
-----------------------------------------------------------------
overflow-scroll-animates.html is failing after Blink r190675 in #136.
Dashboard: http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=virtual%2Fthreaded%2Ffast%2Fscroll-behavior%2Foverflow-scroll-animates.html&testType=layout-tests

Blocking: chromium:468747
Blocking: chromium:468754
Project Member Comment 140 by bugdroid1@chromium.org, Mar 20 2015
The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=192111

------------------------------------------------------------------
r192111 | skobes@chromium.org | 2015-03-18T18:20:13.063587Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/TestExpectations?r1=192111&r2=192110&pathrev=192111
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/scroll-behavior/overflow-scroll-animates.html?r1=192111&r2=192110&pathrev=192111

Fix timeout of overflow-scroll-animates.html in virtual/threaded.

When threaded compositing is enabled, the effect of adding or removing a
scroll listener does not happen until the next frame.  To compensate for this,
the test now waits before triggering input with eventSender.

BUG=458420,575

Review URL: https://codereview.chromium.org/1006423007
-----------------------------------------------------------------
Cc: skobes@chromium.org
Issue 476309 has been merged into this issue.
Cc: bokan@chromium.org
Labels: Hotlist-GPU-Fixit
Labels: -Hotlist-GPU-Fixit
Blockedon: chromium:520947
Blocking: chromium:501568
Blockedon: chromium:537393
Blockedon: chromium:539339
Blockedon: chromium:545234
Project Member Comment 150 by bugdroid1@chromium.org, Oct 27 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/46aad144b73e893f8b08a18e689ff444c301a39f

commit 46aad144b73e893f8b08a18e689ff444c301a39f
Author: skobes <skobes@chromium.org>
Date: Tue Oct 27 15:05:50 2015

Make compositor input-driven smooth scrolling smoother and snappier.

The animation time is now constant instead of proportional to the delta, which
felt sluggish.

The velocity matching in UpdateTarget now handles direction changes correctly,
and scales the first control point on the y axis instead of rotating it, which
gives a smoother velocity transition.

BUG=575
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

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

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

[modify] http://crrev.com/46aad144b73e893f8b08a18e689ff444c301a39f/cc/animation/animation_host.cc
[modify] http://crrev.com/46aad144b73e893f8b08a18e689ff444c301a39f/cc/animation/scroll_offset_animation_curve.cc
[modify] http://crrev.com/46aad144b73e893f8b08a18e689ff444c301a39f/cc/animation/scroll_offset_animation_curve.h
[modify] http://crrev.com/46aad144b73e893f8b08a18e689ff444c301a39f/cc/animation/scroll_offset_animation_curve_unittest.cc
[modify] http://crrev.com/46aad144b73e893f8b08a18e689ff444c301a39f/cc/trees/layer_tree_host_impl.cc

Blockedon: chromium:550554
Blocking: -chromium:55261
Blockedon: chromium:552556
Project Member Comment 154 by bugdroid1@chromium.org, Nov 9 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/529873b0d9581a1981717383d6066a1a9dbfa52f

commit 529873b0d9581a1981717383d6066a1a9dbfa52f
Author: ymalik <ymalik@chromium.org>
Date: Mon Nov 09 08:41:19 2015

Update layout tests to work when smooth scrolling is enabled by default

This CL updates expectations for tests that expect an instant scroll such
that they pass when smooth scroll is enabled.

Note:
- Some of the tests are re-written, but most of them apply the following change:
  shouldBe('scrollLeft', 'expectedScrollLeft)
  shouldBe('scrollTop', 'expectedScrollTop') -->
  shouldBecomeEqual('scrollLeft == expectedScrollLeft && scrollTop ==
    expectedScrollTop', 'true')
'shouldBecomeEqual' waits asynchronously until the condition is true.
- Some of the tests just expect a certain scroll offset and are not really
testing scroll-behavior. For those tests, the scrollAnimatorEnabled setting
is turned off by default.
  internals.settings.setScrollAnimatorEnabled(false)

BUG=575

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

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

[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/editing/input/reveal-contenteditable-on-input-vertically.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/editing/input/reveal-edit-on-input-vertically.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/dom/vertical-scrollbar-in-rtl-expected.txt
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/dom/vertical-scrollbar-in-rtl.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/events/continuous-platform-wheelevent-in-scrolling-div-expected.txt
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/events/continuous-platform-wheelevent-in-scrolling-div.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/events/gesture-pinch-zoom-scroll-bubble-expected.txt
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/events/gesture-pinch-zoom-scroll-bubble.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/events/node-event-anchor-lock.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/events/platform-wheelevent-in-scrolling-div-expected.txt
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/events/platform-wheelevent-in-scrolling-div.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/events/platform-wheelevent-paging-x-in-scrolling-div-expected.txt
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/events/platform-wheelevent-paging-x-in-scrolling-div.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/events/platform-wheelevent-paging-x-in-scrolling-page.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/events/platform-wheelevent-paging-xy-in-scrolling-div-expected.txt
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/events/platform-wheelevent-paging-xy-in-scrolling-div.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/events/platform-wheelevent-paging-xy-in-scrolling-page-expected.txt
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/events/platform-wheelevent-paging-xy-in-scrolling-page.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/events/platform-wheelevent-paging-y-in-scrolling-div-expected.txt
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/events/platform-wheelevent-paging-y-in-scrolling-div.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/events/platform-wheelevent-paging-y-in-scrolling-page.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/events/scroll-after-click-on-tab-index-expected.txt
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/events/scroll-after-click-on-tab-index.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/events/wheelevent-basic-expected.txt
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/events/wheelevent-basic.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/events/wheelevent-in-horizontal-scrollbar-in-rtl-expected.txt
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/events/wheelevent-in-horizontal-scrollbar-in-rtl.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/events/wheelevent-in-scrolling-div-expected.txt
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/events/wheelevent-in-scrolling-div.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/events/wheelevent-in-vertical-scrollbar-in-rtl-expected.txt
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/events/wheelevent-in-vertical-scrollbar-in-rtl.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/forms/suggestion-picker/date-suggestion-picker-mouse-operations-expected.txt
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/forms/suggestion-picker/date-suggestion-picker-mouse-operations.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-mouse-operations-expected.txt
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-mouse-operations.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/forms/suggestion-picker/month-suggestion-picker-mouse-operations-expected.txt
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/forms/suggestion-picker/month-suggestion-picker-mouse-operations.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/forms/suggestion-picker/time-suggestion-picker-mouse-operations-expected.txt
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/forms/suggestion-picker/time-suggestion-picker-mouse-operations.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/forms/suggestion-picker/week-suggestion-picker-mouse-operations-expected.txt
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/forms/suggestion-picker/week-suggestion-picker-mouse-operations.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/repaint/overflow-auto-in-overflow-auto-scrolled.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/repaint/overflow-scroll-in-overflow-scroll-scrolled.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/repaint/table-overflow-auto-in-overflow-auto-scrolled.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/repaint/table-overflow-scroll-in-overflow-scroll-scrolled.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/scroll-behavior/visual-viewport-scroll-no-onscroll-event.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/scrolling/absolute-position-behind-scrollbar-expected.txt
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/scrolling/absolute-position-behind-scrollbar.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/scrolling/editor-command-scroll-page-scale.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/scrolling/fixed-position-behind-scrollbar-expected.txt
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/scrolling/fixed-position-behind-scrollbar.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/scrolling/hover-during-scroll-expected.txt
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/scrolling/hover-during-scroll.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/scrolling/keyboard-scroll-page-scale.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/scrolling/listbox-wheel-event.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/scrolling/overflow-scrollability-expected.txt
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/scrolling/overflow-scrollability.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/scrolling/scrollbar-prevent-default-expected.txt
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/fast/scrolling/scrollbar-prevent-default.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/http/tests/navigation/same-document-scroll-position-restore-expected.txt
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/http/tests/navigation/same-document-scroll-position-restore.html
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/platform/mac/fast/events/platform-wheelevent-paging-x-in-scrolling-page-expected.txt
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/platform/mac/fast/events/platform-wheelevent-paging-y-in-scrolling-page-expected.txt
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/platform/win/fast/events/platform-wheelevent-paging-x-in-scrolling-page-expected.txt
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/platform/win/fast/events/platform-wheelevent-paging-y-in-scrolling-page-expected.txt
[modify] http://crrev.com/529873b0d9581a1981717383d6066a1a9dbfa52f/third_party/WebKit/LayoutTests/resources/js-test.js

Blockedon: chromium:552037
Blockedon: chromium:563759
Blockedon: chromium:563760
Labels: -MovedFrom-11 -MovedFrom-14 -MovedFrom-16 -MovedFrom-17 -MovedFrom-18 -MovedFrom-20 M-49
We hope to have this in Chrome 49 (though may of course take longer) - https://www.chromium.org/developers/design-documents/input-dev/input-objectives
On 49.0.2587.3 I think I see smooth scrolling. A few notes:

1. It feels sluggish with a mouse wheel. The scrolling is nice but maybe the acceleration curve is too low.

2. Feedly scrolls in a very jerky way. When I spin the mouse wheel, nothing happens for a moment, then the page scrolls quickly, then scrolls one more time. It is very hard to navigate with this behavior.
Feedly seems to be working smoothly after a reload of the page. But I did notice that smooth scrolling acts strangely if an infinite scroll is being extended during the scroll.
@160: do you mind filing a separate bug with details?
Blockedon: chromium:570549
I cannot reproduce the issue I had before but did file a bug for strange behavior I am having with an external mouse wheel.
Blockedon: chromium:571238
Blockedon: chromium:571680
Project Member Comment 166 by bugdroid1@chromium.org, Dec 30 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a78fdc918ae09ee12096d99dc75a42b949f6b5de

commit a78fdc918ae09ee12096d99dc75a42b949f6b5de
Author: skobes <skobes@chromium.org>
Date: Wed Dec 30 23:03:14 2015

Tweak the math in ScrollOffsetAnimationCurve::UpdateTarget.

The existing division-by-0 guard was not correct, since MaximumDimension can
return negative values.  This led to occasional wild jumps when scrolling up and
down quickly (because new_velocity had the wrong sign).

This patch addresses the sign issue and improves handling of cases where we have
a large current velocity and a small delta to the new target.

BUG=575
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

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

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

[modify] http://crrev.com/a78fdc918ae09ee12096d99dc75a42b949f6b5de/cc/animation/scroll_offset_animation_curve.cc
[modify] http://crrev.com/a78fdc918ae09ee12096d99dc75a42b949f6b5de/cc/animation/scroll_offset_animation_curve_unittest.cc

Cc: ymalik@chromium.org
Labels: Hotlist-SmoothScroll
Blockedon: -chromium:545234 -chromium:563759
Blockedon: chromium:574221
Blockedon: -chromium:570549
Blockedon: -chromium:552037
Blockedon: -chromium:571238
Status: Fixed
https://groups.google.com/a/chromium.org/d/msg/chromium-dev/UhE1rxzhkkk/fxUQqTWRDQAJ
Sign in to add a comment