Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(718)

Issue 2467693002: Implement overlay scrollbar fade out for non-composited scrollers. (Closed)

Created:
4 years, 1 month ago by bokan
Modified:
4 years, 1 month ago
CC:
darktears, blink-reviews, blink-reviews-animation_chromium.org, blink-reviews-api_chromium.org, blink-reviews-paint_chromium.org, chromium-reviews, darin-cc_chromium.org, dglazkov+blink, dshwang, dtapuska+blinkwatch_chromium.org, Eric Willigers, jam, mac-reviews_chromium.org, Navid Zolghadr, rjwright, shans, chaopeng
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

[Reland] Implement overlay scrollbar fade out for non-composited scrollers. In crrev.com/2442573002 and crrev.com/2453553003 I added fade out for Aura overlay scrollbars. In this patch I add a simple instantly disappearing fade-out for scrollers that aren't composited. The changes in this patch are: -Plumb through the fade out durations into Blink. Any time a ScrollableArea is scrolled or resized we show the scrollbars and start a timer to make them disappear. The scrollbars are marked as "hidden" and made disabled and invisible to hit testing. -Fixed hit testing for overlay scrollbars so we can't scroll by clicking on the track (which isn't painted). -Fixed two layout tests: third_party/WebKit/LayoutTests/fast/scrolling/scrollbar-tickmarks-hittest.html overlay-scrollbar-mouse-capture.html These tests turn on overlay scrollbars but try to scroll by clicking a button/track which I fixed. The tests now drag the thumb instead. -In crrev.com/2453553003 I added didChangeScrollbarsHidden to disable overlay scrollbars so they're invisible to hit testing. It turns out Mac overlay scrollbars already have this functionality in ScrollableArea::scrollbarVisibilityChanged and Scrollbar::shouldParticipateInHitTesting so I removed didChangeScrollbarsHidden and used these. I also removed some redundancy in the Mac path so that Mac and Aura overlays disable hit testing in the same way. -Removed the static compile assert about ScrollableArea staying small. There's no reason ScrollableArea is particularily special and this encourages developers to duplicate functionality in the descendant classes. BUG=592098, 662402 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Committed: https://crrev.com/4430234f2f5f52efe60ad2b8e6608112352259da Committed: https://crrev.com/60d2bbbc8fa4cce01bbd90c97d3e989a47d6dedf Committed: https://crrev.com/eb757fdbd63242a73f3074e4a50742d08d6ea488 Cr-Original-Original-Commit-Position: refs/heads/master@{#429616} Cr-Original-Commit-Position: refs/heads/master@{#430065} Cr-Commit-Position: refs/heads/master@{#431466}

Patch Set 1 #

Patch Set 2 : +Test #

Patch Set 3 : Fixed test breaks #

Patch Set 4 : Fix mac build #

Patch Set 5 : overlay-scrollbar-mouse-capture now works on Mac #

Total comments: 24

Patch Set 6 : skobes@ + dtapuska@ comments addressed #

Total comments: 1

Patch Set 7 : Nit #

Total comments: 2

Patch Set 8 : Rebase #

Patch Set 9 : Implement getOverlayScrollbarStyle in Mock and Android WebThemeEngines #

Patch Set 10 : Make sure fade out times are always initialized #

Patch Set 11 : Build fix #

Patch Set 12 : Fixed crash and perf issues on Mac Rebase #

Patch Set 13 : Forgot to update tests #

Patch Set 14 : sigh....git cl format #

Unified diffs Side-by-side diffs Delta from patch set Stats (+330 lines, -139 lines) Patch
M content/child/webthemeengine_impl_android.cc View 1 2 3 4 5 6 7 8 1 chunk +6 lines, -0 lines 0 comments Download
M content/child/webthemeengine_impl_default.h View 1 2 3 4 5 1 chunk +2 lines, -0 lines 0 comments Download
M content/child/webthemeengine_impl_default.cc View 1 2 3 4 5 6 2 chunks +10 lines, -0 lines 0 comments Download
M third_party/WebKit/LayoutTests/fast/scrolling/scrollbar-tickmarks-hittest.html View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +2 lines, -1 line 0 comments Download
D third_party/WebKit/LayoutTests/platform/mac/plugins/overlay-scrollbar-mouse-capture-expected.txt View 1 2 3 4 1 chunk +0 lines, -15 lines 0 comments Download
M third_party/WebKit/LayoutTests/plugins/overlay-scrollbar-mouse-capture.html View 1 2 2 chunks +18 lines, -7 lines 0 comments Download
M third_party/WebKit/LayoutTests/plugins/overlay-scrollbar-mouse-capture-expected.txt View 1 2 2 chunks +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/frame/FrameView.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +0 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/frame/FrameView.cpp View 1 2 3 4 5 6 7 8 9 10 11 6 chunks +7 lines, -10 lines 0 comments Download
M third_party/WebKit/Source/core/frame/RootFrameViewport.h View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/frame/RootFrameViewport.cpp View 1 2 3 4 5 6 7 1 chunk +4 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintLayer.cpp View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +7 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h View 1 2 3 4 5 6 7 8 9 10 11 3 chunks +2 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp View 1 2 3 4 5 6 7 8 9 10 11 6 chunks +13 lines, -18 lines 0 comments Download
M third_party/WebKit/Source/platform/exported/WebScrollbarThemeClientImpl.h View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/platform/exported/WebScrollbarThemeClientImpl.cpp View 1 chunk +3 lines, -1 line 0 comments Download
M third_party/WebKit/Source/platform/mac/ScrollAnimatorMac.h View 1 2 3 4 5 6 7 1 chunk +0 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/platform/mac/ScrollAnimatorMac.mm View 1 chunk +0 lines, -14 lines 0 comments Download
M third_party/WebKit/Source/platform/scroll/ScrollAnimatorBase.h View 1 chunk +0 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/platform/scroll/ScrollableArea.h View 1 2 3 4 5 6 7 8 9 10 11 7 chunks +17 lines, -5 lines 0 comments Download
M third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp View 1 2 3 4 5 6 7 5 chunks +56 lines, -18 lines 0 comments Download
M third_party/WebKit/Source/platform/scroll/Scrollbar.h View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/platform/scroll/Scrollbar.cpp View 1 2 3 chunks +11 lines, -5 lines 0 comments Download
M third_party/WebKit/Source/platform/scroll/ScrollbarTheme.h View 1 2 3 4 5 6 7 1 chunk +2 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/scroll/ScrollbarTheme.cpp View 1 2 3 4 5 1 chunk +10 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/scroll/ScrollbarThemeClient.h View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/platform/scroll/ScrollbarThemeMac.mm View 1 2 3 4 5 2 chunks +1 line, -5 lines 0 comments Download
M third_party/WebKit/Source/platform/scroll/ScrollbarThemeOverlay.h View 1 2 3 4 5 1 chunk +2 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/scroll/ScrollbarThemeOverlay.cpp View 1 2 3 4 5 3 chunks +21 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/platform/scroll/ScrollbarThemeOverlayMock.h View 1 2 1 chunk +12 lines, -1 line 0 comments Download
M third_party/WebKit/Source/web/tests/WebFrameTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +105 lines, -12 lines 0 comments Download
M third_party/WebKit/public/platform/WebThemeEngine.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +13 lines, -2 lines 0 comments Download

Messages

Total messages: 93 (59 generated)
bokan
pkasting@: You have some context in this work now, mind taking a first look?
4 years, 1 month ago (2016-11-02 01:08:24 UTC) #14
Peter Kasting
On 2016/11/02 01:08:24, bokan wrote: > pkasting@: You have some context in this work now, ...
4 years, 1 month ago (2016-11-02 01:58:47 UTC) #17
bokan
On 2016/11/02 01:58:47, Peter Kasting wrote: > On 2016/11/02 01:08:24, bokan wrote: > > pkasting@: ...
4 years, 1 month ago (2016-11-02 11:43:34 UTC) #19
dtapuska
https://codereview.chromium.org/2467693002/diff/80001/third_party/WebKit/Source/core/paint/PaintLayer.cpp File third_party/WebKit/Source/core/paint/PaintLayer.cpp (right): https://codereview.chromium.org/2467693002/diff/80001/third_party/WebKit/Source/core/paint/PaintLayer.cpp#newcode810 third_party/WebKit/Source/core/paint/PaintLayer.cpp:810: m_scrollableArea->visibleContentResized(); I fear you have a re-entry problem here. ...
4 years, 1 month ago (2016-11-02 16:53:21 UTC) #25
Peter Kasting
ui/native_theme/ LGTM
4 years, 1 month ago (2016-11-02 16:56:56 UTC) #26
skobes
Nice work, mostly nits. :) https://codereview.chromium.org/2467693002/diff/80001/third_party/WebKit/LayoutTests/plugins/overlay-scrollbar-mouse-capture.html File third_party/WebKit/LayoutTests/plugins/overlay-scrollbar-mouse-capture.html (right): https://codereview.chromium.org/2467693002/diff/80001/third_party/WebKit/LayoutTests/plugins/overlay-scrollbar-mouse-capture.html#newcode59 third_party/WebKit/LayoutTests/plugins/overlay-scrollbar-mouse-capture.html:59: // RuntimeEnabledFeature after the ...
4 years, 1 month ago (2016-11-02 21:02:44 UTC) #27
bokan
https://codereview.chromium.org/2467693002/diff/80001/third_party/WebKit/LayoutTests/plugins/overlay-scrollbar-mouse-capture.html File third_party/WebKit/LayoutTests/plugins/overlay-scrollbar-mouse-capture.html (right): https://codereview.chromium.org/2467693002/diff/80001/third_party/WebKit/LayoutTests/plugins/overlay-scrollbar-mouse-capture.html#newcode59 third_party/WebKit/LayoutTests/plugins/overlay-scrollbar-mouse-capture.html:59: // RuntimeEnabledFeature after the ScrollbarTheme is initialized. It On ...
4 years, 1 month ago (2016-11-02 22:41:57 UTC) #28
skobes
lgtm w/ nit https://codereview.chromium.org/2467693002/diff/100001/content/child/webthemeengine_impl_default.cc File content/child/webthemeengine_impl_default.cc (right): https://codereview.chromium.org/2467693002/diff/100001/content/child/webthemeengine_impl_default.cc#newcode248 content/child/webthemeengine_impl_default.cc:248: style->fadeOutDelaySeconds = ui::kOverlayScrollbarFadeOutDelay.InSecondsF(); 2-space indent
4 years, 1 month ago (2016-11-02 23:46:43 UTC) #29
bokan
rbyers@ for public/platform jbroman@ for Source/platform +piman@ for content/child
4 years, 1 month ago (2016-11-02 23:52:55 UTC) #31
Rick Byers
On 2016/11/02 23:52:55, bokan wrote: > rbyers@ for public/platform public/platform LGTM > jbroman@ for Source/platform ...
4 years, 1 month ago (2016-11-03 00:20:02 UTC) #32
piman
lgtm
4 years, 1 month ago (2016-11-03 00:42:03 UTC) #33
dtapuska
On 2016/11/03 00:42:03, piman wrote: > lgtm lgtm
4 years, 1 month ago (2016-11-03 14:17:49 UTC) #36
jbroman
platform rs lgtm
4 years, 1 month ago (2016-11-03 14:22:45 UTC) #38
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2467693002/120001
4 years, 1 month ago (2016-11-03 14:56:56 UTC) #43
commit-bot: I haz the power
Committed patchset #7 (id:120001)
4 years, 1 month ago (2016-11-03 16:41:53 UTC) #45
commit-bot: I haz the power
Patchset 7 (id:??) landed as https://crrev.com/4430234f2f5f52efe60ad2b8e6608112352259da Cr-Commit-Position: refs/heads/master@{#429616}
4 years, 1 month ago (2016-11-03 17:12:58 UTC) #47
tapted
Sorry - need to revert for some MSAN errors see https://storage.googleapis.com/chromium-layout-test-archives/WebKit_Linux_Precise_MSAN/855/layout-test-results/results.html https://codereview.chromium.org/2467693002/diff/120001/third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp File third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp (right): ...
4 years, 1 month ago (2016-11-04 01:54:32 UTC) #49
tapted
A revert of this CL (patchset #7 id:120001) has been created in https://codereview.chromium.org/2478463003/ by tapted@chromium.org. ...
4 years, 1 month ago (2016-11-04 01:56:26 UTC) #50
Lei Zhang
https://codereview.chromium.org/2467693002/diff/120001/third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp File third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp (right): https://codereview.chromium.org/2467693002/diff/120001/third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp#newcode569 third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp:569: if (!timeUntilDisable) On 2016/11/04 01:54:32, tapted wrote: > STDERR: ...
4 years, 1 month ago (2016-11-04 02:03:02 UTC) #52
tapted
See http://crbug.com/662147 for additional info.
4 years, 1 month ago (2016-11-04 06:16:33 UTC) #53
bokan
Ok, the issue was that tests were using a Mock WebThemeEngine I didn't find until ...
4 years, 1 month ago (2016-11-04 17:59:01 UTC) #61
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2467693002/180001
4 years, 1 month ago (2016-11-04 18:02:16 UTC) #64
commit-bot: I haz the power
Try jobs failed on following builders: cast_shell_android on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/cast_shell_android/builds/158247) blimp_linux_dbg on master.tryserver.chromium.linux (JOB_FAILED, ...
4 years, 1 month ago (2016-11-04 18:16:10 UTC) #66
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2467693002/200001
4 years, 1 month ago (2016-11-04 20:38:26 UTC) #69
commit-bot: I haz the power
Committed patchset #11 (id:200001)
4 years, 1 month ago (2016-11-04 23:27:20 UTC) #71
commit-bot: I haz the power
Patchset 11 (id:??) landed as https://crrev.com/60d2bbbc8fa4cce01bbd90c97d3e989a47d6dedf Cr-Commit-Position: refs/heads/master@{#430065}
4 years, 1 month ago (2016-11-04 23:30:12 UTC) #73
bokan
A revert of this CL (patchset #11 id:200001) has been created in https://codereview.chromium.org/2489703002/ by bokan@chromium.org. ...
4 years, 1 month ago (2016-11-08 21:43:23 UTC) #74
bokan
Turns out the problem was that I forgot to remove the code that updates enabled ...
4 years, 1 month ago (2016-11-10 22:03:00 UTC) #76
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2467693002/220001
4 years, 1 month ago (2016-11-10 22:04:07 UTC) #79
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2467693002/240001
4 years, 1 month ago (2016-11-11 00:37:58 UTC) #84
commit-bot: I haz the power
Try jobs failed on following builders: chromium_presubmit on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presubmit/builds/301931)
4 years, 1 month ago (2016-11-11 00:47:09 UTC) #86
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2467693002/260001
4 years, 1 month ago (2016-11-11 00:54:35 UTC) #89
commit-bot: I haz the power
Committed patchset #14 (id:260001)
4 years, 1 month ago (2016-11-11 02:27:44 UTC) #91
commit-bot: I haz the power
4 years, 1 month ago (2016-11-11 02:32:06 UTC) #93
Message was sent while issue was closed.
Patchset 14 (id:??) landed as
https://crrev.com/eb757fdbd63242a73f3074e4a50742d08d6ea488
Cr-Commit-Position: refs/heads/master@{#431466}

Powered by Google App Engine
This is Rietveld 408576698