Closed
Description
Implementing DisplayHandler for Client results in a segfault
It seems to be coming from on_favicon_urlchange
with icon_urls
:
extern "C" fn on_favicon_urlchange<I: ImplDisplayHandler>(
self_: *mut _cef_display_handler_t,
browser: *mut _cef_browser_t,
icon_urls: *mut _cef_string_list_t,
) {
let (arg_self_, arg_browser, arg_icon_urls) = (self_, browser, icon_urls);
let arg_self_: &RcImpl<_, I> = RcImpl::get(arg_self_);
let mut arg_browser =
unsafe { arg_browser.as_mut() }.map(|arg| Browser(unsafe { RefGuard::from_raw(arg) }));
let arg_browser = arg_browser.as_mut();
let mut arg_icon_urls = if arg_icon_urls.is_null() {
None
} else {
Some(arg_icon_urls.into())
};
let arg_icon_urls = arg_icon_urls.as_mut();
ImplDisplayHandler::on_favicon_urlchange(&arg_self_.interface, arg_browser, arg_icon_urls)
}
Here is the backtrace:
#0 __destroy_at<CefStringBase<CefStringTraitsUTF16>, 0> () at ../../third_party/libc++/src/include/__memory/construct_at.h:63
#1 destroy<CefStringBase<CefStringTraitsUTF16>, void, 0> () at ../../third_party/libc++/src/include/__memory/allocator_traits.h:329
#2 __base_destruct_at_end () at ../../third_party/libc++/src/include/__vector/vector.h:746
#3 clear () at ../../third_party/libc++/src/include/__vector/vector.h:528
#4 operator() () at ../../third_party/libc++/src/include/__vector/vector.h:245
#5 ~vector () at ../../third_party/libc++/src/include/__vector/vector.h:256
#6 cef_string_list_free () at ../../cef/libcef/common/string_list_impl.cc:58
#7 0x00007fffec7341e7 in OnFaviconURLChange () at ../../cef/libcef_dll/ctocpp/display_handler_ctocpp.cc:112
#8 0x00007fffec79af86 in DidUpdateFaviconURL () at ../../cef/libcef/browser/browser_contents_delegate.cc:610
#9 0x00007fffef6467f9 in NotifyObservers<void (content::WebContentsObserver::*)(content::NavigationHandle*, content::CookieAccessDetails const&), content::NavigationHandle*&, content::CookieAccessDetails const&> ()
at ../../content/browser/web_contents/web_contents_impl.h:1796
#10 0x00007fffef65c3dd in UpdateFaviconURL () at ../../content/browser/web_contents/web_contents_impl.cc:8087
#11 0x00007fffed8b5e6f in Accept () at gen/third_party/blink/public/mojom/frame/frame.mojom.cc:8973
#12 0x00007ffff1236d1c in HandleValidatedMessage () at ../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:1061
#13 Accept () at ../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:371
#14 0x00007ffff123cdb7 in Accept () at ../../mojo/public/cpp/bindings/lib/message_dispatcher.cc:48
#15 0x00007ffff1238b3b in HandleIncomingMessage () at ../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:724
#16 0x00007ffff17186e2 in AcceptOnEndpointThread () at ../../ipc/ipc_mojo_bootstrap.cc:1203
#17 0x00007ffff1718c87 in Invoke<void (IPC::ChannelAssociatedGroupController::*)(mojo::Message, IPC::(anonymous namespace)::ScopedUrgentMessageNotification), scoped_refptr<IPC::ChannelAssociatedGroupController>, mojo::Message, IPC::(anonymous namespace)::ScopedUrgentMessageNotification> () at ../../base/functional/bind_internal.h:728
#18 MakeItSo<void (IPC::ChannelAssociatedGroupController::*)(mojo::Message, IPC::(anonymous namespace)::ScopedUrgentMessageNotification), std::__Cr::tuple<scoped_refptr<IPC::ChannelAssociatedGroupController>, mojo::Message, IPC::(anonymous namespace)::ScopedUrgentMessageNotification> > () at ../../base/functional/bind_internal.h:920
#19 RunImpl<void (IPC::ChannelAssociatedGroupController::*)(mojo::Message, IPC::(anonymous namespace)::ScopedUrgentMessageNotification), std::__Cr::tuple<scoped_refptr<IPC::ChannelAssociatedGroupController>, mojo::Message, IPC::(anonymous namespace)::ScopedUrgentMessageNotification>, 0ul, 1ul, 2ul> () at ../../base/functional/bind_internal.h:1057
#20 RunOnce () at ../../base/functional/bind_internal.h:970
#21 0x00007ffff0eaae7f in Run () at ../../base/functional/callback.h:156
#22 RunTaskImpl () at ../../base/task/common/task_annotator.cc:209
#23 0x00007ffff0ecd052 in non-virtual thunk to base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork() () at ../../base/task/common/task_annotator.h:106
#24 0x00007ffff0f30b7c in Run () at ../../base/message_loop/message_pump_glib.cc:702
#25 0x00007ffff0ecd78e in Run () at ../../base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:629
#26 0x00007ffff0e8af1e in Run () at ../../base/run_loop.cc:134
#27 0x00007fffec7de1ae in RunMessageLoop () at ../../cef/libcef/browser/main_runner.cc:196
#28 0x00007fffec838afc in ThreadMain () at ../../cef/libcef/browser/ui_thread.cc:101
#29 0x00007ffff0f02fe2 in ThreadFunc () at ../../base/threading/platform_thread_posix.cc:103
#30 0x00007fffe967ef14 in start_thread () at /lib64/libc.so.6
#31 0x00007fffe9701aac in __clone3 () at /lib64/libc.so.6
Metadata
Metadata
Assignees
Labels
No labels