diff --git a/client_handler.cpp b/client_handler.cpp index f835742..ee4fad6 100644 --- a/client_handler.cpp +++ b/client_handler.cpp @@ -1910,10 +1910,18 @@ bool ClientHandler::OnSelectClientCertificate( void ClientHandler::OnProtocolExecution(CefRefPtr browser, CefRefPtr frame, CefRefPtr request, bool& allow_os_execution) { - // do default - //CefResourceRequestHandler::OnProtocolExecution(browser,frame, request,allow_os_execution); - //return; + // Using CefBrowser->StopLoad() with allow_os_execution = true causes a crash on CEF128+. + // https://github.com/chromiumembedded/cef/issues/3851 + // + // In order to avoid the crash, specifying allow_os_execution = false on CEF128+, but + // this blocks to execute applications installed in OS. E.g. Zoom application for Windows. + // + // We should specify allow_os_execution = true after the bug on CEF128+ is fixed. +#if CHROME_VERSION_MAJOR >= 128 + allow_os_execution = false; +#else allow_os_execution = true; +#endif browser->StopLoad(); } void ClientHandler::OnRenderViewReady(CefRefPtr browser)