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

Issue 2365793002: Fix scroll chaining for non-descendants of root scroller. (Closed)

Created:
4 years, 2 months ago by bokan
Modified:
4 years, 2 months ago
CC:
blink-reviews, cc-bugs_chromium.org, chromium-reviews, dtapuska+blinkwatch_chromium.org, nzolghadr+blinkwatch_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Reland: Fix scroll chaining for non-descendants of root scroller. This CL fixes the scroll chaining behavior for elements that aren't descendants of the root scroller element. This can only happen in the non-document root scroller proposal. On the main thread scrolling path, we were previously assuming that all scrolls would chain through the effective root scroller. This CL fixes the terminating condition as well as removes an invalid DCHECK. On the compositor side, the chaining mechanisms would previously use the inner viewport scroll layer to designate viewport scrolling. Further on, we would explicitly check for the inner viewport layer and scroll using cc::Viewport. When scrolling a non-descendant of the root scroller, we chain up to the inner viewport scroll layer without going through the outer viewport. Scrolling cc::Viewport causes scrolling in the outer viewport though so we would scroll it inadvertaintly. I've made changes so that we use the outer viewport to designate cc::Viewport scrolling. Scrolls will terminate at the outer viewport scroll layer, but they don't have to chain through it. Unrelated, but I also removed LayerImpl::ApplyScroll as it's unused. Note: this issue was previously landed at {#420763} but reverted in @{#422152} BUG=505516 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel

Patch Set 1 #

Patch Set 2 : Fix tests #

Total comments: 12

Patch Set 3 : Addressed Comments #

Patch Set 4 : Rebase #

Patch Set 5 : Rebase + Hack for telemetry #

Total comments: 2

Patch Set 6 : Rebase + Fix ScrollBeginEventThatTargetsViewportLayerSkipsHitTest #

Patch Set 7 : Rebase and remove hack #

Unified diffs Side-by-side diffs Delta from patch set Stats (+367 lines, -59 lines) Patch
M cc/layers/layer_impl.h View 1 2 3 4 1 chunk +0 lines, -1 line 0 comments Download
M cc/layers/layer_impl.cc View 1 2 3 4 1 chunk +1 line, -8 lines 0 comments Download
M cc/layers/viewport.cc View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M cc/trees/layer_tree_host_impl.h View 1 2 3 4 1 chunk +2 lines, -0 lines 0 comments Download
M cc/trees/layer_tree_host_impl.cc View 1 2 3 4 5 6 4 chunks +17 lines, -11 lines 0 comments Download
M cc/trees/layer_tree_host_impl_unittest.cc View 1 2 3 4 5 13 chunks +231 lines, -35 lines 0 comments Download
A third_party/WebKit/LayoutTests/fast/scrolling/scroll-non-descendant-of-root-scroller.html View 1 chunk +111 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/input/ScrollManager.cpp View 1 2 3 4 5 6 2 chunks +4 lines, -3 lines 0 comments Download

Messages

Total messages: 46 (27 generated)
bokan
4 years, 2 months ago (2016-09-23 01:49:15 UTC) #5
bokan
https://codereview.chromium.org/2365793002/diff/20001/cc/trees/layer_tree_host_impl_unittest.cc File cc/trees/layer_tree_host_impl_unittest.cc (right): https://codereview.chromium.org/2365793002/diff/20001/cc/trees/layer_tree_host_impl_unittest.cc#newcode11343 cc/trees/layer_tree_host_impl_unittest.cc:11343: host_impl_->active_tree()->InnerViewportScrollLayer()->id()); The LastScrolledLayerId is set using SetCurrentlyScrollingLayer which isn't ...
4 years, 2 months ago (2016-09-23 01:53:56 UTC) #8
tdresser
https://codereview.chromium.org/2365793002/diff/20001/cc/trees/layer_tree_host_impl.cc File cc/trees/layer_tree_host_impl.cc (left): https://codereview.chromium.org/2365793002/diff/20001/cc/trees/layer_tree_host_impl.cc#oldcode3243 cc/trees/layer_tree_host_impl.cc:3243: scroll_layer_impl = OuterViewportScrollLayer(); I'm a bit confused by why ...
4 years, 2 months ago (2016-09-23 15:59:58 UTC) #11
bokan
Looking into trybot failures, they pass locally... https://codereview.chromium.org/2365793002/diff/20001/cc/trees/layer_tree_host_impl.cc File cc/trees/layer_tree_host_impl.cc (left): https://codereview.chromium.org/2365793002/diff/20001/cc/trees/layer_tree_host_impl.cc#oldcode3243 cc/trees/layer_tree_host_impl.cc:3243: scroll_layer_impl = ...
4 years, 2 months ago (2016-09-23 19:57:01 UTC) #12
tdresser
LGTM. https://codereview.chromium.org/2365793002/diff/20001/cc/trees/layer_tree_host_impl_unittest.cc File cc/trees/layer_tree_host_impl_unittest.cc (right): https://codereview.chromium.org/2365793002/diff/20001/cc/trees/layer_tree_host_impl_unittest.cc#newcode6509 cc/trees/layer_tree_host_impl_unittest.cc:6509: outer_scroll_layer = scroll.get(); On 2016/09/23 19:57:01, bokan wrote: ...
4 years, 2 months ago (2016-09-23 20:40:30 UTC) #15
bokan
+aelias for cc OWNER
4 years, 2 months ago (2016-09-23 20:57:43 UTC) #17
aelias_OOO_until_Jul13
lgtm
4 years, 2 months ago (2016-09-23 22:02:34 UTC) #20
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/2365793002/60001
4 years, 2 months ago (2016-09-23 22:03:54 UTC) #22
commit-bot: I haz the power
Committed patchset #4 (id:60001)
4 years, 2 months ago (2016-09-23 22:53:37 UTC) #24
commit-bot: I haz the power
Patchset 4 (id:??) landed as https://crrev.com/bc48cb30d9e473b693dc996b7750510d05d50f69 Cr-Commit-Position: refs/heads/master@{#420763}
4 years, 2 months ago (2016-09-23 22:55:21 UTC) #26
bokan
A revert of this CL (patchset #4 id:60001) has been created in https://codereview.chromium.org/2382913003/ by bokan@chromium.org. ...
4 years, 2 months ago (2016-09-30 16:05:01 UTC) #27
bokan
I've put up the same patch rebased over my previously landed fix in https://codereview.chromium.org/2388563002/ so ...
4 years, 2 months ago (2016-10-05 00:24:08 UTC) #29
bokan
aelias@: ping.
4 years, 2 months ago (2016-10-05 20:48:05 UTC) #34
aelias_OOO_until_Jul13
https://codereview.chromium.org/2365793002/diff/80001/cc/trees/layer_tree_host_impl.cc File cc/trees/layer_tree_host_impl.cc (right): https://codereview.chromium.org/2365793002/diff/80001/cc/trees/layer_tree_host_impl.cc#newcode1971 cc/trees/layer_tree_host_impl.cc:1971: bool restore_currently_scrolling_viewport = IsCurrentlyScrollingViewport(); On 2016/10/05 at 00:24:08, bokan ...
4 years, 2 months ago (2016-10-05 21:55:42 UTC) #35
bokan
On 2016/10/05 21:55:42, aelias wrote: > https://codereview.chromium.org/2365793002/diff/80001/cc/trees/layer_tree_host_impl.cc > File cc/trees/layer_tree_host_impl.cc (right): > > https://codereview.chromium.org/2365793002/diff/80001/cc/trees/layer_tree_host_impl.cc#newcode1971 > ...
4 years, 2 months ago (2016-10-05 22:50:38 UTC) #36
bokan
Relanding patch now that I've landed the fix to telemetry and the original WebView issue. ...
4 years, 2 months ago (2016-10-12 12:29:26 UTC) #37
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/2365793002/120001
4 years, 2 months ago (2016-10-12 12:29:44 UTC) #40
commit-bot: I haz the power
Committed patchset #7 (id:120001)
4 years, 2 months ago (2016-10-12 13:49:06 UTC) #42
commit-bot: I haz the power
4 years, 2 months ago (2016-10-12 13:50:51 UTC) #45
Message was sent while issue was closed.
Patchset 7 (id:??) landed as
https://crrev.com/5ded2662fcd1ef488aff3b9b5d9374c5635a8128
Cr-Commit-Position: refs/heads/master@{#424731}

Powered by Google App Engine
This is Rietveld 408576698