Microsoft has brought the Microsoft Edge smooth scrolling experience to Google Chrome
Microsoft’s own Microsoft Edge browser is a bit clumsy in some respects, but it does better than other browsers in terms of smooth scrolling. Now that Microsoft has fully turned to the Google Chromium project, so many of the original features may be gradually migrated to the new version. For example, the smooth scrolling function previously submitted by Microsoft engineers has been merged into the main thread, and the Google Chrome Canary can be experienced in advance.
This pull request enables the root scroller to scroll on the impl thread when a user clicks on any of the arrows on a composited root scrollbar.
How it works: When a mousedown arrives at the renderer, it gets hit-tested. If a composited scrollbar was hit, the MouseEvent gets dropped and a GestureScrollBegin and a GestureScrollUpdate get added to the CompositorThreadEventQueue. These gesture scroll events contain scroll-deltas based on which scrollbar part was hit (arrows for now). On a mouseup, a GestureScrollEnd is added to the queue. They are then dispatched in a rAF aligned manner. There will be follow up pull requests which deal with thumb drags, hover invalidation etc.
At present, Microsoft’s proposal has been accepted and merged into the main thread by Google. The experimental function of Google Chrome Canary began to test this. Users can manually enable this function and experience it in the experimental function. I believe that Microsoft will continue to optimize and improve this function.
chrome://flags/#smooth-scrolling
Use the Google Chrome Canary to open the above address, then change its default option to Enable and follow the prompts to restart the browser.