As noted in issue 652520, the scrollbars should be visible only when the user scrolls. At that point, they should instantly appear. After 1000ms of non-scrolling, they should fade out over 200ms.
This is quite high priority so please make this your next bug. Thanks.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6cd8cd30ad46f2ac0f9064289f876c73b050dddd commit 6cd8cd30ad46f2ac0f9064289f876c73b050dddd Author: bokan <bokan@chromium.org> Date: Fri Oct 21 03:38:44 2016 Implement fade-out animation for Aura overlay scrollbars (CC only). This change implements the fade out animation in the scroll animation controller used for Aura overlay scrollbars. It only affects composited scrollers for now. This change makes the thinning controller responsible for scheduling two animations: fading and thinning. It does this by making sure that only one animation is ever running at a time and making sure to schedule a fade at the end of a thinning animation if needed. This patch removes the animated opacity changes between different hover states since they're no longer part of the specified behavior. It adds a simpler animated fade out similar to the "linear fade" controller when the scroller is idle for some time. It also cleans up the tests for the thinning controller, using constants where appropriate and making most tests oblivious to animation timing. BUG= 652826 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel Review-Url: https://chromiumcodereview.appspot.com/2442573002 Cr-Commit-Position: refs/heads/master@{#426711} [modify] https://crrev.com/6cd8cd30ad46f2ac0f9064289f876c73b050dddd/cc/input/scrollbar_animation_controller.cc [modify] https://crrev.com/6cd8cd30ad46f2ac0f9064289f876c73b050dddd/cc/input/scrollbar_animation_controller.h [modify] https://crrev.com/6cd8cd30ad46f2ac0f9064289f876c73b050dddd/cc/input/scrollbar_animation_controller_linear_fade.cc [modify] https://crrev.com/6cd8cd30ad46f2ac0f9064289f876c73b050dddd/cc/input/scrollbar_animation_controller_linear_fade.h [modify] https://crrev.com/6cd8cd30ad46f2ac0f9064289f876c73b050dddd/cc/input/scrollbar_animation_controller_thinning.cc [modify] https://crrev.com/6cd8cd30ad46f2ac0f9064289f876c73b050dddd/cc/input/scrollbar_animation_controller_thinning.h [modify] https://crrev.com/6cd8cd30ad46f2ac0f9064289f876c73b050dddd/cc/input/scrollbar_animation_controller_thinning_unittest.cc [modify] https://crrev.com/6cd8cd30ad46f2ac0f9064289f876c73b050dddd/cc/trees/layer_tree_impl.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/169f5add2dd64e14cb89c8ac388bc81cc32121d8 commit 169f5add2dd64e14cb89c8ac388bc81cc32121d8 Author: bokan <bokan@chromium.org> Date: Sun Oct 30 16:32:48 2016 Disable overlay scrollbars in Blink when hidden by the compositor. This patch adds and plumbs through a one-way notification from the compositor's impl thread to Blink. This is used to prevent Blink from handling user input on Scrollbars in cases where they've been hidden, as happens when overlay scrollbars remain idle for a small amount of time. This patch makes use of this setting when fading out scrollbars on the compositor but this will also be used in Blink when scrollbars are faded-out there for non-composited scrollers. This should have no visible effect for anything but Aura overlay scrollbars. BUG= 652826 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel Review-Url: https://codereview.chromium.org/2453553003 Cr-Commit-Position: refs/heads/master@{#428628} [modify] https://crrev.com/169f5add2dd64e14cb89c8ac388bc81cc32121d8/cc/input/scrollbar_animation_controller.cc [modify] https://crrev.com/169f5add2dd64e14cb89c8ac388bc81cc32121d8/cc/input/scrollbar_animation_controller.h [modify] https://crrev.com/169f5add2dd64e14cb89c8ac388bc81cc32121d8/cc/input/scrollbar_animation_controller_linear_fade_unittest.cc [modify] https://crrev.com/169f5add2dd64e14cb89c8ac388bc81cc32121d8/cc/input/scrollbar_animation_controller_thinning.cc [modify] https://crrev.com/169f5add2dd64e14cb89c8ac388bc81cc32121d8/cc/input/scrollbar_animation_controller_thinning.h [modify] https://crrev.com/169f5add2dd64e14cb89c8ac388bc81cc32121d8/cc/input/scrollbar_animation_controller_thinning_unittest.cc [modify] https://crrev.com/169f5add2dd64e14cb89c8ac388bc81cc32121d8/cc/layers/layer.cc [modify] https://crrev.com/169f5add2dd64e14cb89c8ac388bc81cc32121d8/cc/layers/layer.h [modify] https://crrev.com/169f5add2dd64e14cb89c8ac388bc81cc32121d8/cc/layers/layer_client.h [modify] https://crrev.com/169f5add2dd64e14cb89c8ac388bc81cc32121d8/cc/layers/layer_impl.cc [modify] https://crrev.com/169f5add2dd64e14cb89c8ac388bc81cc32121d8/cc/layers/layer_impl.h [modify] https://crrev.com/169f5add2dd64e14cb89c8ac388bc81cc32121d8/cc/proto/begin_main_frame_and_commit_state.proto [modify] https://crrev.com/169f5add2dd64e14cb89c8ac388bc81cc32121d8/cc/trees/layer_tree_host_common.cc [modify] https://crrev.com/169f5add2dd64e14cb89c8ac388bc81cc32121d8/cc/trees/layer_tree_host_common.h [modify] https://crrev.com/169f5add2dd64e14cb89c8ac388bc81cc32121d8/cc/trees/layer_tree_host_impl.cc [modify] https://crrev.com/169f5add2dd64e14cb89c8ac388bc81cc32121d8/cc/trees/layer_tree_host_impl.h [modify] https://crrev.com/169f5add2dd64e14cb89c8ac388bc81cc32121d8/cc/trees/layer_tree_host_in_process.cc [modify] https://crrev.com/169f5add2dd64e14cb89c8ac388bc81cc32121d8/cc/trees/property_tree.h [modify] https://crrev.com/169f5add2dd64e14cb89c8ac388bc81cc32121d8/third_party/WebKit/Source/core/frame/FrameView.cpp [modify] https://crrev.com/169f5add2dd64e14cb89c8ac388bc81cc32121d8/third_party/WebKit/Source/core/frame/FrameView.h [modify] https://crrev.com/169f5add2dd64e14cb89c8ac388bc81cc32121d8/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp [modify] https://crrev.com/169f5add2dd64e14cb89c8ac388bc81cc32121d8/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h [modify] https://crrev.com/169f5add2dd64e14cb89c8ac388bc81cc32121d8/third_party/WebKit/Source/platform/graphics/GraphicsLayer.cpp [modify] https://crrev.com/169f5add2dd64e14cb89c8ac388bc81cc32121d8/third_party/WebKit/Source/platform/graphics/GraphicsLayer.h [modify] https://crrev.com/169f5add2dd64e14cb89c8ac388bc81cc32121d8/third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp [modify] https://crrev.com/169f5add2dd64e14cb89c8ac388bc81cc32121d8/third_party/WebKit/Source/platform/scroll/ScrollableArea.h [modify] https://crrev.com/169f5add2dd64e14cb89c8ac388bc81cc32121d8/third_party/WebKit/Source/web/tests/WebFrameTest.cpp [modify] https://crrev.com/169f5add2dd64e14cb89c8ac388bc81cc32121d8/ui/compositor/layer.cc [modify] https://crrev.com/169f5add2dd64e14cb89c8ac388bc81cc32121d8/ui/compositor/layer.h
Verified on ChromeOS 9000.0.0, 56.0.2923.0
Comment 1 by bokan@chromium.org
, Oct 4 2016