| Index: content/renderer/input/main_thread_event_queue.cc
|
| diff --git a/content/renderer/input/main_thread_event_queue.cc b/content/renderer/input/main_thread_event_queue.cc
|
| index 45ee0814ff84418deb0e5bddfcc98afc7bde581f..eb3cba44c74cd754ef2919ee347db56be94af74a 100644
|
| --- a/content/renderer/input/main_thread_event_queue.cc
|
| +++ b/content/renderer/input/main_thread_event_queue.cc
|
| @@ -71,6 +71,9 @@ MainThreadEventQueue::MainThreadEventQueue(
|
| last_touch_start_forced_nonblocking_due_to_fling_(false),
|
| enable_fling_passive_listener_flag_(base::FeatureList::IsEnabled(
|
| features::kPassiveEventListenersDueToFling)),
|
| + enable_non_blocking_due_to_main_thread_responsiveness_flag_(
|
| + base::FeatureList::IsEnabled(
|
| + features::kMainThreadBusyScrollIntervention)),
|
| handle_raf_aligned_touch_input_(
|
| base::FeatureList::IsEnabled(features::kRafAlignedTouchInputEvents)),
|
| handle_raf_aligned_mouse_input_(
|
| @@ -122,6 +125,17 @@ bool MainThreadEventQueue::HandleEvent(
|
| last_touch_start_forced_nonblocking_due_to_fling_ = true;
|
| }
|
| }
|
| +
|
| + if (enable_non_blocking_due_to_main_thread_responsiveness_flag_ &&
|
| + touch_event->dispatchType == blink::WebInputEvent::Blocking) {
|
| + bool passive_due_to_unresponsive_main =
|
| + renderer_scheduler_->MainThreadSeemsUnresponsive();
|
| + if (passive_due_to_unresponsive_main) {
|
| + touch_event->dispatchType = blink::WebInputEvent::
|
| + ListenersForcedNonBlockingDueToMainThreadResponsiveness;
|
| + non_blocking = true;
|
| + }
|
| + }
|
| }
|
| if (is_wheel && non_blocking) {
|
| // Adjust the |dispatchType| on the event since the compositor
|
|
|