I've got a custom renderer CefApp implementation & CefClient to hold the message_router.
I have the following settings configured for the browser side (dataDirectory returns a boost::optional<std::wstring>() pointing to the user LOCAL_APP_DATA path):
- Code: Select all
CefSettings settings;
settings.multi_threaded_message_loop = true;
settings.command_line_args_disabled = true;
auto cefDatabaseDirectory = dataDirectory().get() + L"\\" + utf_to_utf<wchar_t, char>(convertServerNameToCEFDataPath(serverName));
cef_string_utf16_set(cefDatabaseDirectory.data(), cefDatabaseDirectory.size(), &(settings.cache_path), 1);
auto cefUserDirectory = dataDirectory().get() + L"\\user";
cef_string_utf16_set(cefUserDirectory.data(), cefUserDirectory.size(), &(settings.user_data_path), 1);
auto cefLogFile = dataDirectory().get() + L"\\cef_log.txt";
cef_string_utf16_set(cefLogFile.data(), cefLogFile.size(), &(settings.log_file), 1);
settings.log_severity = LOGSEVERITY_VERBOSE;
However, once I try to open a windowless browser with the following:
- Code: Select all
CefWindowInfo info;
info.SetAsWindowless(nullptr);
CefBrowserSettings settings;
settings.databases = STATE_ENABLED;
settings.universal_access_from_file_urls = STATE_ENABLED;
CefBrowserHost::CreateBrowser(info, cefClient_, "http://example.com" , settings, nullptr);
}
The renderer process crashes on startup, with the following stack trace:
- Code: Select all
> [Inline Frame] libcef.dll!base::debug::BreakDebugger() Line 21 C++
libcef.dll!logging::LogMessage::~LogMessage() Line 783 C++
libcef.dll!content::ChildThreadImpl::ConnectChannel(mojo::edk::IncomingBrokerClientInvitation * invitation) Line 406 C++
libcef.dll!content::ChildThreadImpl::Init(const content::ChildThreadImpl::Options & options) Line 545 C++
libcef.dll!content::ChildThreadImpl::ChildThreadImpl(const content::ChildThreadImpl::Options & options) Line 383 C++
libcef.dll!content::RenderThreadImpl::RenderThreadImpl(std::unique_ptr<base::MessageLoop,std::default_delete<base::MessageLoop> > main_message_loop, std::unique_ptr<blink::scheduler::RendererScheduler,std::default_delete<blink::scheduler::RendererScheduler> > scheduler) Line 630 C++
libcef.dll!content::RenderThreadImpl::Create(std::unique_ptr<base::MessageLoop,std::default_delete<base::MessageLoop> > main_message_loop, std::unique_ptr<blink::scheduler::RendererScheduler,std::default_delete<blink::scheduler::RendererScheduler> > renderer_scheduler) Line 558 C++
libcef.dll!content::RendererMain(const content::MainFunctionParams & parameters) Line 202 C++
libcef.dll!content::RunNamedProcessTypeMain(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & process_type, const content::MainFunctionParams & main_function_params, content::ContentMainDelegate * delegate) Line 429 C++
libcef.dll!content::ContentMainRunnerImpl::Run() Line 705 C++
libcef.dll!service_manager::MainRun(service_manager::MainParams & params) Line 480 C++
libcef.dll!service_manager::Main(service_manager::MainParams & params) Line 528 C++
libcef.dll!content::ContentMain(const content::ContentMainParams & params) Line 19 C++
libcef.dll!CefExecuteProcess(const CefMainArgs & args, scoped_refptr<CefApp> application, void * windows_sandbox_info) Line 199 C++
libcef.dll!cef_execute_process(const _cef_main_args_t * args, _cef_app_t * application, void * windows_sandbox_info) Line 198 C++
MYAPPLICATION.exe!CefExecuteProcess(const CefMainArgs & args, scoped_refptr<CefApp> application, void * windows_sandbox_info) Line 195 C++
MYAPPLICATION.exe!wWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * __formal, wchar_t * lpCmdLine, int nCmdShow) Line 207 C++
And the log file looks like the following:
- Code: Select all
[0825/133913.440:VERBOSE1:histogram_base.cc(133)] 2 histograms were created before reporting was enabled.
[0825/133913.513:VERBOSE1:node_controller.cc(147)] Initializing node 1604511C8F32D621.A9E0CC1DBBFEF258
[0825/133913.700:VERBOSE1:pref_proxy_config_tracker_impl.cc(154)] 000001999DB8EF60: set chrome proxy config service to 000001999F9DD0E0
[0825/133913.700:VERBOSE1:pref_proxy_config_tracker_impl.cc(281)] 000001999DB8EF60: Done pushing proxy to UpdateProxyConfig
[0825/133913.700:VERBOSE1:multi_log_ct_verifier.cc(75)] Adding CT log: Google 'Aviator' log
[0825/133913.700:VERBOSE1:multi_log_ct_verifier.cc(75)] Adding CT log: Google 'Icarus' log
[0825/133913.700:VERBOSE1:multi_log_ct_verifier.cc(75)] Adding CT log: Google 'Pilot' log
[0825/133913.700:VERBOSE1:multi_log_ct_verifier.cc(75)] Adding CT log: Google 'Rocketeer' log
[0825/133913.700:VERBOSE1:multi_log_ct_verifier.cc(75)] Adding CT log: Google 'Skydiver' log
[0825/133917.278:VERBOSE1:multi_log_ct_verifier.cc(75)] Adding CT log: DigiCert Log Server
[0825/133917.278:VERBOSE1:multi_log_ct_verifier.cc(75)] Adding CT log: DigiCert Log Server 2
[0825/133917.278:VERBOSE1:multi_log_ct_verifier.cc(75)] Adding CT log: Symantec log
[0825/133917.278:VERBOSE1:multi_log_ct_verifier.cc(75)] Adding CT log: Symantec 'Vega' log
[0825/133917.278:VERBOSE1:multi_log_ct_verifier.cc(75)] Adding CT log: Symantec 'Sirius' log
[0825/133917.278:VERBOSE1:multi_log_ct_verifier.cc(75)] Adding CT log: WoSign log
[0825/133917.278:VERBOSE1:multi_log_ct_verifier.cc(75)] Adding CT log: Venafi Gen2 CT log
[0825/133917.278:VERBOSE1:multi_log_ct_verifier.cc(75)] Adding CT log: CNNIC CT log
[0825/133917.278:VERBOSE1:multi_log_ct_verifier.cc(75)] Adding CT log: StartCom log
[0825/133917.278:VERBOSE1:multi_log_ct_verifier.cc(75)] Adding CT log: Comodo 'Sabre' CT log
[0825/133917.278:VERBOSE1:multi_log_ct_verifier.cc(75)] Adding CT log: Comodo 'Mammoth' CT log
[0825/133917.278:VERBOSE1:multi_log_ct_verifier.cc(75)] Adding CT log: Izenpe log
[0825/133917.278:VERBOSE1:multi_log_ct_verifier.cc(75)] Adding CT log: Venafi log
[0825/133917.278:VERBOSE1:multi_log_ct_verifier.cc(75)] Adding CT log: Certly.IO log
[0825/133917.278:VERBOSE1:network_connection.cc(30)] Updating NetworkConnection's Cached Data
[0825/133920.945:VERBOSE1:webrtc_internals.cc(109)] Could not get the download directory.
[0825/133920.945:VERBOSE1:node.cc(387)] Merging local ports 1C8E96C76D06EB08.187C01398AA25700@1604511C8F32D621.A9E0CC1DBBFEF258 and 4DC6AD01DDCDF26.E1BBE5F1FC3F022@1604511C8F32D621.A9E0CC1DBBFEF258
[0825/133921.008:VERBOSE1:histogram.cc(376)] Histogram: Compositing.Browser.LayersUpdateTime.0 has bad minimum: 0
[0825/133921.687:VERBOSE1:histogram_base.cc(133)] 2 histograms were created before reporting was enabled.
[0825/133921.689:INFO:cpu_info.cc(50)] Available number of cores: 8
[0825/133921.691:VERBOSE1:node_controller.cc(147)] Initializing node 2825A8949071952C.17639DCDA28955FC
[0825/133926.879:FATAL:child_thread_impl.cc(406)] Check failed: service_manager_connection_.
Stepping through the code (via the pdb + sources files from spotify) It looks like
- Code: Select all
InitializeMojoIPCChannel()
- Code: Select all
CHROMIUM_SRC\content\child\child_thread_impl.cc
Anyway, any help with this would be appreciated; especially if I am doing something trivially wrong!