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

Issue 2123843002: Make RWHInputEventRouter manage cross-process scroll bubbling (Closed)

Created:
4 years, 5 months ago by kenrb
Modified:
4 years, 5 months ago
CC:
chromium-reviews, darin-cc_chromium.org, nasko+codewatch_chromium.org, jam, creis+watch_chromium.org, site-isolation-reviews_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Make RWHInputEventRouter manage cross-process scroll bubbling Mousewheel-based scroll bubbling from OOPIFs to parent frames was broken in a couple of ways, due to it improperly accounting for the mechanics of synthetic gesture scroll events from the InputRouter class. This refactors bubbling to do the following: - remove bubbling of unused scroll delta from WheelEvent acks, which was wrong, - pass acks from GestureScrollUpdate and GestureScrollEnd events to the CrossProcessFrameConnector and then have RWHInputEventRouter do most of the reasoning about where to target unused scroll, - track the current scroll bubbling target, which can change due to nested OOPIFs, and manage GestureScrollBegin and GestureScrollEnds to each renderer (the previous approach of wrapping each GestureScrollUpdate led to bubbled scrolls feeling really slow). BUG=621624 CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_site_isolation Committed: https://crrev.com/3bdfea50bdfc6cc2b73c12969ca6207b5949fac1 Cr-Commit-Position: refs/heads/master@{#404500}

Patch Set 1 #

Patch Set 2 : Rebase #

Total comments: 17

Patch Set 3 : wjmaclean review comments addressed #

Total comments: 3

Patch Set 4 : Fix targeting bug that James pointed out #

Patch Set 5 : Added test #

Patch Set 6 : Added comment on future refactor. #

Patch Set 7 : Test fix #

Patch Set 8 : Test fix, take 2 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+198 lines, -52 lines) Patch
M content/browser/frame_host/cross_process_frame_connector.h View 3 chunks +6 lines, -3 lines 0 comments Download
M content/browser/frame_host/cross_process_frame_connector.cc View 1 2 4 chunks +34 lines, -32 lines 0 comments Download
M content/browser/frame_host/render_widget_host_view_child_frame.h View 1 1 chunk +0 lines, -2 lines 0 comments Download
M content/browser/frame_host/render_widget_host_view_child_frame.cc View 1 2 1 chunk +11 lines, -13 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_input_event_router.h View 1 2 2 chunks +14 lines, -0 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_input_event_router.cc View 1 2 3 4 5 2 chunks +108 lines, -0 lines 0 comments Download
M content/browser/site_per_process_browsertest.cc View 1 2 3 4 5 6 7 4 chunks +25 lines, -2 lines 0 comments Download

Messages

