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

Issue 2188133002: Scroll with Layers in views::ScrollView (Closed)

Created:
4 years, 4 months ago by tapted
Modified:
4 years, 4 months ago
Reviewers:
Ian Vollick, sky
CC:
Ian Vollick, cc-bugs_chromium.org, chrome-apps-syd-reviews_chromium.org, chromium-reviews, danakj+watch_chromium.org, danakj, dtapuska+chromiumwatch_chromium.org, jbauman+watch_chromium.org, kalyank, piman+watch_chromium.org, sievers+watch_chromium.org, tdresser+watch_chromium.org, tfarina
Base URL:
https://chromium.googlesource.com/chromium/src.git@20160728-MacViews-ScrollTrack
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Scroll with Layers in views::ScrollView Initially, do this only on Mac, or with --enable-features=ToolkitViewsScrollWithLayers. This is a first step for bringing up elastic scrolling of a views::ScrollView on Mac. Still, by itself, it results in significant performance improvements for scrolling in toolkit-views and allows the UI thread to keep pace with the high rate of touchpad scroll events produced by Cocoa on Mac. To take advantage of existing scroll handling for smooth-scrolling and elasticity, later CLs will route scroll events through the cc::InputHandler (i.e. LayerTreeHostImpl). Since the ui::Compositor is single-threaded on the UI thread, there is no distinct impl side. For a consistent event flow, perform all scrolling on the impl side. This requires plumbing through a way for a views::ScrollView to set the scroll offset on the impl side directly, in response to an input event. views::ScrollView now makes its contents layer-backed and clips it to the layer added to the existing ScrollView viewport. BUG=615948, 594907, 605131 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel Committed: https://crrev.com/4b70c528d7a6652e534bc5d9efd19d2d57d3fe4e Cr-Commit-Position: refs/heads/master@{#411889}

Patch Set 1 #

Patch Set 2 : stray overscroll #

Patch Set 3 : Just enable on Mac for now #

Patch Set 4 : Fix ScrollTrackScrolling test #

Patch Set 5 : rebase #

Patch Set 6 : tweak doc #

Patch Set 7 : self nits #

Patch Set 8 : DCHECK for no layer #

Total comments: 2

Patch Set 9 : Prune contents_container+update tests to suit, fix extension install background, fix event transform #

Patch Set 10 : Cleave off View::EnclosingScrollView() and other unnecessary bits #

Patch Set 11 : Add a test for the transform goop #

Total comments: 22

Patch Set 12 : vollick@ comments #

Total comments: 4

Patch Set 13 : rebase (new workdir) #

Patch Set 14 : bugref, scale_delta DCHECK + comment #

Unified diffs Side-by-side diffs Delta from patch set Stats (+529 lines, -60 lines) Patch
M cc/input/input_handler.h View 1 2 3 4 5 6 1 chunk +6 lines, -0 lines 0 comments Download
M cc/trees/layer_tree_host_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +3 lines, -0 lines 0 comments Download
M cc/trees/layer_tree_host_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +21 lines, -0 lines 0 comments Download
M cc/trees/single_thread_proxy.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +8 lines, -9 lines 0 comments Download
M chrome/browser/ui/views/extensions/extension_install_dialog_view.h View 1 2 3 4 5 6 7 8 1 chunk +3 lines, -0 lines 0 comments Download
M chrome/browser/ui/views/extensions/extension_install_dialog_view.cc View 1 2 3 4 5 6 7 8 1 chunk +6 lines, -0 lines 0 comments Download
M ui/compositor/compositor.h View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +6 lines, -0 lines 0 comments Download
M ui/compositor/compositor.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +9 lines, -0 lines 0 comments Download
M ui/compositor/layer.h View 1 2 3 4 5 6 1 chunk +8 lines, -0 lines 0 comments Download
M ui/compositor/layer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +28 lines, -0 lines 0 comments Download
M ui/events/blink/input_handler_proxy_unittest.cc View 1 2 3 4 5 1 chunk +7 lines, -0 lines 0 comments Download
M ui/views/controls/scroll_view.h View 1 2 3 4 5 6 7 8 9 4 chunks +27 lines, -0 lines 0 comments Download
M ui/views/controls/scroll_view.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 12 chunks +150 lines, -32 lines 0 comments Download
M ui/views/controls/scroll_view_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 chunks +240 lines, -18 lines 0 comments Download
M ui/views/view.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +7 lines, -1 line 0 comments Download

