| Index: third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc
|
| diff --git a/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc b/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc
|
| index 130d539b4ef053726821e1968e10753b6c00ba7e..cb4938dc6b74f1baa9047d51c1c9c05ee59111f0 100644
|
| --- a/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc
|
| +++ b/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc
|
| @@ -757,7 +757,8 @@ void RendererSchedulerImpl::UpdateForInputEventOnCompositorThread(
|
| }
|
|
|
| void RendererSchedulerImpl::DidHandleInputEventOnMainThread(
|
| - const blink::WebInputEvent& web_input_event) {
|
| + const WebInputEvent& web_input_event,
|
| + WebInputEventResult result) {
|
| TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"),
|
| "RendererSchedulerImpl::DidHandleInputEventOnMainThread");
|
| helper_.CheckOnValidThread();
|
| @@ -765,6 +766,17 @@ void RendererSchedulerImpl::DidHandleInputEventOnMainThread(
|
| base::AutoLock lock(any_thread_lock_);
|
| AnyThread().user_model.DidFinishProcessingInputEvent(
|
| helper_.scheduler_tqm_delegate()->NowTicks());
|
| +
|
| + // If we were waiting for a touchstart response and the main thread has
|
| + // prevented the default gesture, consider the gesture established. This
|
| + // ensures single-event gestures such as button presses are promptly
|
| + // detected.
|
| + if (AnyThread().awaiting_touch_start_response &&
|
| + result == WebInputEventResult::HandledApplication) {
|
| + AnyThread().awaiting_touch_start_response = false;
|
| + AnyThread().default_gesture_prevented = true;
|
| + UpdatePolicyLocked(UpdateType::MAY_EARLY_OUT_IF_POLICY_UNCHANGED);
|
| + }
|
| }
|
| }
|
|
|
|
|