I made a really simple example with the DLL revision 100 which uses the C API interface and all it does is to create the browser instance using cef_browser_create, no page loading, no v8 engine use, nothing, and still on cef_shutdown I get a DebugObjC with the following content:
[0905/231206:FATAL:libcef_dll.cc(42)] Check failed: CefBrowserCppToC::DebugObjCt == 0.
Backtrace:
cef_string_list_free [0x6782CE91+16256097]
cef_string_list_free [0x677CC441+15860241]
cef_stream_reader_create_for_handler [0x66859143+27586]
(No symbol) [0x00487A54]
(No symbol) [0x004587B9]
(No symbol) [0x0041C976]
BaseThreadInitThunk [0x75713677+18]
RtlInitializeExceptionChain [0x77A59D42+99]
RtlInitializeExceptionChain [0x77A59D15+54]
[0905/231208:FATAL:libcef_dll.cc(49)] Check failed: CefHandlerCToCpp::DebugObjCt == 0.
Backtrace:
cef_string_list_free [0x6782CE91+16256097]
cef_string_list_free [0x677CC441+15860241]
cef_stream_reader_create_for_handler [0x66859439+28344]
(No symbol) [0x00487A54]
(No symbol) [0x004587B9]
(No symbol) [0x0041C976]
BaseThreadInitThunk [0x75713677+18]
RtlInitializeExceptionChain [0x77A59D42+99]
RtlInitializeExceptionChain [0x77A59D15+54]
I don't even call cef_stream_reader_create_for_handler, and I send null for the URL parameter on creation so absolutely no page is loaded. The only handler events triggered are handle_before_created and handle_after_created.
Of course I do have a custom handler, also the simplest possible. This example is actually a stripped down version of a complete working version, problem is that I do get crashes with a random pattern so I'm debugging it from scratch.
Another odd situation is that closing the browser window sending WM_CLOSE the CEF Handler still has a reference count of 1, same as before closing the window.
Any ideas? I've been through the code several times and can't figure out anything wrong.