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

Issue 238803005: Scroll on main if impl-hit testing isn't guaranteed to be correct (Closed)

Created:
6 years, 8 months ago by Ian Vollick
Modified:
6 years, 8 months ago
CC:
chromium-reviews, cc-bugs_chromium.org
Visibility:
Public.

Description

Scroll on main if impl-hit testing isn't guaranteed to be correct It often happens that we have composited layers with holes. Sometimes we'll try and interact through the hole (we might, say, want to scroll something back there). The cc machinery isn't currently smart enough to figure out exactly what got hit, so when we detect that our hit testing result might be inaccurate we fall back to main thread scrolling. Here are the specifics on how I determine if me might have hit a "holey" occluder. I find two starting layers: 1) The first layer below the viewport point. 2) The first scrolling layer below the viewport point. If we haven't hit an interfering occluder, the first scrolling layer we should reach when we walk up from 1) is 2). If we find some other layer, things have likely gone wonky, so we bail. I've also added stats so that we can track how often we fall back to main thread scrolling because we couldn't figure out what was going on. R=enne@chromium.org BUG=364090 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=264306

Patch Set 1 #

Total comments: 9

Patch Set 2 : Respond to reviewer feedback #

Patch Set 3 : stat and test #

Patch Set 4 : moar test. #

Total comments: 1

Patch Set 5 : Address reviewer feedback. #

Total comments: 1

Patch Set 6 : adding some breaks. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+186 lines, -16 lines) Patch
M cc/input/input_handler.h View 1 2 3 4 1 chunk +10 lines, -1 line 0 comments Download
M cc/trees/layer_tree_host_common.h View 1 chunk +5 lines, -0 lines 0 comments Download
M cc/trees/layer_tree_host_common.cc View 1 2 chunks +45 lines, -15 lines 0 comments Download
M cc/trees/layer_tree_host_impl.cc View 1 2 2 chunks +20 lines, -0 lines 0 comments Download
M cc/trees/layer_tree_host_impl_unittest.cc View 1 2 3 4 5 1 chunk +73 lines, -0 lines 0 comments Download
M content/renderer/input/input_handler_proxy.cc View 1 2 3 4 5 5 chunks +15 lines, -0 lines 0 comments Download
M tools/metrics/histograms/histograms.xml View 2 chunks +18 lines, -0 lines 0 comments Download

Messages