Total messages: 33 (7 generated)
kenrb
wjmaclean@: PTAL at the overall patch. dtapuska@: Can you review this to see if it ...
4 years, 5 months ago (2016-07-06 13:48:33 UTC) #3
wjmaclean
I've put a few comments on this. I am confused by the first/bubbling target logic ...
4 years, 5 months ago (2016-07-06 14:30:44 UTC) #4
kenrb
Thanks for the review. I had started putting together a drawing last week to get ...
4 years, 5 months ago (2016-07-06 16:07:52 UTC) #5
wjmaclean
https://codereview.chromium.org/2123843002/diff/20001/content/browser/frame_host/cross_process_frame_connector.cc File content/browser/frame_host/cross_process_frame_connector.cc (right): https://codereview.chromium.org/2123843002/diff/20001/content/browser/frame_host/cross_process_frame_connector.cc#newcode177 content/browser/frame_host/cross_process_frame_connector.cc:177: resent_gesture_event.x += offset_from_parent.x(); On 2016/07/06 16:07:52, kenrb wrote: > ...
4 years, 5 months ago (2016-07-06 17:38:10 UTC) #6
wjmaclean
On 2016/07/06 17:38:10, wjmaclean wrote: > https://codereview.chromium.org/2123843002/diff/20001/content/browser/frame_host/cross_process_frame_connector.cc > File content/browser/frame_host/cross_process_frame_connector.cc (right): > > https://codereview.chromium.org/2123843002/diff/20001/content/browser/frame_host/cross_process_frame_connector.cc#newcode177 > ...
4 years, 5 months ago (2016-07-06 17:49:30 UTC) #7
wjmaclean
> LGTM, modulo our in-person discussion. Oh, and a test at some point :-)
4 years, 5 months ago (2016-07-06 17:49:55 UTC) #8
kenrb
Thanks, still working on the test. https://codereview.chromium.org/2123843002/diff/20001/content/browser/frame_host/render_widget_host_view_child_frame.cc File content/browser/frame_host/render_widget_host_view_child_frame.cc (right): https://codereview.chromium.org/2123843002/diff/20001/content/browser/frame_host/render_widget_host_view_child_frame.cc#newcode339 content/browser/frame_host/render_widget_host_view_child_frame.cc:339: // forward GestureScrollUpdate. ...
4 years, 5 months ago (2016-07-06 18:50:46 UTC) #9
wjmaclean
On 2016/07/06 18:50:46, kenrb wrote: > > Okay, I think that works for BrowserPlugin when ...
4 years, 5 months ago (2016-07-06 18:54:56 UTC) #10
dtapuska
https://codereview.chromium.org/2123843002/diff/40001/content/browser/frame_host/render_widget_host_view_child_frame.cc File content/browser/frame_host/render_widget_host_view_child_frame.cc (right): https://codereview.chromium.org/2123843002/diff/40001/content/browser/frame_host/render_widget_host_view_child_frame.cc#newcode335 content/browser/frame_host/render_widget_host_view_child_frame.cc:335: // GestureScrollBegin is consumed by the target frame and ...
4 years, 5 months ago (2016-07-06 19:13:16 UTC) #12
tdresser
I think this might be simplified a fair bit by touchpad latching. We should revisit ...
4 years, 5 months ago (2016-07-06 19:26:08 UTC) #13
dtapuska
On 2016/07/06 19:26:08, tdresser wrote: > I think this might be simplified a fair bit ...
4 years, 5 months ago (2016-07-06 19:31:49 UTC) #14
kenrb
Thanks for noticing the ordering problem. As we were saying, it seems like a very ...
4 years, 5 months ago (2016-07-06 19:58:44 UTC) #15
wjmaclean
On 2016/07/06 19:58:44, kenrb wrote: > Thanks for noticing the ordering problem. As we were ...
4 years, 5 months ago (2016-07-06 20:07:50 UTC) #16
tdresser
On 2016/07/06 20:07:50, wjmaclean wrote: > On 2016/07/06 19:58:44, kenrb wrote: > > Thanks for ...
4 years, 5 months ago (2016-07-07 13:45:26 UTC) #17
kenrb
On 2016/07/07 13:45:26, tdresser wrote: > Once we have scroll latching, we can know whether ...
4 years, 5 months ago (2016-07-07 15:21:28 UTC) #18
tdresser
On 2016/07/07 15:21:28, kenrb wrote: > On 2016/07/07 13:45:26, tdresser wrote: > > Once we ...
4 years, 5 months ago (2016-07-07 15:31:32 UTC) #19
kenrb
Dave and Tim, PTAL? I added one small change to catch a potentially common race, ...
4 years, 5 months ago (2016-07-07 21:45:29 UTC) #20
tdresser
LGTM (but make sure Dave takes a look at it too).
4 years, 5 months ago (2016-07-08 14:35:15 UTC) #21
dtapuska
On 2016/07/08 14:35:15, tdresser wrote: > LGTM (but make sure Dave takes a look at ...
4 years, 5 months ago (2016-07-08 14:38:21 UTC) #22
kenrb
creis: PTAL? (Or else punt to another content owner if you are too busy)
4 years, 5 months ago (2016-07-08 15:31:43 UTC) #24
Charlie Reis
Thanks for the thorough comments. Mostly deferring to the previous reviewers, but otherwise content/ LGTM.
4 years, 5 months ago (2016-07-08 18:31:40 UTC) #25
Charlie Reis
CQ'ing, since this looks ready.
4 years, 5 months ago (2016-07-08 20:42:00 UTC) #26
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/2123843002/140001
4 years, 5 months ago (2016-07-08 20:42:36 UTC) #29
commit-bot: I haz the power
Committed patchset #8 (id:140001)
4 years, 5 months ago (2016-07-08 21:50:48 UTC) #30
commit-bot: I haz the power
CQ bit was unchecked.
4 years, 5 months ago (2016-07-08 21:51:19 UTC) #31
commit-bot: I haz the power
4 years, 5 months ago (2016-07-08 21:51:55 UTC) #33
Message was sent while issue was closed.
Patchset 8 (id:??) landed as
https://crrev.com/3bdfea50bdfc6cc2b73c12969ca6207b5949fac1
Cr-Commit-Position: refs/heads/master@{#404500}

Powered by Google App Engine
This is Rietveld 408576698