Messages

Total messages: 82 (68 generated)
tapted
Hi sky and ian, please take a look. (cc danakj in case you're peeking at ...
4 years, 4 months ago (2016-08-02 13:14:35 UTC) #37
tapted
vollick: ping? If you get a chance.. I guess all the src/cc and ui/compositor reviewers ...
4 years, 4 months ago (2016-08-04 13:19:02 UTC) #44
sky
Were you able to make this work without contents_container_ as talked about in the other ...
4 years, 4 months ago (2016-08-04 18:58:39 UTC) #45
tapted
On 2016/08/04 18:58:39, sky wrote: > Were you able to make this work without contents_container_ ...
4 years, 4 months ago (2016-08-05 07:12:31 UTC) #56
sky
Nice, LGTM
4 years, 4 months ago (2016-08-05 15:51:42 UTC) #59
sky
I only looked at views. I'm assuming Ian is looking at the rest.
4 years, 4 months ago (2016-08-05 15:51:59 UTC) #60
Ian Vollick
https://codereview.chromium.org/2188133002/diff/280001/cc/trees/single_thread_proxy.cc File cc/trees/single_thread_proxy.cc (right): https://codereview.chromium.org/2188133002/diff/280001/cc/trees/single_thread_proxy.cc#newcode583 cc/trees/single_thread_proxy.cc:583: return false; // TODO(tapted): Should this return true? I ...
4 years, 4 months ago (2016-08-09 14:00:49 UTC) #63
tapted
https://codereview.chromium.org/2188133002/diff/280001/cc/trees/single_thread_proxy.cc File cc/trees/single_thread_proxy.cc (right): https://codereview.chromium.org/2188133002/diff/280001/cc/trees/single_thread_proxy.cc#newcode583 cc/trees/single_thread_proxy.cc:583: return false; // TODO(tapted): Should this return true? On ...
4 years, 4 months ago (2016-08-10 05:39:04 UTC) #68
tapted
vollick: ping?
4 years, 4 months ago (2016-08-11 20:58:37 UTC) #69
Ian Vollick
lgtm with nits. https://codereview.chromium.org/2188133002/diff/280001/ui/views/controls/scroll_view.cc File ui/views/controls/scroll_view.cc (right): https://codereview.chromium.org/2188133002/diff/280001/ui/views/controls/scroll_view.cc#newcode29 ui/views/controls/scroll_view.cc:29: base::FEATURE_DISABLED_BY_DEFAULT On 2016/08/10 at 05:39:04, tapted ...
4 years, 4 months ago (2016-08-12 13:57:42 UTC) #70
tapted
https://codereview.chromium.org/2188133002/diff/280001/ui/views/controls/scroll_view.cc File ui/views/controls/scroll_view.cc (right): https://codereview.chromium.org/2188133002/diff/280001/ui/views/controls/scroll_view.cc#newcode657 ui/views/controls/scroll_view.cc:657: // and commits a frame, which isn't true in ...
4 years, 4 months ago (2016-08-13 09:03:53 UTC) #75
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/2188133002/340001
4 years, 4 months ago (2016-08-13 09:06:09 UTC) #78
commit-bot: I haz the power
Committed patchset #14 (id:340001)
4 years, 4 months ago (2016-08-13 09:09:53 UTC) #80
commit-bot: I haz the power
4 years, 4 months ago (2016-08-13 09:11:24 UTC) #82
Message was sent while issue was closed.
Patchset 14 (id:??) landed as
https://crrev.com/4b70c528d7a6652e534bc5d9efd19d2d57d3fe4e
Cr-Commit-Position: refs/heads/master@{#411889}

Powered by Google App Engine
This is Rietveld 408576698