Describe the bug
Running cef in off screen with touch events enabled will lead to crash.
It does not matter if it's standard OSR mode or with shared textures enabled, problem is the same.
Last version not affected by this problem was branch [6367]
Tested on [6478] and [6533] i'm getting crash every time.
Didn't test [6422] so can't say if Chrome125 or Chrome126 broke that.
To Reproduce
Steps to reproduce the behavior:
Run cefclient.exe with --off-screen-rendering-enabled --touch-events=enabled
Load bigger page. I tested with Polish news page https://wp.pl
Start swiping down and up page, be patient, cefclient will crash eventually.
Expected behavior
Application can support touch events without crashing.
Versions (please complete the following information):
OS: Windows 11,
CEF branches 6478 and 6533
Attaching call stack after loaded all necessary symbols maybe it will help narrow it down:
libcef.dll!logging::LogMessage::HandleFatal(unsigned __int64 stack_start, const std::__Cr::basic_string<char,std::__Cr::char_traits<char>,std::__Cr::allocator<char>> & str_newline) Line 1048 C++
[Inline Frame] libcef.dll!logging::LogMessage::Flush::<lambda_0>::operator()() Line 748 C++
[Inline Frame] libcef.dll!absl::cleanup_internal::Storage<`lambda at ..\..\base\logging.cc:746:40'>::InvokeCallback() Line 87 C++
[Inline Frame] libcef.dll!absl::Cleanup<absl::cleanup_internal::Tag,`lambda at ..\..\base\logging.cc:746:40'>::~Cleanup() Line 106 C++
libcef.dll!logging::LogMessage::Flush() Line 931 C++
libcef.dll!logging::LogMessage::~LogMessage() Line 703 C++
[Inline Frame] libcef.dll!logging::`anonymous namespace'::DCheckLogMessage::~DCheckLogMessage() Line 167 C++
libcef.dll!logging::`anonymous namespace'::DCheckLogMessage::~DCheckLogMessage() Line 162 C++
[Inline Frame] libcef.dll!std::__Cr::default_delete<logging::LogMessage>::operator()(logging::LogMessage * __ptr) Line 67 C++
[Inline Frame] libcef.dll!std::__Cr::unique_ptr<logging::LogMessage,std::__Cr::default_delete<logging::LogMessage>>::reset(logging::LogMessage * __p) Line 278 C++
libcef.dll!logging::CheckError::~CheckError() Line 344 C++
libcef.dll!CefTouchSelectionControllerClientOSR::InternalClient::DidScroll() Line 455 C++
libcef.dll!CefTouchSelectionControllerClientOSR::OnScrollCompleted() Line 143 C++
libcef.dll!content::TouchSelectionControllerClientChildFrame::DidStopFlinging() Line 40 C++
libcef.dll!content::RenderWidgetHostImpl::DidStopFlinging() Line 3267 C++
libcef.dll!content::FlingScheduler::DidStopFlingingOnBrowser(base::WeakPtr<input::FlingController> fling_controller) Line 60 C++
libcef.dll!input::FlingController::EndCurrentFling(base::TimeTicks current_time) Line 366 C++
[Inline Frame] libcef.dll!input::FlingController::ProcessGestureFlingCancel(const input::EventWithLatencyInfo<blink::WebGestureEvent> & gesture_event) Line 189 C++
libcef.dll!input::FlingController::ObserveAndMaybeConsumeGestureEvent(const input::EventWithLatencyInfo<blink::WebGestureEvent> & gesture_event) Line 142 C++
libcef.dll!content::InputRouterImpl::SendGestureEvent(const input::EventWithLatencyInfo<blink::WebGestureEvent> & original_gesture_event) Line 143 C++
libcef.dll!content::RenderInputRouter::SendGestureEventWithLatencyInfo(const input::EventWithLatencyInfo<blink::WebGestureEvent> & gesture_with_latency) Line 409 C++
libcef.dll!content::RenderWidgetHostImpl::ForwardGestureEventWithLatencyInfo(const blink::WebGestureEvent & gesture_event, const ui::LatencyInfo & latency) Line 1639 C++
libcef.dll!content::RenderWidgetHostInputEventRouter::DispatchTouchscreenGestureEvent(content::RenderWidgetHostViewInput * root_view, content::RenderWidgetHostViewInput * target, const blink::WebGestureEvent & gesture_event, const ui::LatencyInfo & latency, const std::__Cr::optional<gfx::PointF> & target_location) Line 1543 C++
libcef.dll!content::RenderWidgetHostInputEventRouter::DispatchEventToTarget(content::RenderWidgetHostViewInput * root_view, content::RenderWidgetHostViewInput * target, blink::WebInputEvent * event, const ui::LatencyInfo & latency, const std::__Cr::optional<gfx::PointF> & target_location) Line 1928 C++
libcef.dll!content::RenderWidgetTargeter::FoundTarget(content::RenderWidgetHostViewInput * target, const std::__Cr::optional<gfx::PointF> & target_location, content::RenderWidgetTargeter::TargetingRequest * request) Line 392 C++
libcef.dll!content::RenderWidgetTargeter::ResolveTargetingRequest(content::RenderWidgetTargeter::TargetingRequest request) Line 229 C++
libcef.dll!content::RenderWidgetTargeter::FindTargetAndDispatch(content::RenderWidgetHostViewInput * root_view, const blink::WebInputEvent & event, const ui::LatencyInfo & latency) Line 166 C++
libcef.dll!content::RenderWidgetHostInputEventRouter::RouteTouchscreenGestureEvent(content::RenderWidgetHostViewInput * root_view, const blink::WebGestureEvent * event, const ui::LatencyInfo & latency) Line 1680 C++
libcef.dll!CefRenderWidgetHostViewOSR::OnGestureEvent(const ui::GestureEventData & gesture) Line 1525 C++
libcef.dll!ui::FilteredGestureProvider::ForwardGestureEvent(const ui::GestureEventData & event) Line 121 C++
libcef.dll!ui::TouchDispositionGestureFilter::SendGesture(const ui::GestureEventData & event, const ui::GestureEventDataPacket & packet_being_sent) Line 441 C++
libcef.dll!ui::TouchDispositionGestureFilter::CancelFlingIfNecessary(const ui::GestureEventDataPacket & packet_being_sent) Line 466 C++
libcef.dll!ui::TouchDispositionGestureFilter::FilterAndSendPacket(const ui::GestureEventDataPacket & packet) Line 311 C++
libcef.dll!ui::TouchDispositionGestureFilter::SendAckedEvents(const std::__Cr::optional<ui::EventLatencyMetadata> & event_latency_metadata) Line 287 C++
libcef.dll!ui::TouchDispositionGestureFilter::OnTouchEventAck(unsigned int unique_touch_event_id, bool event_consumed, bool is_source_touch_event_set_blocking, const std::__Cr::optional<ui::EventLatencyMetadata> & event_latency_metadata) Line 236 C++
libcef.dll!CefRenderWidgetHostViewOSR::ProcessAckedTouchEvent(const input::EventWithLatencyInfo<blink::WebTouchEvent> & touch, blink::mojom::InputEventResultState ack_result) Line 1502 C++
libcef.dll!content::TouchEventAckQueue::ProcessAckedTouchEvents() Line 199 C++
libcef.dll!content::TouchEventAckQueue::MarkAcked(const input::EventWithLatencyInfo<blink::WebTouchEvent> & touch_event, blink::mojom::InputEventResultState ack_result, content::RenderWidgetHostViewInput * target_view) Line 175 C++
libcef.dll!content::RenderWidgetHostInputEventRouter::ProcessAckedTouchEvent(const input::EventWithLatencyInfo<blink::WebTouchEvent> & event, blink::mojom::InputEventResultState ack_result, content::RenderWidgetHostViewInput * view) Line 955 C++
libcef.dll!content::RenderInputRouter::OnTouchEventAck(const input::EventWithLatencyInfo<blink::WebTouchEvent> & event, blink::mojom::InputEventResultSource ack_source, blink::mojom::InputEventResultState ack_result) Line 321 C++
libcef.dll!content::InputRouterImpl::OnTouchEventAck(const input::EventWithLatencyInfo<blink::WebTouchEvent> & event, blink::mojom::InputEventResultSource ack_source, blink::mojom::InputEventResultState ack_result) Line 484 C++
libcef.dll!input::PassthroughTouchEventQueue::AckTouchEventToClient(const input::EventWithLatencyInfo<blink::WebTouchEvent> & acked_event, blink::mojom::InputEventResultSource ack_source, blink::mojom::InputEventResultState ack_result) Line 250 C++
libcef.dll!input::PassthroughTouchEventQueue::AckCompletedEvents() Line 237 C++
libcef.dll!input::PassthroughTouchEventQueue::ProcessTouchAck(blink::mojom::InputEventResultSource ack_source, blink::mojom::InputEventResultState ack_result, const ui::LatencyInfo & latency_info, const unsigned int unique_touch_event_id, bool should_stop_timeout_monitor) Line 147 C++
libcef.dll!content::InputRouterImpl::TouchEventHandled(const input::EventWithLatencyInfo<blink::WebTouchEvent> & touch_event, blink::mojom::InputEventResultSource source, const ui::LatencyInfo & latency, blink::mojom::InputEventResultState state, mojo::StructPtr<blink::mojom::DidOverscrollParams> overscroll, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional> touch_action) Line 731 C++
libcef.dll!base::internal::DecayedFunctorTraits<void (content::InputRouterImpl::*)(const input::EventWithLatencyInfo<blink::WebTouchEvent> &, blink::mojom::InputEventResultSource, const ui::LatencyInfo &, blink::mojom::InputEventResultState, mojo::StructPtr<blink::mojom::DidOverscrollParams>, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional>),base::WeakPtr<content::InputRouterImpl> &&,input::EventWithLatencyInfo<blink::WebTouchEvent> &&>::Invoke<void (content::InputRouterImpl::*)(const input::EventWithLatencyInfo<blink::WebTouchEvent> &, blink::mojom::InputEventResultSource, const ui::LatencyInfo &, blink::mojom::InputEventResultState, mojo::StructPtr<blink::mojom::DidOverscrollParams>, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional>),const base::WeakPtr<content::InputRouterImpl> &,input::EventWithLatencyInfo<blink::WebTouchEvent>,blink::mojom::InputEventResultSource,const ui::LatencyInfo &,blink::mojom::InputEventResultState,mojo::StructPtr<blink::mojom::DidOverscrollParams>,mojo::InlinedStructPtr<blink::mojom::TouchActionOptional>>(void(content::InputRouterImpl::*)(const input::EventWithLatencyInfo<blink::WebTouchEvent> &, blink::mojom::InputEventResultSource, const ui::LatencyInfo &, blink::mojom::InputEventResultState, mojo::StructPtr<blink::mojom::DidOverscrollParams>, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional>) method, const base::WeakPtr<content::InputRouterImpl> & receiver_ptr, input::EventWithLatencyInfo<blink::WebTouchEvent> && args, blink::mojom::InputEventResultSource && args, const ui::LatencyInfo & args, blink::mojom::InputEventResultState && args, mojo::StructPtr<blink::mojom::DidOverscrollParams> && args, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional> && args) Line 738 C++
[Inline Frame] libcef.dll!base::internal::InvokeHelper<1,base::internal::FunctorTraits<void (content::InputRouterImpl::*&&)(const input::EventWithLatencyInfo<blink::WebTouchEvent> &, blink::mojom::InputEventResultSource, const ui::LatencyInfo &, blink::mojom::InputEventResultState, mojo::StructPtr<blink::mojom::DidOverscrollParams>, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional>),base::WeakPtr<content::InputRouterImpl> &&,input::EventWithLatencyInfo<blink::WebTouchEvent> &&>,void,0,1>::MakeItSo(void(content::InputRouterImpl::*)(const input::EventWithLatencyInfo<blink::WebTouchEvent> &, blink::mojom::InputEventResultSource, const ui::LatencyInfo &, blink::mojom::InputEventResultState, mojo::StructPtr<blink::mojom::DidOverscrollParams>, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional>) && functor, std::__Cr::tuple<base::WeakPtr<content::InputRouterImpl>,input::EventWithLatencyInfo<blink::WebTouchEvent>> && bound, blink::mojom::InputEventResultSource && args, const ui::LatencyInfo & args, blink::mojom::InputEventResultState && args, mojo::StructPtr<blink::mojom::DidOverscrollParams> && args, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional> && args) Line 954 C++
[Inline Frame] libcef.dll!base::internal::Invoker<base::internal::FunctorTraits<void (content::InputRouterImpl::*&&)(const input::EventWithLatencyInfo<blink::WebTouchEvent> &, blink::mojom::InputEventResultSource, const ui::LatencyInfo &, blink::mojom::InputEventResultState, mojo::StructPtr<blink::mojom::DidOverscrollParams>, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional>),base::WeakPtr<content::InputRouterImpl> &&,input::EventWithLatencyInfo<blink::WebTouchEvent> &&>,base::internal::BindState<1,1,0,void (content::InputRouterImpl::*)(const input::EventWithLatencyInfo<blink::WebTouchEvent> &, blink::mojom::InputEventResultSource, const ui::LatencyInfo &, blink::mojom::InputEventResultState, mojo::StructPtr<blink::mojom::DidOverscrollParams>, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional>),base::WeakPtr<content::InputRouterImpl>,input::EventWithLatencyInfo<blink::WebTouchEvent>>,void (blink::mojom::InputEventResultSource, const ui::LatencyInfo &, blink::mojom::InputEventResultState, mojo::StructPtr<blink::mojom::DidOverscrollParams>, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional>)>::RunImpl(void(content::InputRouterImpl::*)(const input::EventWithLatencyInfo<blink::WebTouchEvent> &, blink::mojom::InputEventResultSource, const ui::LatencyInfo &, blink::mojom::InputEventResultState, mojo::StructPtr<blink::mojom::DidOverscrollParams>, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional>) && functor, std::__Cr::tuple<base::WeakPtr<content::InputRouterImpl>,input::EventWithLatencyInfo<blink::WebTouchEvent>> && bound, std::__Cr::integer_sequence<unsigned long long,0,1>, blink::mojom::InputEventResultSource && unbound_args, const ui::LatencyInfo & unbound_args, blink::mojom::InputEventResultState && unbound_args, mojo::StructPtr<blink::mojom::DidOverscrollParams> && unbound_args, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional> && unbound_args) Line 1067 C++
libcef.dll!base::internal::Invoker<base::internal::FunctorTraits<void (content::InputRouterImpl::*&&)(const input::EventWithLatencyInfo<blink::WebTouchEvent> &, blink::mojom::InputEventResultSource, const ui::LatencyInfo &, blink::mojom::InputEventResultState, mojo::StructPtr<blink::mojom::DidOverscrollParams>, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional>),base::WeakPtr<content::InputRouterImpl> &&,input::EventWithLatencyInfo<blink::WebTouchEvent> &&>,base::internal::BindState<1,1,0,void (content::InputRouterImpl::*)(const input::EventWithLatencyInfo<blink::WebTouchEvent> &, blink::mojom::InputEventResultSource, const ui::LatencyInfo &, blink::mojom::InputEventResultState, mojo::StructPtr<blink::mojom::DidOverscrollParams>, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional>),base::WeakPtr<content::InputRouterImpl>,input::EventWithLatencyInfo<blink::WebTouchEvent>>,void (blink::mojom::InputEventResultSource, const ui::LatencyInfo &, blink::mojom::InputEventResultState, mojo::StructPtr<blink::mojom::DidOverscrollParams>, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional>)>::RunOnce(base::internal::BindStateBase * base, blink::mojom::InputEventResultSource unbound_args, const ui::LatencyInfo & unbound_args, blink::mojom::InputEventResultState unbound_args, mojo::StructPtr<blink::mojom::DidOverscrollParams> && unbound_args, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional> && unbound_args) Line 983 C++
libcef.dll!base::OnceCallback<void (blink::mojom::InputEventResultSource, const ui::LatencyInfo &, blink::mojom::InputEventResultState, mojo::StructPtr<blink::mojom::DidOverscrollParams>, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional>)>::Run(blink::mojom::InputEventResultSource args, const ui::LatencyInfo & args, blink::mojom::InputEventResultState args, mojo::StructPtr<blink::mojom::DidOverscrollParams> args, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional> args) Line 156 C++
[Inline Frame] libcef.dll!content::InputRouterImpl::FilterAndSendWebInputEvent::<lambda_0>::operator()(base::OnceCallback<void (blink::mojom::InputEventResultSource, const ui::LatencyInfo &, blink::mojom::InputEventResultState, mojo::StructPtr<blink::mojom::DidOverscrollParams>, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional>)> callback, base::WeakPtr<content::InputRouterImpl> input_router, blink::mojom::InputEventResultSource source, const ui::LatencyInfo & latency, blink::mojom::InputEventResultState state, mojo::StructPtr<blink::mojom::DidOverscrollParams> overscroll, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional> touch_action) Line 639 C++
[Inline Frame] libcef.dll!base::internal::DecayedFunctorTraits<`lambda at ..\..\content\common\input\input_router_impl.cc:624:13',base::OnceCallback<void (blink::mojom::InputEventResultSource, const ui::LatencyInfo &, blink::mojom::InputEventResultState, mojo::StructPtr<blink::mojom::DidOverscrollParams>, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional>)> &&,base::WeakPtr<content::InputRouterImpl> &&>::Invoke(content::InputRouterImpl::FilterAndSendWebInputEvent::<lambda_0> && functor, base::OnceCallback<void (blink::mojom::InputEventResultSource, const ui::LatencyInfo &, blink::mojom::InputEventResultState, mojo::StructPtr<blink::mojom::DidOverscrollParams>, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional>)> && args, base::WeakPtr<content::InputRouterImpl> && args, blink::mojom::InputEventResultSource && args, const ui::LatencyInfo & args, blink::mojom::InputEventResultState && args, mojo::StructPtr<blink::mojom::DidOverscrollParams> && args, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional> && args) Line 656 C++
[Inline Frame] libcef.dll!base::internal::InvokeHelper<0,base::internal::FunctorTraits<`lambda at ..\..\content\common\input\input_router_impl.cc:624:13' &&,base::OnceCallback<void (blink::mojom::InputEventResultSource, const ui::LatencyInfo &, blink::mojom::InputEventResultState, mojo::StructPtr<blink::mojom::DidOverscrollParams>, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional>)> &&,base::WeakPtr<content::InputRouterImpl> &&>,void,0,1>::MakeItSo(content::InputRouterImpl::FilterAndSendWebInputEvent::<lambda_0> && functor, std::__Cr::tuple<base::OnceCallback<void (blink::mojom::InputEventResultSource, const ui::LatencyInfo &, blink::mojom::InputEventResultState, mojo::StructPtr<blink::mojom::DidOverscrollParams>, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional>)>,base::WeakPtr<content::InputRouterImpl>> && bound, blink::mojom::InputEventResultSource && args, const ui::LatencyInfo & args, blink::mojom::InputEventResultState && args, mojo::StructPtr<blink::mojom::DidOverscrollParams> && args, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional> && args) Line 930 C++
[Inline Frame] libcef.dll!base::internal::Invoker<base::internal::FunctorTraits<`lambda at ..\..\content\common\input\input_router_impl.cc:624:13' &&,base::OnceCallback<void (blink::mojom::InputEventResultSource, const ui::LatencyInfo &, blink::mojom::InputEventResultState, mojo::StructPtr<blink::mojom::DidOverscrollParams>, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional>)> &&,base::WeakPtr<content::InputRouterImpl> &&>,base::internal::BindState<0,0,0,`lambda at ..\..\content\common\input\input_router_impl.cc:624:13',base::OnceCallback<void (blink::mojom::InputEventResultSource, const ui::LatencyInfo &, blink::mojom::InputEventResultState, mojo::StructPtr<blink::mojom::DidOverscrollParams>, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional>)>,base::WeakPtr<content::InputRouterImpl>>,void (blink::mojom::InputEventResultSource, const ui::LatencyInfo &, blink::mojom::InputEventResultState, mojo::StructPtr<blink::mojom::DidOverscrollParams>, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional>)>::RunImpl(content::InputRouterImpl::FilterAndSendWebInputEvent::<lambda_0> && functor, std::__Cr::tuple<base::OnceCallback<void (blink::mojom::InputEventResultSource, const ui::LatencyInfo &, blink::mojom::InputEventResultState, mojo::StructPtr<blink::mojom::DidOverscrollParams>, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional>)>,base::WeakPtr<content::InputRouterImpl>> && bound, std::__Cr::integer_sequence<unsigned long long,0,1>, blink::mojom::InputEventResultSource && unbound_args, const ui::LatencyInfo & unbound_args, blink::mojom::InputEventResultState && unbound_args, mojo::StructPtr<blink::mojom::DidOverscrollParams> && unbound_args, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional> && unbound_args) Line 1067 C++
libcef.dll!base::internal::Invoker<base::internal::FunctorTraits<`lambda at ..\..\content\common\input\input_router_impl.cc:624:13' &&,base::OnceCallback<void (blink::mojom::InputEventResultSource, const ui::LatencyInfo &, blink::mojom::InputEventResultState, mojo::StructPtr<blink::mojom::DidOverscrollParams>, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional>)> &&,base::WeakPtr<content::InputRouterImpl> &&>,base::internal::BindState<0,0,0,`lambda at ..\..\content\common\input\input_router_impl.cc:624:13',base::OnceCallback<void (blink::mojom::InputEventResultSource, const ui::LatencyInfo &, blink::mojom::InputEventResultState, mojo::StructPtr<blink::mojom::DidOverscrollParams>, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional>)>,base::WeakPtr<content::InputRouterImpl>>,void (blink::mojom::InputEventResultSource, const ui::LatencyInfo &, blink::mojom::InputEventResultState, mojo::StructPtr<blink::mojom::DidOverscrollParams>, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional>)>::RunOnce(base::internal::BindStateBase * base, blink::mojom::InputEventResultSource unbound_args, const ui::LatencyInfo & unbound_args, blink::mojom::InputEventResultState unbound_args, mojo::StructPtr<blink::mojom::DidOverscrollParams> && unbound_args, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional> && unbound_args) Line 980 C++
libcef.dll!base::OnceCallback<void (blink::mojom::InputEventResultSource, const ui::LatencyInfo &, blink::mojom::InputEventResultState, mojo::StructPtr<blink::mojom::DidOverscrollParams>, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional>)>::Run(blink::mojom::InputEventResultSource args, const ui::LatencyInfo & args, blink::mojom::InputEventResultState args, mojo::StructPtr<blink::mojom::DidOverscrollParams> args, mojo::InlinedStructPtr<blink::mojom::TouchActionOptional> args) Line 156 C++
libcef.dll!blink::mojom::WidgetInputHandler_DispatchEvent_ForwardToCallback::Accept(mojo::Message * message) Line 7701 C++
libcef.dll!mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message * message) Line 1031 C++
libcef.dll!mojo::MessageDispatcher::Accept(mojo::Message * message) Line 43 C++
libcef.dll!mojo::InterfaceEndpointClient::HandleIncomingMessage(mojo::Message * message) Line 721 C++
libcef.dll!mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper * message_wrapper, mojo::internal::MultiplexRouter::ClientCallBehavior client_call_behavior, base::SequencedTaskRunner * current_task_runner) Line 1119 C++
libcef.dll!mojo::internal::MultiplexRouter::Accept(mojo::Message * message) Line 736 C++
libcef.dll!mojo::MessageDispatcher::Accept(mojo::Message * message) Line 43 C++
libcef.dll!mojo::Connector::DispatchMessageW(mojo::ScopedHandleBase<mojo::MessageHandle> handle) Line 561 C++
libcef.dll!mojo::Connector::ReadAllAvailableMessages() Line 620 C++
[Inline Frame] libcef.dll!mojo::Connector::OnHandleReadyInternal(unsigned int result) Line 452 C++
libcef.dll!mojo::Connector::OnWatcherHandleReady(const char * interface_name, unsigned int result) Line 418 C++
> libcef.dll!base::RepeatingCallback<void (unsigned int)>::Run(unsigned int args) Line 345 C++
libcef.dll!base::RepeatingCallback<void (net::MDnsTransaction::Result, const net::RecordParsed *)>::Run(net::MDnsTransaction::Result args, const net::RecordParsed * args) Line 345 C++
libcef.dll!mojo::SimpleWatcher::OnHandleReady(int watch_id, unsigned int result, const mojo::HandleSignalsState & state) Line 279 C++
[Inline Frame] libcef.dll!base::internal::DecayedFunctorTraits<void (mojo::SimpleWatcher::*)(int, unsigned int, const mojo::HandleSignalsState &),base::WeakPtr<mojo::SimpleWatcher> &&,int &&,unsigned int &&,mojo::HandleSignalsState &&>::Invoke(void(mojo::SimpleWatcher::*)(int, unsigned int, const mojo::HandleSignalsState &) method, const base::WeakPtr<mojo::SimpleWatcher> & receiver_ptr, int && args, unsigned int && args, mojo::HandleSignalsState && args) Line 738 C++
[Inline Frame] libcef.dll!base::internal::InvokeHelper<1,base::internal::FunctorTraits<void (mojo::SimpleWatcher::*&&)(int, unsigned int, const mojo::HandleSignalsState &),base::WeakPtr<mojo::SimpleWatcher> &&,int &&,unsigned int &&,mojo::HandleSignalsState &&>,void,0,1,2,3>::MakeItSo(void(mojo::SimpleWatcher::*)(int, unsigned int, const mojo::HandleSignalsState &) && functor, std::__Cr::tuple<base::WeakPtr<mojo::SimpleWatcher>,int,unsigned int,mojo::HandleSignalsState> && bound) Line 954 C++
[Inline Frame] libcef.dll!base::internal::Invoker<base::internal::FunctorTraits<void (mojo::SimpleWatcher::*&&)(int, unsigned int, const mojo::HandleSignalsState &),base::WeakPtr<mojo::SimpleWatcher> &&,int &&,unsigned int &&,mojo::HandleSignalsState &&>,base::internal::BindState<1,1,0,void (mojo::SimpleWatcher::*)(int, unsigned int, const mojo::HandleSignalsState &),base::WeakPtr<mojo::SimpleWatcher>,int,unsigned int,mojo::HandleSignalsState>,void ()>::RunImpl(void(mojo::SimpleWatcher::*)(int, unsigned int, const mojo::HandleSignalsState &) && functor, std::__Cr::tuple<base::WeakPtr<mojo::SimpleWatcher>,int,unsigned int,mojo::HandleSignalsState> && bound, std::__Cr::integer_sequence<unsigned long long,0,1,2,3>) Line 1067 C++
libcef.dll!base::internal::Invoker<base::internal::FunctorTraits<void (mojo::SimpleWatcher::*&&)(int, unsigned int, const mojo::HandleSignalsState &),base::WeakPtr<mojo::SimpleWatcher> &&,int &&,unsigned int &&,mojo::HandleSignalsState &&>,base::internal::BindState<1,1,0,void (mojo::SimpleWatcher::*)(int, unsigned int, const mojo::HandleSignalsState &),base::WeakPtr<mojo::SimpleWatcher>,int,unsigned int,mojo::HandleSignalsState>,void ()>::RunOnce(base::internal::BindStateBase * base) Line 983 C++
libcef.dll!base::OnceCallback<void ()>::Run() Line 156 C++
libcef.dll!base::TaskAnnotator::RunTaskImpl(base::PendingTask & pending_task) Line 204 C++
[Inline Frame] libcef.dll!base::TaskAnnotator::RunTask(perfetto::StaticString event_name, base::PendingTask & pending_task, base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl::<lambda_4> && args) Line 90 C++
libcef.dll!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::LazyNow * continuation_lazy_now) Line 484 C++
libcef.dll!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork() Line 355 C++
libcef.dll!base::MessagePumpForUI::DoRunLoop() Line 259 C++
libcef.dll!base::MessagePumpWin::Run(base::MessagePump::Delegate * delegate) Line 85 C++
libcef.dll!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool application_tasks_allowed, base::TimeDelta timeout) Line 654 C++
libcef.dll!base::RunLoop::Run(const base::Location & location) Line 136 C++
libcef.dll!CefMainRunner::RunMessageLoop() Line 354 C++
[Inline Frame] libcef.dll!CefContext::RunMessageLoop() Line 526 C++
libcef.dll!CefRunMessageLoop() Line 399 C++
cefclient.exe!CefRunMessageLoop() Line 141 C++
cefclient.exe!client::MainMessageLoopStd::Run() Line 15 C++
cefclient.exe!client::`anonymous namespace'::RunMain(HINSTANCE__ * hInstance, int nCmdShow) Line 119 C++
cefclient.exe!wWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, wchar_t * lpCmdLine, int nCmdShow) Line 159 C++
[External Code]
Describe the bug Running cef in off screen with touch events enabled will lead to crash. It does not matter if it's standard OSR mode or with shared textures enabled, problem is the same. Last version not affected by this problem was branch [6367] Tested on [6478] and [6533] i'm getting crash every time. Didn't test [6422] so can't say if Chrome125 or Chrome126 broke that.
To Reproduce Steps to reproduce the behavior:
Expected behavior Application can support touch events without crashing.
Versions (please complete the following information):
Attaching call stack after loaded all necessary symbols maybe it will help narrow it down: