chromiumembedded / cef

Chromium Embedded Framework (CEF). A simple framework for embedding Chromium-based browsers in other applications.
https://bitbucket.org/chromiumembedded/cef/
Other
3.38k stars 467 forks source link

mac: cefsimple: AssertNotShutdown when closing after DevTools popup #3737

Closed magreenblatt closed 4 months ago

magreenblatt commented 4 months ago

To Reproduce Steps to reproduce the behavior:

  1. Run cefsimple
  2. Right click, select "Inspect"
  3. Close the DevTools window and the main window

Expected behavior The application should exit cleanly. Instead, it crashes with the following:

[18193:259:0712/171441.464791:FATAL:shutdown_checker.cc(30)] Check failed: !IsCefShutdown(). Object reference incorrectly held at CefShutdown
0   Chromium Embedded Framework         0x00000003d48c3a9c base::debug::CollectStackTrace(void const**, unsigned long) + 48
1   Chromium Embedded Framework         0x00000003d48917f4 base::debug::StackTrace::StackTrace(unsigned long) + 112
2   Chromium Embedded Framework         0x00000003d489189c base::debug::StackTrace::StackTrace(unsigned long) + 36
3   Chromium Embedded Framework         0x00000003d4891868 base::debug::StackTrace::StackTrace() + 40
4   Chromium Embedded Framework         0x00000003d45b28e8 logging::LogMessage::Flush() + 216
5   Chromium Embedded Framework         0x00000003d45b27f4 logging::LogMessage::~LogMessage() + 44
6   Chromium Embedded Framework         0x00000003d45b2e44 logging::LogMessage::~LogMessage() + 28
7   Chromium Embedded Framework         0x00000003bfda4c88 cef_log + 96
8   cefsimple                           0x00000001008753c4 cef_log + 60
9   cefsimple                           0x000000010074b514 cef::logging::LogMessage::~LogMessage() + 136
10  cefsimple                           0x000000010074b574 cef::logging::LogMessage::~LogMessage() + 28
11  cefsimple                           0x0000000100752660 shutdown_checker::AssertNotShutdown() + 188
12  cefsimple                           0x0000000100770cb8 CefBrowserViewDelegateCppToC::~CefBrowserViewDelegateCppToC() + 44
13  cefsimple                           0x0000000100770d18 CefBrowserViewDelegateCppToC::~CefBrowserViewDelegateCppToC() + 28
14  cefsimple                           0x0000000100770d44 CefBrowserViewDelegateCppToC::~CefBrowserViewDelegateCppToC() + 28
15  cefsimple                           0x0000000100770ee0 CefCppToCRefCounted<CefBrowserViewDelegateCppToC, CefBrowserViewDelegate, _cef_browser_view_delegate_t>::Release() const + 76
16  cefsimple                           0x0000000100771824 CefCppToCRefCounted<CefBrowserViewDelegateCppToC, CefBrowserViewDelegate, _cef_browser_view_delegate_t>::struct_release(_cef_base_ref_counted_t*) + 348
17  Chromium Embedded Framework         0x00000003bf8e20b0 CefCToCppRefCounted<CefBrowserViewDelegateCToCpp, CefBrowserViewDelegate, _cef_browser_view_delegate_t>::UnderlyingRelease() const + 88
18  Chromium Embedded Framework         0x00000003bf8e5190 CefCToCppRefCounted<CefBrowserViewDelegateCToCpp, CefBrowserViewDelegate, _cef_browser_view_delegate_t>::Release() const + 44
19  Chromium Embedded Framework         0x00000003bf8e2398 scoped_refptr<CefBrowserViewDelegate>::Release(CefBrowserViewDelegate*) + 68
20  Chromium Embedded Framework         0x00000003bf8e2340 scoped_refptr<CefBrowserViewDelegate>::~scoped_refptr() + 56
21  Chromium Embedded Framework         0x00000003bf8e20fc scoped_refptr<CefBrowserViewDelegate>::~scoped_refptr() + 28
22  Chromium Embedded Framework         0x00000003bfd4b1a4 CefViewImpl<views::View, CefBrowserView, CefBrowserViewDelegate>::~CefViewImpl() + 80
23  Chromium Embedded Framework         0x00000003bfd4b0d8 CefBrowserViewImpl::~CefBrowserViewImpl() + 156
24  Chromium Embedded Framework         0x00000003bfd46798 CefBrowserViewImpl::~CefBrowserViewImpl() + 28
25  Chromium Embedded Framework         0x00000003bfd467c4 CefBrowserViewImpl::~CefBrowserViewImpl() + 28
26  Chromium Embedded Framework         0x00000003bfd4b3d4 void content::BrowserThread::DeleteOnThread<(content::BrowserThread::ID)0>::Destruct<CefBrowserViewImpl>(CefBrowserViewImpl const*) + 80
27  Chromium Embedded Framework         0x00000003bfd48d10 CefBrowserViewImpl::Release() const + 48
28  Chromium Embedded Framework         0x00000003bfae97e4 scoped_refptr<CefBrowserViewImpl>::Release(CefBrowserViewImpl*) + 56
29  Chromium Embedded Framework         0x00000003bfae9798 scoped_refptr<CefBrowserViewImpl>::~scoped_refptr() + 56
30  Chromium Embedded Framework         0x00000003bfae6064 scoped_refptr<CefBrowserViewImpl>::~scoped_refptr() + 28
31  Chromium Embedded Framework         0x00000003bfb1df18 CefBrowserPlatformDelegateChromeViews::~CefBrowserPlatformDelegateChromeViews() + 56
32  Chromium Embedded Framework         0x00000003bfb1ec34 CefBrowserPlatformDelegateChromeViews::~CefBrowserPlatformDelegateChromeViews() + 28
33  Chromium Embedded Framework         0x00000003bfb1ec60 CefBrowserPlatformDelegateChromeViews::~CefBrowserPlatformDelegateChromeViews() + 28
34  Chromium Embedded Framework         0x00000003bfa48df0 std::__Cr::default_delete<CefBrowserPlatformDelegate>::operator()(CefBrowserPlatformDelegate*) const + 52
35  Chromium Embedded Framework         0x00000003bfa48d64 std::__Cr::unique_ptr<CefBrowserPlatformDelegate, std::__Cr::default_delete<CefBrowserPlatformDelegate>>::reset(CefBrowserPlatformDelegate*) + 104
36  Chromium Embedded Framework         0x00000003bfa94be4 CefBrowserHostBase::DestroyBrowser() + 304
37  Chromium Embedded Framework         0x00000003bfb02080 ChromeBrowserHostImpl::DestroyBrowser() + 364
38  Chromium Embedded Framework         0x00000003bfb0291c void base::internal::DecayedFunctorTraits<void (ChromeBrowserHostImpl::*)(), ChromeBrowserHostImpl*&&>::Invoke<void (ChromeBrowserHostImpl::*)(), scoped_refptr<ChromeBrowserHostImpl>>(void (ChromeBrowserHostImpl::*)(), scoped_refptr<ChromeBrowserHostImpl>&&) + 140
39  Chromium Embedded Framework         0x00000003bfb02884 void base::internal::InvokeHelper<false, base::internal::FunctorTraits<void (ChromeBrowserHostImpl::*&&)(), ChromeBrowserHostImpl*&&>, void, 0ul>::MakeItSo<void (ChromeBrowserHostImpl::*)(), std::__Cr::tuple<scoped_refptr<ChromeBrowserHostImpl>>>(void (ChromeBrowserHostImpl::*&&)(), std::__Cr::tuple<scoped_refptr<ChromeBrowserHostImpl>>&&) + 88
40  Chromium Embedded Framework         0x00000003bfb02820 void base::internal::Invoker<base::internal::FunctorTraits<void (ChromeBrowserHostImpl::*&&)(), ChromeBrowserHostImpl*&&>, base::internal::BindState<true, true, false, void (ChromeBrowserHostImpl::*)(), scoped_refptr<ChromeBrowserHostImpl>>, void ()>::RunImpl<void (ChromeBrowserHostImpl::*)(), std::__Cr::tuple<scoped_refptr<ChromeBrowserHostImpl>>, 0ul>(void (ChromeBrowserHostImpl::*&&)(), std::__Cr::tuple<scoped_refptr<ChromeBrowserHostImpl>>&&, std::__Cr::integer_sequence<unsigned long, 0ul>) + 32
41  Chromium Embedded Framework         0x00000003bfb027a8 base::internal::Invoker<base::internal::FunctorTraits<void (ChromeBrowserHostImpl::*&&)(), ChromeBrowserHostImpl*&&>, base::internal::BindState<true, true, false, void (ChromeBrowserHostImpl::*)(), scoped_refptr<ChromeBrowserHostImpl>>, void ()>::RunOnce(base::internal::BindStateBase*) + 52
42  Chromium Embedded Framework         0x00000003bfa6636c base::OnceCallback<void ()>::Run() && + 236
43  Chromium Embedded Framework         0x00000003d471b268 base::TaskAnnotator::RunTaskImpl(base::PendingTask&) + 492
44  Chromium Embedded Framework         0x00000003d4796d80 _ZN4base13TaskAnnotator7RunTaskIJZNS_16sequence_manager8internal35ThreadControllerWithMessagePumpImpl10DoWorkImplEPNS_7LazyNowEE3$_3EEEvN8perfetto12StaticStringERNS_11PendingTaskEDpOT_ + 144
45  Chromium Embedded Framework         0x00000003d4796798 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::LazyNow*) + 1552
46  Chromium Embedded Framework         0x00000003d4795e3c base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork() + 244
47  Chromium Embedded Framework         0x00000003d48f079c base::MessagePumpCFRunLoopBase::RunWork() + 236
48  Chromium Embedded Framework         0x00000003d48f08c4 ___ZN4base24MessagePumpCFRunLoopBase13RunWorkSourceEPv_block_invoke + 36
49  Chromium Embedded Framework         0x00000003d48ee498 base::apple::CallWithEHFrame(void () block_pointer) + 16
50  Chromium Embedded Framework         0x00000003d48ef474 base::MessagePumpCFRunLoopBase::RunWorkSource(void*) + 112
51  CoreFoundation                      0x000000018664e4d8 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 28
52  CoreFoundation                      0x000000018664e46c __CFRunLoopDoSource0 + 176
53  CoreFoundation                      0x000000018664e1dc __CFRunLoopDoSources0 + 244
54  CoreFoundation                      0x000000018664cdc8 __CFRunLoopRun + 828
55  CoreFoundation                      0x000000018664c434 CFRunLoopRunSpecific + 608
56  HIToolbox                           0x0000000190df019c RunCurrentEventLoopInMode + 292
57  HIToolbox                           0x0000000190defe2c ReceiveNextEventCommon + 220
58  HIToolbox                           0x0000000190defd30 _BlockUntilNextEventMatchingListInModeWithFilter + 76
59  AppKit                              0x0000000189eabd68 _DPSNextEvent + 660
60  AppKit                              0x000000018a6a1808 -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 700
61  AppKit                              0x0000000189e9f09c -[NSApplication run] + 476
62  Chromium Embedded Framework         0x00000003d48f1c10 base::MessagePumpNSApplication::DoRun(base::MessagePump::Delegate*) + 268
63  Chromium Embedded Framework         0x00000003d48ee574 base::MessagePumpCFRunLoopBase::Run(base::MessagePump::Delegate*) + 204
64  Chromium Embedded Framework         0x00000003d4797580 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool, base::TimeDelta) + 680
65  Chromium Embedded Framework         0x00000003d46a4b84 base::RunLoop::Run(base::Location const&) + 724
66  Chromium Embedded Framework         0x00000003cb4aa434 content::BrowserTaskExecutor::RunAllPendingTasksOnThreadForTesting(content::BrowserThread::ID) + 452
67  Chromium Embedded Framework         0x00000003bfb95f3c CefMainRunner::StartShutdownOnUIThread(base::OnceCallback<void ()>) + 156
68  Chromium Embedded Framework         0x00000003bfb95d70 CefMainRunner::Shutdown(base::OnceCallback<void ()>, base::OnceCallback<void ()>) + 436
69  Chromium Embedded Framework         0x00000003bfb3bb60 CefContext::Shutdown() + 344
70  Chromium Embedded Framework         0x00000003bfb3b964 CefShutdown() + 284
71  Chromium Embedded Framework         0x00000003bf8b1bfc cef_shutdown + 16
72  cefsimple                           0x0000000100873998 cef_shutdown + 24
73  cefsimple                           0x0000000100752d88 CefShutdown() + 16
74  cefsimple                           0x000000010062bc20 main + 1028
75  dyld                                0x00000001861e60e0 start + 2360
Task trace:
0   Chromium Embedded Framework         0x00000003bfaff980 ChromeBrowserHostImpl::OnWebContentsDestroyed(content::WebContents*) + 136

Versions (please complete the following information):

Additional context Does the problem reproduce with the cefclient or cefsimple sample application at the same version? Don't know yet if this reproduces with cefclient given issue #3602.

magreenblatt commented 4 months ago

Duplicate of #3738