New issue
Advanced search Search tips

Issue 838616 link

Starred by 6 users

Issue metadata

Status: Fixed
Owner:
Closed: May 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome
Pri: 3
Type: Bug



Sign in to add a comment

[FATAL:render_widget_host_impl.cc(1239)Check failed: !is_in_gesture_scroll_[gesture_event.SourceDevice()] || FlingCancellationIsDeferred()

Project Member Reported by bokan@chromium.org, May 1 2018

Issue description

Chrome Version: ToT Dev Build (r#554401)
OS: Android

What steps will reproduce the problem?
(1) Open the attached file
(2) Do a horizontal fling
(3) Now try to scroll vertically

What happens?
DCHECK fires.

The issue is caused because RWHI sees that it got a GestureFlingStart and so it sets is_in_gesture_scroll_ immediately. However, before the GFS gets to the FlingController it's filtered out by the touch action filter (since horizontal scrolling is disabled). Once a GFS arrives the GSE is supposed to be sent by the fling controller when the fling is cancelled or ends. Since the GFS never arrives we never send the GSE and so the gesture scroll never ends as far as is_in_gesture_scroll_ can tell.

There's a few ways to fix this and I don't especially have a preference but the FlingController is the only one that can know if you're ultimitely actually flinging (and thus will get a GSE). TouchAction is one case but there appear to be a few different ways the GFS might get filtered or early-outed before it actually reaches the FlingController.
 

Comment 1 by bokan@chromium.org, May 1 2018

...and the attached file
touchaction.html
91 bytes View Download

Comment 2 by bokan@chromium.org, May 1 2018

By the way - removing that DCHECK then causes a similar issue in the InputEventStreamValidator.
Just another data point: this happened to me as well my. My build is at 2e07490de853.

Here is the full stack trace:
[146503:146503:0502/151436.927867:FATAL:render_widget_host_impl.cc(1239)] Check failed: !is_in_gesture_scroll_[gesture_event.SourceDevice()] || FlingCancellationIsDeferred(). 
#0 0x7f8a337bd86d base::debug::StackTrace::StackTrace()
#1 0x7f8a334e854c base::debug::StackTrace::StackTrace()
#2 0x7f8a33559f7a logging::LogMessage::~LogMessage()
#3 0x7f8a2d875640 content::RenderWidgetHostImpl::ForwardGestureEventWithLatencyInfo()
#4 0x7f8a2d6f98a3 content::InputRouterImpl::ForwardGestureEventWithLatencyInfo()
#5 0x7f8a2d704049 content::MouseWheelEventQueue::SendScrollBegin()
#6 0x7f8a2d7036fa content::MouseWheelEventQueue::ProcessMouseWheelAck()
#7 0x7f8a2d6f9791 content::InputRouterImpl::MouseWheelEventHandled()
#8 0x7f8a2d6fbe76 _ZN4base8internal13FunctorTraitsIMN7content15InputRouterImplEFvRKNS2_20EventWithLatencyInfoIN5blink13WebMouseEventEEENS2_19InputEventAckSourceERKN2ui11LatencyInfoENS2_18InputEventAckStateERKNS_8OptionalINSB_19DidOverscrollParamsEEERKNSG_IN2cc11TouchActionEEEEvE6InvokeISR_NS_7WeakPtrIS3_EEJS7_SA_SE_SF_SK_SP_EEEvT_OT0_DpOT1_
#9 0x7f8a2d6fbd3b _ZN4base8internal12InvokeHelperILb1EvE8MakeItSoIMN7content15InputRouterImplEFvRKNS4_20EventWithLatencyInfoIN5blink13WebMouseEventEEENS4_19InputEventAckSourceERKN2ui11LatencyInfoENS4_18InputEventAckStateERKNS_8OptionalINSD_19DidOverscrollParamsEEERKNSI_IN2cc11TouchActionEEEENS_7WeakPtrIS5_EEJS9_SC_SG_SH_SM_SR_EEEvOT_OT0_DpOT1_
#10 0x7f8a2d6fbc2d _ZN4base8internal7InvokerINS0_9BindStateIMN7content15InputRouterImplEFvRKNS3_20EventWithLatencyInfoIN5blink13WebMouseEventEEENS3_19InputEventAckSourceERKN2ui11LatencyInfoENS3_18InputEventAckStateERKNS_8OptionalINSC_19DidOverscrollParamsEEERKNSH_IN2cc11TouchActionEEEEJNS_7WeakPtrIS4_EES8_EEEFvSB_SF_SG_SL_SQ_EE7RunImplISS_NSt3__15tupleIJSU_S8_EEEJLm0ELm1EEEEvOT_OT0_NSZ_16integer_sequenceImJXspT1_EEEEOSB_SF_OSG_SL_SQ_
#11 0x7f8a2d6fba9e _ZN4base8internal7InvokerINS0_9BindStateIMN7content15InputRouterImplEFvRKNS3_20EventWithLatencyInfoIN5blink13WebMouseEventEEENS3_19InputEventAckSourceERKN2ui11LatencyInfoENS3_18InputEventAckStateERKNS_8OptionalINSC_19DidOverscrollParamsEEERKNSH_IN2cc11TouchActionEEEEJNS_7WeakPtrIS4_EES8_EEEFvSB_SF_SG_SL_SQ_EE7RunOnceEPNS0_13BindStateBaseESB_SF_SG_SL_SQ_
#12 0x7f8a2c099023 _ZNO4base12OnceCallbackIFvN7content19InputEventAckSourceERKN2ui11LatencyInfoENS1_18InputEventAckStateERKNS_8OptionalINS3_19DidOverscrollParamsEEERKNS8_IN2cc11TouchActionEEEEE3RunES2_S6_S7_SC_SH_
#13 0x7f8a2c08968c content::mojom::WidgetInputHandler_DispatchEvent_ForwardToCallback::Accept()
#14 0x7f8a31921c6a mojo::InterfaceEndpointClient::HandleValidatedMessage()
#15 0x7f8a31920821 mojo::InterfaceEndpointClient::HandleIncomingMessageThunk::Accept()
#16 0x7f8a3191ecb2 mojo::FilterChain::Accept()
#17 0x7f8a31924a05 mojo::InterfaceEndpointClient::HandleIncomingMessage()
#18 0x7f8a31930f3b mojo::internal::MultiplexRouter::ProcessIncomingMessage()
#19 0x7f8a31930485 mojo::internal::MultiplexRouter::Accept()
#20 0x7f8a3191ecb2 mojo::FilterChain::Accept()
#21 0x7f8a31910adf mojo::Connector::ReadSingleMessage()
#22 0x7f8a31911b2a mojo::Connector::ReadAllAvailableMessages()
#23 0x7f8a319118f5 mojo::Connector::OnHandleReadyInternal()
#24 0x7f8a319117db mojo::Connector::OnWatcherHandleReady()
#25 0x7f8a319153af _ZN4base8internal13FunctorTraitsIMN4mojo9ConnectorEFvjEvE6InvokeIS5_PS3_JjEEEvT_OT0_DpOT1_
#26 0x7f8a3191530f _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKMN4mojo9ConnectorEFvjEJPS5_jEEEvOT_DpOT0_
#27 0x7f8a319152a5 _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo9ConnectorEFvjEJNS0_17UnretainedWrapperIS4_EEEEEFvjEE7RunImplIRKS6_RKNSt3__15tupleIJS8_EEEJLm0EEEEvOT_OT0_NSF_16integer_sequenceImJXspT1_EEEEOj
#28 0x7f8a319151db _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo9ConnectorEFvjEJNS0_17UnretainedWrapperIS4_EEEEEFvjEE3RunEPNS0_13BindStateBaseEj
#29 0x7f8a3190c09e _ZNKR4base17RepeatingCallbackIFvjEE3RunEj
#30 0x7f8a3191441f mojo::SimpleWatcher::DiscardReadyState()
#31 0x7f8a3191469f _ZN4base8internal13FunctorTraitsIPFvRKNS_17RepeatingCallbackIFvjEEEjRKN4mojo18HandleSignalsStateEEvE6InvokeIRKSC_JS6_jSA_EEEvOT_DpOT0_
#32 0x7f8a3191463d _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKPFvRKNS_17RepeatingCallbackIFvjEEEjRKN4mojo18HandleSignalsStateEEJS8_jSC_EEEvOT_DpOT0_
#33 0x7f8a319145e0 _ZN4base8internal7InvokerINS0_9BindStateIPFvRKNS_17RepeatingCallbackIFvjEEEjRKN4mojo18HandleSignalsStateEEJS5_EEEFvjSB_EE7RunImplIRKSD_RKNSt3__15tupleIJS5_EEEJLm0EEEEvOT_OT0_NSK_16integer_sequenceImJXspT1_EEEEOjSB_
#34 0x7f8a31914516 _ZN4base8internal7InvokerINS0_9BindStateIPFvRKNS_17RepeatingCallbackIFvjEEEjRKN4mojo18HandleSignalsStateEEJS5_EEEFvjSB_EE3RunEPNS0_13BindStateBaseEjSB_
#35 0x7f8a318a17ce _ZNKR4base17RepeatingCallbackIFvjRKN4mojo18HandleSignalsStateEEE3RunEjS4_
#36 0x7f8a318a1119 mojo::SimpleWatcher::OnHandleReady()
#37 0x7f8a318a1fc3 _ZN4base8internal13FunctorTraitsIMN4mojo13SimpleWatcherEFvijRKNS2_18HandleSignalsStateEEvE6InvokeIS8_RKNS_7WeakPtrIS3_EEJRKiRKjS6_EEEvT_OT0_DpOT1_
#38 0x7f8a318a1f05 _ZN4base8internal12InvokeHelperILb1EvE8MakeItSoIRKMN4mojo13SimpleWatcherEFvijRKNS4_18HandleSignalsStateEERKNS_7WeakPtrIS5_EEJRKiRKjS8_EEEvOT_OT0_DpOT1_
#39 0x7f8a318a1e62 _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo13SimpleWatcherEFvijRKNS3_18HandleSignalsStateEEJNS_7WeakPtrIS4_EEijS5_EEEFvvEE7RunImplIRKS9_RKNSt3__15tupleIJSB_ijS5_EEEJLm0ELm1ELm2ELm3EEEEvOT_OT0_NSI_16integer_sequenceImJXspT1_EEEE
#40 0x7f8a318a1cdc _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo13SimpleWatcherEFvijRKNS3_18HandleSignalsStateEEJNS_7WeakPtrIS4_EEijS5_EEEFvvEE3RunEPNS0_13BindStateBaseE
#41 0x7f8a334971ee _ZNO4base12OnceCallbackIFvvEE3RunEv
#42 0x7f8a334e9a12 base::debug::TaskAnnotator::RunTask()
#43 0x7f8a335793e9 base::internal::IncomingTaskQueue::RunTask()
#44 0x7f8a335824c7 base::MessageLoop::RunTask()
#45 0x7f8a33582738 base::MessageLoop::DeferOrRunPendingTask()
#46 0x7f8a33582a69 base::MessageLoop::DoWork()
#47 0x7f8a33586cd6 base::MessagePumpGlib::Run()
#48 0x7f8a33581cbb base::MessageLoop::Run()
#49 0x7f8a3362af4d base::RunLoop::Run()
#50 0x55bdd40c1ffe ChromeBrowserMainParts::MainMessageLoopRun()
#51 0x7f8a2ce1cea1 content::BrowserMainLoop::RunMainMessageLoopParts()
#52 0x7f8a2ce24560 content::BrowserMainRunnerImpl::Run()
#53 0x7f8a2ce10d40 content::BrowserMain()
#54 0x7f8a2eb2cc67 content::RunNamedProcessTypeMain()
#55 0x7f8a2eb30654 content::ContentMainRunnerImpl::Run()
#56 0x7f8a2eb23975 content::ContentServiceManagerMainDelegate::RunEmbedderProcess()
#57 0x7f8a33d3bebc service_manager::Main()
#58 0x7f8a2eb29b85 content::ContentMain()
#59 0x55bdd252c240 ChromeMain
#60 0x55bdd252c152 main
#61 0x7f8a135222b1 __libc_start_main

Received signal 6
#0 0x7f8a337bd86d base::debug::StackTrace::StackTrace()
#1 0x7f8a334e854c base::debug::StackTrace::StackTrace()
#2 0x7f8a337bd2c4 base::debug::(anonymous namespace)::StackDumpSignalHandler()
#3 0x7f8a33a680c0 <unknown>
#4 0x7f8a13534fcf gsignal
#5 0x7f8a135363fa abort
#6 0x7f8a337bca46 base::debug::(anonymous namespace)::DebugBreak()
#7 0x7f8a337bca28 base::debug::BreakDebugger()
#8 0x7f8a3355ad74 logging::LogMessage::~LogMessage()
#9 0x7f8a2d875640 content::RenderWidgetHostImpl::ForwardGestureEventWithLatencyInfo()
#10 0x7f8a2d6f98a3 content::InputRouterImpl::ForwardGestureEventWithLatencyInfo()
#11 0x7f8a2d704049 content::MouseWheelEventQueue::SendScrollBegin()
#12 0x7f8a2d7036fa content::MouseWheelEventQueue::ProcessMouseWheelAck()
#13 0x7f8a2d6f9791 content::InputRouterImpl::MouseWheelEventHandled()
#14 0x7f8a2d6fbe76 _ZN4base8internal13FunctorTraitsIMN7content15InputRouterImplEFvRKNS2_20EventWithLatencyInfoIN5blink13WebMouseEventEEENS2_19InputEventAckSourceERKN2ui11LatencyInfoENS2_18InputEventAckStateERKNS_8OptionalINSB_19DidOverscrollParamsEEERKNSG_IN2cc11TouchActionEEEEvE6InvokeISR_NS_7WeakPtrIS3_EEJS7_SA_SE_SF_SK_SP_EEEvT_OT0_DpOT1_
#15 0x7f8a2d6fbd3b _ZN4base8internal12InvokeHelperILb1EvE8MakeItSoIMN7content15InputRouterImplEFvRKNS4_20EventWithLatencyInfoIN5blink13WebMouseEventEEENS4_19InputEventAckSourceERKN2ui11LatencyInfoENS4_18InputEventAckStateERKNS_8OptionalINSD_19DidOverscrollParamsEEERKNSI_IN2cc11TouchActionEEEENS_7WeakPtrIS5_EEJS9_SC_SG_SH_SM_SR_EEEvOT_OT0_DpOT1_
#16 0x7f8a2d6fbc2d _ZN4base8internal7InvokerINS0_9BindStateIMN7content15InputRouterImplEFvRKNS3_20EventWithLatencyInfoIN5blink13WebMouseEventEEENS3_19InputEventAckSourceERKN2ui11LatencyInfoENS3_18InputEventAckStateERKNS_8OptionalINSC_19DidOverscrollParamsEEERKNSH_IN2cc11TouchActionEEEEJNS_7WeakPtrIS4_EES8_EEEFvSB_SF_SG_SL_SQ_EE7RunImplISS_NSt3__15tupleIJSU_S8_EEEJLm0ELm1EEEEvOT_OT0_NSZ_16integer_sequenceImJXspT1_EEEEOSB_SF_OSG_SL_SQ_
#17 0x7f8a2d6fba9e _ZN4base8internal7InvokerINS0_9BindStateIMN7content15InputRouterImplEFvRKNS3_20EventWithLatencyInfoIN5blink13WebMouseEventEEENS3_19InputEventAckSourceERKN2ui11LatencyInfoENS3_18InputEventAckStateERKNS_8OptionalINSC_19DidOverscrollParamsEEERKNSH_IN2cc11TouchActionEEEEJNS_7WeakPtrIS4_EES8_EEEFvSB_SF_SG_SL_SQ_EE7RunOnceEPNS0_13BindStateBaseESB_SF_SG_SL_SQ_
#18 0x7f8a2c099023 _ZNO4base12OnceCallbackIFvN7content19InputEventAckSourceERKN2ui11LatencyInfoENS1_18InputEventAckStateERKNS_8OptionalINS3_19DidOverscrollParamsEEERKNS8_IN2cc11TouchActionEEEEE3RunES2_S6_S7_SC_SH_
#19 0x7f8a2c08968c content::mojom::WidgetInputHandler_DispatchEvent_ForwardToCallback::Accept()
#20 0x7f8a31921c6a mojo::InterfaceEndpointClient::HandleValidatedMessage()
#21 0x7f8a31920821 mojo::InterfaceEndpointClient::HandleIncomingMessageThunk::Accept()
#22 0x7f8a3191ecb2 mojo::FilterChain::Accept()
#23 0x7f8a31924a05 mojo::InterfaceEndpointClient::HandleIncomingMessage()
#24 0x7f8a31930f3b mojo::internal::MultiplexRouter::ProcessIncomingMessage()
#25 0x7f8a31930485 mojo::internal::MultiplexRouter::Accept()
#26 0x7f8a3191ecb2 mojo::FilterChain::Accept()
#27 0x7f8a31910adf mojo::Connector::ReadSingleMessage()
#28 0x7f8a31911b2a mojo::Connector::ReadAllAvailableMessages()
#29 0x7f8a319118f5 mojo::Connector::OnHandleReadyInternal()
#30 0x7f8a319117db mojo::Connector::OnWatcherHandleReady()
#31 0x7f8a319153af _ZN4base8internal13FunctorTraitsIMN4mojo9ConnectorEFvjEvE6InvokeIS5_PS3_JjEEEvT_OT0_DpOT1_
#32 0x7f8a3191530f _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKMN4mojo9ConnectorEFvjEJPS5_jEEEvOT_DpOT0_
#33 0x7f8a319152a5 _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo9ConnectorEFvjEJNS0_17UnretainedWrapperIS4_EEEEEFvjEE7RunImplIRKS6_RKNSt3__15tupleIJS8_EEEJLm0EEEEvOT_OT0_NSF_16integer_sequenceImJXspT1_EEEEOj
#34 0x7f8a319151db _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo9ConnectorEFvjEJNS0_17UnretainedWrapperIS4_EEEEEFvjEE3RunEPNS0_13BindStateBaseEj
#35 0x7f8a3190c09e _ZNKR4base17RepeatingCallbackIFvjEE3RunEj
#36 0x7f8a3191441f mojo::SimpleWatcher::DiscardReadyState()
#37 0x7f8a3191469f _ZN4base8internal13FunctorTraitsIPFvRKNS_17RepeatingCallbackIFvjEEEjRKN4mojo18HandleSignalsStateEEvE6InvokeIRKSC_JS6_jSA_EEEvOT_DpOT0_
#38 0x7f8a3191463d _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKPFvRKNS_17RepeatingCallbackIFvjEEEjRKN4mojo18HandleSignalsStateEEJS8_jSC_EEEvOT_DpOT0_
#39 0x7f8a319145e0 _ZN4base8internal7InvokerINS0_9BindStateIPFvRKNS_17RepeatingCallbackIFvjEEEjRKN4mojo18HandleSignalsStateEEJS5_EEEFvjSB_EE7RunImplIRKSD_RKNSt3__15tupleIJS5_EEEJLm0EEEEvOT_OT0_NSK_16integer_sequenceImJXspT1_EEEEOjSB_
#40 0x7f8a31914516 _ZN4base8internal7InvokerINS0_9BindStateIPFvRKNS_17RepeatingCallbackIFvjEEEjRKN4mojo18HandleSignalsStateEEJS5_EEEFvjSB_EE3RunEPNS0_13BindStateBaseEjSB_
#41 0x7f8a318a17ce _ZNKR4base17RepeatingCallbackIFvjRKN4mojo18HandleSignalsStateEEE3RunEjS4_
#42 0x7f8a318a1119 mojo::SimpleWatcher::OnHandleReady()
#43 0x7f8a318a1fc3 _ZN4base8internal13FunctorTraitsIMN4mojo13SimpleWatcherEFvijRKNS2_18HandleSignalsStateEEvE6InvokeIS8_RKNS_7WeakPtrIS3_EEJRKiRKjS6_EEEvT_OT0_DpOT1_
#44 0x7f8a318a1f05 _ZN4base8internal12InvokeHelperILb1EvE8MakeItSoIRKMN4mojo13SimpleWatcherEFvijRKNS4_18HandleSignalsStateEERKNS_7WeakPtrIS5_EEJRKiRKjS8_EEEvOT_OT0_DpOT1_
#45 0x7f8a318a1e62 _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo13SimpleWatcherEFvijRKNS3_18HandleSignalsStateEEJNS_7WeakPtrIS4_EEijS5_EEEFvvEE7RunImplIRKS9_RKNSt3__15tupleIJSB_ijS5_EEEJLm0ELm1ELm2ELm3EEEEvOT_OT0_NSI_16integer_sequenceImJXspT1_EEEE
#46 0x7f8a318a1cdc _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo13SimpleWatcherEFvijRKNS3_18HandleSignalsStateEEJNS_7WeakPtrIS4_EEijS5_EEEFvvEE3RunEPNS0_13BindStateBaseE
#47 0x7f8a334971ee _ZNO4base12OnceCallbackIFvvEE3RunEv
#48 0x7f8a334e9a12 base::debug::TaskAnnotator::RunTask()
#49 0x7f8a335793e9 base::internal::IncomingTaskQueue::RunTask()
#50 0x7f8a335824c7 base::MessageLoop::RunTask()
#51 0x7f8a33582738 base::MessageLoop::DeferOrRunPendingTask()
#52 0x7f8a33582a69 base::MessageLoop::DoWork()
#53 0x7f8a33586cd6 base::MessagePumpGlib::Run()
#54 0x7f8a33581cbb base::MessageLoop::Run()
#55 0x7f8a3362af4d base::RunLoop::Run()
#56 0x55bdd40c1ffe ChromeBrowserMainParts::MainMessageLoopRun()
#57 0x7f8a2ce1cea1 content::BrowserMainLoop::RunMainMessageLoopParts()
#58 0x7f8a2ce24560 content::BrowserMainRunnerImpl::Run()
#59 0x7f8a2ce10d40 content::BrowserMain()
#60 0x7f8a2eb2cc67 content::RunNamedProcessTypeMain()
#61 0x7f8a2eb30654 content::ContentMainRunnerImpl::Run()
  r8: 0000000000000000  r9: 00007fff25e12e40 r10: 0000000000000008 r11: 0000000000000246
 r12: 000055bdd252c000 r13: 00007fff25e1ae30 r14: 0000000000000000 r15: 0000000000000000
  di: 0000000000000002  si: 00007fff25e12e40  bp: 00007fff25e13080  bx: 0000000000000006
  dx: 0000000000000000  ax: 0000000000000000  cx: 00007f8a13534fcf  sp: 00007fff25e12eb8
  ip: 00007f8a13534fcf efl: 0000000000000246 cgf: 002b000000000033 erf: 0000000000000000
 trp: 0000000000000000 msk: 0000000000000000 cr2: 0000000000000000
[end of stack trace]
Calling _exit(1). Core file will not be generated.


This seems to be the same as  crbug.com/827286 

Comment 5 by sahel@chromium.org, May 17 2018

Cc: dtapu...@chromium.org sahel@chromium.org
 Issue 827286  has been merged into this issue.

Comment 6 by sahel@chromium.org, May 23 2018

 Issue 833593  has been merged into this issue.
Project Member

Comment 7 by bugdroid1@chromium.org, May 30 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ce09732e027baa00932ffc4b8ec06f735333153a

commit ce09732e027baa00932ffc4b8ec06f735333153a
Author: Xida Chen <xidachen@chromium.org>
Date: Wed May 30 15:22:48 2018

Send GFS/GFC to FlingController before TouchActionFilter

In our current implementation, we ask touch action filter to process
a gesture event first and then check whether the event should be queued
or not. For FlingStart and FlingCancel we never queue them even if the
touch action filter says that they are allowed. As a result, FlingStart
gesture will always sent to touch action filter and that's causing
some bugs.

This CL fixes it by re-ordering how we process a gesture event. We apply
three different filters in the following order:
1-The fling controller decides to either filter the event or forward it.
The filtering happens either when the controller processes the GSF/GFC
events or when it suppresses GSB/GSU events during fling boosting.

2- If the event is not filtered by the fling controller, the touch action
filter checks to filter the touchscreen gesture scroll events, with this
change this filter doesn't receive GFS events anymore since they are
already filtered by the fling controller.

3- If a gesture event is not filtered by any of the two filters above,
the gesture_event_queue chooses to either add the event to the event
queue to be sent to the renderer or filter the event and add it to
debouncing_deferral_queue_.

Bug:  838616 
Change-Id: I0e363d2fff12fdf5f91c51d42c3752355bb7cccd
Reviewed-on: https://chromium-review.googlesource.com/1075554
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Reviewed-by: Sahel Sharifymoghaddam <sahel@chromium.org>
Commit-Queue: Xida Chen <xidachen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#562831}
[modify] https://crrev.com/ce09732e027baa00932ffc4b8ec06f735333153a/content/browser/renderer_host/input/fling_browsertest.cc
[modify] https://crrev.com/ce09732e027baa00932ffc4b8ec06f735333153a/content/browser/renderer_host/input/gesture_event_queue.cc
[modify] https://crrev.com/ce09732e027baa00932ffc4b8ec06f735333153a/content/browser/renderer_host/input/gesture_event_queue.h
[modify] https://crrev.com/ce09732e027baa00932ffc4b8ec06f735333153a/content/browser/renderer_host/input/gesture_event_queue_unittest.cc
[modify] https://crrev.com/ce09732e027baa00932ffc4b8ec06f735333153a/content/browser/renderer_host/input/input_router_impl.cc
[modify] https://crrev.com/ce09732e027baa00932ffc4b8ec06f735333153a/content/browser/renderer_host/input/touch_action_filter.cc
[modify] https://crrev.com/ce09732e027baa00932ffc4b8ec06f735333153a/content/browser/renderer_host/input/touch_action_filter.h
[modify] https://crrev.com/ce09732e027baa00932ffc4b8ec06f735333153a/content/browser/renderer_host/input/touch_action_filter_unittest.cc

Status: Fixed (was: Assigned)
Should be fixed now.

Comment 9 by sahel@chromium.org, May 30 2018

We decided to reorder fling_controller and touch_action filtering and with the fix that xidachen@ landed in comment #7, https://chromium-review.googlesource.com/c/chromium/src/+/1072568 is not needed anymore.

Sign in to add a comment