Hi all,
When creating a CefURLRequest to a server with PKI authentication CEF crashes with the following stack:
# Child-SP RetAddr Call Site
00 (Inline Function) --------`-------- libcef!absl::variant<std::__Cr::map<const void *,std::__Cr::unique_ptr<base::SupportsUserData::Data,std::__Cr::default_delete<base::SupportsUserData::Data> >,std::__Cr::less<const void *>,std::__Cr::allocator<std::__Cr::pair<const void *const,std::__Cr::unique_ptr<base::SupportsUserData::Data,std::__Cr::default_delete<base::SupportsUserData::Data> > > > >,absl::flat_hash_map<const void *,std::__Cr::unique_ptr<base::SupportsUserData::Data,std::__Cr::default_delete<base::SupportsUserData::Data> >,absl::container_internal::HashEq<const void *,void>::Hash,absl::container_internal::HashEq<const void *,void>::Eq,std::__Cr::allocator<std::__Cr::pair<const void *const,std::__Cr::unique_ptr<base::SupportsUserData::Data,std::__Cr::default_delete<base::SupportsUserData::Data> > > > > >::index [Y:\work\CEF3_git\chromium\src\third_party\abseil-cpp\absl\types\variant.h @ 698]
01 (Inline Function) --------`-------- libcef!absl::visit [Y:\work\CEF3_git\chromium\src\third_party\abseil-cpp\absl\types\variant.h @ 432]
02 00000088`4d7fef60 00007ffc`f24eca48 libcef!base::SupportsUserData::GetUserData+0x19 [Y:\work\CEF3_git\chromium\src\base\supports_user_data.cc @ 33]
03 (Inline Function) --------`-------- libcef!`anonymous namespace'::WebContentsUserDataAdapter::Get+0x10 [Y:\work\CEF3_git\chromium\src\cef\libcef\browser\browser_host_base.cc @ 54]
04 00000088`4d7fefc0 00007ffc`f24d26c6 libcef!CefBrowserHostBase::GetBrowserForContents+0x18 [Y:\work\CEF3_git\chromium\src\cef\libcef\browser\browser_host_base.cc @ 115]
05 00000088`4d7feff0 00007ffc`f24d97c8 libcef!AlloyBrowserHostImpl::GetBrowserForContents+0x46 [Y:\work\CEF3_git\chromium\src\cef\libcef\browser\alloy\alloy_browser_host_impl.cc @ 249]
06 00000088`4d7ff040 00007ffc`f34abd04 libcef!AlloyContentBrowserClient::SelectClientCertificate+0x58 [Y:\work\CEF3_git\chromium\src\cef\libcef\browser\alloy\alloy_content_browser_client.cc @ 750]
07 00000088`4d7ff120 00007ffc`f80cb9d1 libcef!content::SSLClientAuthHandler::DidGetClientCerts+0x164 [Y:\work\CEF3_git\chromium\src\content\browser\ssl\ssl_client_auth_handler.cc @ 150]
08 00000088`4d7ff210 00007ffc`f683dd92 libcef!base::internal::FunctorTraits<void (content::AggregatableReportScheduler::TimerDelegate::*)(std::__Cr::vector<content::AggregationServiceStorage::RequestAndId,std::__Cr::allocator<content::AggregationServiceStorage::RequestAndId> >),void>::Invoke<void (content::AggregatableReportScheduler::TimerDelegate::*)(std::__Cr::vector<content::AggregationServiceStorage::RequestAndId,std::__Cr::allocator<content::AggregationServiceStorage::RequestAndId> >),const base::WeakPtr<content::AggregatableReportScheduler::TimerDelegate> &,std::__Cr::vector<content::AggregationServiceStorage::RequestAndId,std::__Cr::allocator<content::AggregationServiceStorage::RequestAndId> > >+0x61 [Y:\work\CEF3_git\chromium\src\base\functional\bind_internal.h @ 713]
09 (Inline Function) --------`-------- libcef!base::OnceCallback<void ()>::Run+0x19 [Y:\work\CEF3_git\chromium\src\base\functional\callback.h @ 152]
0a 00000088`4d7ff270 00007ffc`f6925980 libcef!base::TaskAnnotator::RunTaskImpl+0x182 [Y:\work\CEF3_git\chromium\src\base\task\common\task_annotator.cc @ 201]
0b (Inline Function) --------`-------- libcef!base::TaskAnnotator::RunTask+0x1fc [Y:\work\CEF3_git\chromium\src\base\task\common\task_annotator.h @ 89]
0c (Inline Function) --------`-------- libcef!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl+0x5c2 [Y:\work\CEF3_git\chromium\src\base\task\sequence_manager\thread_controller_with_message_pump_impl.cc @ 480]
0d 00000088`4d7ff3b0 00007ffc`f6833691 libcef!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork+0x680 [Y:\work\CEF3_git\chromium\src\base\task\sequence_manager\thread_controller_with_message_pump_impl.cc @ 345]
0e 00000088`4d7ff700 00007ffc`f3b6e2ed libcef!base::MessagePumpForUI::DoRunLoop+0x291 [Y:\work\CEF3_git\chromium\src\base\message_loop\message_pump_win.cc @ 213]
0f 00000088`4d7ff8a0 00007ffc`f4310eb6 libcef!base::MessagePumpWin::Run+0x7d [Y:\work\CEF3_git\chromium\src\base\message_loop\message_pump_win.cc @ 79]
10 00000088`4d7ff900 00007ffc`f3b7d4e8 libcef!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run+0xd6 [Y:\work\CEF3_git\chromium\src\base\task\sequence_manager\thread_controller_with_message_pump_impl.cc @ 648]
11 00000088`4d7ff990 00007ffc`f253a229 libcef!base::RunLoop::Run+0xc8 [Y:\work\CEF3_git\chromium\src\base\run_loop.cc @ 136]
12 (Inline Function) --------`-------- libcef!CefMainRunner::RunMessageLoop+0x90 [Y:\work\CEF3_git\chromium\src\cef\libcef\browser\main_runner.cc @ 282]
13 00000088`4d7ffaa0 00007ffc`f3ba9603 libcef!CefUIThread::ThreadMain+0x119 [Y:\work\CEF3_git\chromium\src\cef\libcef\browser\main_runner.cc @ 177]
14 00000088`4d7ffb60 00007ffd`e09155a0 libcef!base::`anonymous namespace'::ThreadFunc+0x113 [Y:\work\CEF3_git\chromium\src\base\threading\platform_thread_win.cc @ 126]
15 00000088`4d7ffbf0 00007ffd`e292485b KERNEL32!BaseThreadInitThunk+0x10
16 00000088`4d7ffc20 00000000`00000000 ntdll!RtlUserThreadStart+0x2b
This issue started in 118 (or at the very least was last seen working in 116). There doesnt appear to be any way to provide certificate information to CEFUrlRequestClient or CefRequest. Is this a bug? is there a workaround?
Thanks in advance,
Omer.