summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authorjdduke@chromium.org <jdduke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-25 03:17:20 +0000
committerjdduke@chromium.org <jdduke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-25 03:17:20 +0000
commit1beb0d114a17006fafb13c562ca209603c56129c (patch)
treec5f4d38aa4caae822d02454d5dea8a9dab8bd5ba /content
parent9ec4a4b0347c486903d7bc68cb333bc25ffa127d (diff)
downloadchromium_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.cc5
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_) {