Total messages: 22 (0 generated)
enne (OOO)
https://codereview.chromium.org/238803005/diff/1/cc/trees/layer_tree_host_common.cc File cc/trees/layer_tree_host_common.cc (right): https://codereview.chromium.org/238803005/diff/1/cc/trees/layer_tree_host_common.cc#newcode2440 cc/trees/layer_tree_host_common.cc:2440: LayerImpl* LayerTreeHostCommon::FindFirstScrollingLayerThatIsHitByPoint( Ew, code duplication. You're going to want ...
6 years, 8 months ago (2014-04-15 21:25:54 UTC) #1
Ian Vollick
https://codereview.chromium.org/238803005/diff/1/cc/trees/layer_tree_host_common.cc File cc/trees/layer_tree_host_common.cc (right): https://codereview.chromium.org/238803005/diff/1/cc/trees/layer_tree_host_common.cc#newcode2440 cc/trees/layer_tree_host_common.cc:2440: LayerImpl* LayerTreeHostCommon::FindFirstScrollingLayerThatIsHitByPoint( On 2014/04/15 21:25:54, enne wrote: > Ew, ...
6 years, 8 months ago (2014-04-15 23:27:27 UTC) #2
aelias_OOO_until_Jul13
I assume this was discussed offline already, but this patch caught my eye and I'd ...
6 years, 8 months ago (2014-04-16 00:48:27 UTC) #3
enne (OOO)
Thanks. Looks good % tests.
6 years, 8 months ago (2014-04-16 00:49:37 UTC) #4
aelias_OOO_until_Jul13
I chatted with Ian offline and I agreed this can land with a UMA stat ...
6 years, 8 months ago (2014-04-16 03:20:29 UTC) #5
Ian Vollick
On 2014/04/16 03:20:29, aelias wrote: > I chatted with Ian offline and I agreed this ...
6 years, 8 months ago (2014-04-16 13:16:37 UTC) #6
Ian Vollick
On 2014/04/16 13:16:37, Ian Vollick wrote: > On 2014/04/16 03:20:29, aelias wrote: > > I ...
6 years, 8 months ago (2014-04-16 13:28:22 UTC) #7
Ian Vollick
On 2014/04/16 13:28:22, Ian Vollick wrote: > On 2014/04/16 13:16:37, Ian Vollick wrote: > > ...
6 years, 8 months ago (2014-04-16 13:54:13 UTC) #8
Ian Vollick
asvitkine@chromium.org: Please review changes in histograms/
6 years, 8 months ago (2014-04-16 13:58:45 UTC) #9
Alexei Svitkine (slow)
histograms lgtm with nit https://codereview.chromium.org/238803005/diff/80001/cc/input/input_handler.h File cc/input/input_handler.h (right): https://codereview.chromium.org/238803005/diff/80001/cc/input/input_handler.h#newcode54 cc/input/input_handler.h:54: enum ScrollStatus { Nit: Add ...
6 years, 8 months ago (2014-04-16 14:24:11 UTC) #10
Ian Vollick
On 2014/04/16 14:24:11, Alexei Svitkine wrote: > histograms lgtm with nit > > https://codereview.chromium.org/238803005/diff/80001/cc/input/input_handler.h > ...
6 years, 8 months ago (2014-04-16 14:38:13 UTC) #11
enne (OOO)
There's a bug for incorrect hit testing, right? Can you fill that out in the ...
6 years, 8 months ago (2014-04-16 16:43:13 UTC) #12
Ian Vollick
On 2014/04/16 16:43:13, enne wrote: > There's a bug for incorrect hit testing, right? Can ...
6 years, 8 months ago (2014-04-16 16:48:51 UTC) #13
Ian Vollick
The CQ bit was checked by vollick@chromium.org
6 years, 8 months ago (2014-04-16 16:49:00 UTC) #14
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/vollick@chromium.org/238803005/100001
6 years, 8 months ago (2014-04-16 16:53:23 UTC) #15
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 8 months ago (2014-04-16 17:41:21 UTC) #16
commit-bot: I haz the power
Retried try job too often on chromium_presubmit for step(s) presubmit http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=chromium_presubmit&number=61799
6 years, 8 months ago (2014-04-16 17:41:21 UTC) #17
jdduke (slow)
content/renderer/input lgtm with one question. https://codereview.chromium.org/238803005/diff/100001/content/renderer/input/input_handler_proxy.cc File content/renderer/input/input_handler_proxy.cc (right): https://codereview.chromium.org/238803005/diff/100001/content/renderer/input/input_handler_proxy.cc#newcode167 content/renderer/input/input_handler_proxy.cc:167: NOTREACHED(); Would it be ...
6 years, 8 months ago (2014-04-16 17:41:53 UTC) #18
Ian Vollick
On 2014/04/16 17:41:53, jdduke wrote: > content/renderer/input lgtm with one question. > > https://codereview.chromium.org/238803005/diff/100001/content/renderer/input/input_handler_proxy.cc > ...
6 years, 8 months ago (2014-04-16 17:57:23 UTC) #19
Ian Vollick
The CQ bit was checked by vollick@chromium.org
6 years, 8 months ago (2014-04-16 17:57:51 UTC) #20
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/vollick@chromium.org/238803005/120001
6 years, 8 months ago (2014-04-16 18:00:03 UTC) #21
commit-bot: I haz the power
6 years, 8 months ago (2014-04-16 21:22:53 UTC) #22
Message was sent while issue was closed.
Change committed as 264306

Powered by Google App Engine
This is Rietveld 408576698