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

Issue 1405613002: Support vsync-aligned wheel event dispatch (Closed)

Created:
5 years, 2 months ago by jdduke (slow)
Modified:
4 years ago
Reviewers:
tdresser
CC:
chromium-reviews, yusukes+watch_chromium.org, shuchen+watch_chromium.org, jam, sievers+watch_chromium.org, jbauman+watch_chromium.org, nona+watch_chromium.org, darin-cc_chromium.org, kalyank, piman+watch_chromium.org, danakj+watch_chromium.org, James Su, jdduke+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@input_cleanup_todo
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Support vsync-aligned wheel event dispatch When begin-frame scheduling is enabled, buffer wheel events until a BeginFrame-triggered flush. Also factor out wheel event logic from the InputRouter into a standalone WheelEventQueue. BUG=394562

Patch Set 1 #

Patch Set 2 : Rebase #

Patch Set 3 : Cleanup #

Patch Set 4 : Fix re-entrant issues #

Patch Set 5 : Cleanup #

Patch Set 6 : Fix re-entrancy #

Total comments: 2

Patch Set 7 : Fix empty check #

Patch Set 8 : Rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+258 lines, -98 lines) Patch
M content/browser/renderer_host/input/input_router_config_helper.cc View 2 chunks +8 lines, -0 lines 0 comments Download
M content/browser/renderer_host/input/input_router_impl.h View 1 2 5 chunks +14 lines, -19 lines 0 comments Download
M content/browser/renderer_host/input/input_router_impl.cc View 1 2 8 chunks +24 lines, -59 lines 0 comments Download
M content/browser/renderer_host/input/input_router_impl_unittest.cc View 1 2 chunks +6 lines, -2 lines 0 comments Download
A content/browser/renderer_host/input/wheel_event_queue.h View 1 2 3 4 5 6 1 chunk +84 lines, -0 lines 0 comments Download
A content/browser/renderer_host/input/wheel_event_queue.cc View 1 2 3 4 5 1 chunk +111 lines, -0 lines 0 comments Download
M content/content_browser.gypi View 1 1 chunk +2 lines, -0 lines 0 comments Download
M ui/compositor/compositor.h View 1 2 3 4 5 2 chunks +2 lines, -2 lines 0 comments Download
M ui/compositor/compositor.cc View 1 2 3 4 5 6 7 3 chunks +7 lines, -16 lines 0 comments Download

Depends on Patchset:

Messages

Total messages: 6 (2 generated)
jdduke (slow)
Tim, any thoughts on this change? (particularly the content/ bits, the ui/bits are landing separately ...
5 years, 2 months ago (2015-10-21 17:27:02 UTC) #2
tdresser
This looks like a solid approach to me, at a high level. It seems like ...
5 years, 2 months ago (2015-10-22 13:53:53 UTC) #3
jdduke (slow)
https://chromiumcodereview.appspot.com/1405613002/diff/100001/content/browser/renderer_host/input/wheel_event_queue.h File content/browser/renderer_host/input/wheel_event_queue.h (right): https://chromiumcodereview.appspot.com/1405613002/diff/100001/content/browser/renderer_host/input/wheel_event_queue.h#newcode53 content/browser/renderer_host/input/wheel_event_queue.h:53: return mouse_wheel_pending_ || coalesced_wheel_events_.empty(); On 2015/10/22 13:53:53, tdresser wrote: ...
5 years, 2 months ago (2015-10-22 15:15:05 UTC) #4
jdduke (slow)
5 years, 2 months ago (2015-10-22 15:17:12 UTC) #5
On 2015/10/22 13:53:53, tdresser wrote:
> It seems like there's a slim possibility that more code sharing between the
> touchpad and touchscreen code would improve matters, but it seems pretty
> unlikely to me.

Yeah, it is a bit unfortunate. I tried a few ways to share code, but the
GestureEventQueue has some nuances that make things tricky. In particularly, it
allows 2 events to be in-flight at the same time (scroll + pinch), which
complicates any kind of shared buffering data structure.

Powered by Google App Engine
This is Rietveld 408576698