diff options
author | jdduke@chromium.org <jdduke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-25 03:17:20 +0000 |
---|---|---|
committer | jdduke@chromium.org <jdduke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-25 03:17:20 +0000 |
commit | 1beb0d114a17006fafb13c562ca209603c56129c (patch) | |
tree | c5f4d38aa4caae822d02454d5dea8a9dab8bd5ba /content | |
parent | 9ec4a4b0347c486903d7bc68cb333bc25ffa127d (diff) | |
download | chromium_src-1beb0d114a17006fafb13c562ca209603c56129c.zip chromium_src-1beb0d114a17006fafb13c562ca209603c56129c.tar.gz chromium_src-1beb0d114a17006fafb13c562ca209603c56129c.tar.bz2 |
Never throttle unconsumed touchmove acks
Throttling unconsumed touchmove's (particularly the first touchmove) when the
main thread is heavy blocks accelerated scrolling. This is most evident during
page load, when the accelerated path is the only viable path for fluid touch
interaction. Address this by completely disabling RenderWidget ack throttling
for unconsumed touchmoves.
BUG=366765
Review URL: https://codereview.chromium.org/252443006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@266114 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
-rw-r--r-- | content/renderer/render_widget.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc index 4ab9a5e..42f1ce6 100644 --- a/content/renderer/render_widget.cc +++ b/content/renderer/render_widget.cc @@ -1053,10 +1053,13 @@ void RenderWidget::OnHandleInputEvent(const blink::WebInputEvent* input_event, } } + // Unconsumed touchmove acks should never be throttled as they're required to + // dispatch compositor-handled scroll gestures. bool event_type_can_be_rate_limited = input_event->type == WebInputEvent::MouseMove || input_event->type == WebInputEvent::MouseWheel || - input_event->type == WebInputEvent::TouchMove; + (input_event->type == WebInputEvent::TouchMove && + ack_result == INPUT_EVENT_ACK_STATE_CONSUMED); bool frame_pending = has_frame_pending_; if (is_accelerated_compositing_active_) { |