Page 1 of 1

Update to CEF 75.1.14

Posted: Mon Jul 29, 2019 7:19 am
by salvadordf
Hi,

CEF4Delphi has been updated to CEF 75.1.14 at GitHub.

These are the changes in the CEF binaries : These are the CEF binaries :

Re: Update to CEF 75.1.14

Posted: Mon Jul 29, 2019 12:23 pm
by Paulo França
Hi, Salvador.
I'm not sure I should post it here. It's just to let you know...

I've just installed this version and my app now crashes miserably upon termination (in both single/multi-process modes).
No specific error message; it just hangs and gets forcibly terminated by the OS. By the way, I'm running Delphi 10.3.2 (the latest one) on Windows 7/64-bit.

So I reverted to v75.1.8 (both Chromium binaries and CEF4Delphi sources), recompiled all, and my app is back to the normal state, i.e., it terminates smoothly again (even in single-process mode).

Screenshot:
Image

Re: Update to CEF 75.1.14

Posted: Mon Jul 29, 2019 2:45 pm
by salvadordf
I tested all the Delphi demos using Delphi 10.3 in Windows 7 (64 bits) and I couldn't reproduce this issue. I would need a code sample to reproduce it.

This is usually caused by :
  • The application is not following the destruction steps. These steps are described in the code comments inside the demo you used as a template for your application. This is the most frequent cause by far.
  • An unreleased interface. Perhaps the application has some global variables with CEF interfaces that are not set to nil before closing the main form.

Re: Update to CEF 75.1.14

Posted: Mon Jul 29, 2019 6:49 pm
by Paulo França
But the same application runs and finalizes fine on v75.1.8, from inside or outside the Delphi IDE, compiled for 32-bit/64-bit platforms, under single- and multi-process models.
The app only hangs with v75.1.14. Very odd.
I'm sticking with v75.1.8 for now, until I find the possible cause, if any.
Thank you.

Re: Update to CEF 75.1.14

Posted: Tue Jul 30, 2019 9:36 am
by salvadordf
Please, try adding this code before the GlobalCEFApp.StartMainProcess call in the DPR file :

Code: Select all

GlobalCEFApp.DisableFeatures := 'NetworkService';
If your application uses browsers in OSR mode then try this code instead :

Code: Select all

GlobalCEFApp.DisableFeatures := 'NetworkService,VizDisplayCompositor';
Even when an app is not destroying all the browsers following the "destruction sequence", CEF will try to destroy them when it detects that the application is closing.

However, this automatic destruction is not always successful and it may fail on some configurations. That's why it's recommended to destroy all the browsers before closing the application.

Right now, the "Network Service" still has some issues and it may also cause this problem in some configurations when the application closes.

Re: Update to CEF 75.1.14

Posted: Tue Jul 30, 2019 5:28 pm
by Paulo França
salvadordf wrote: Tue Jul 30, 2019 9:36 am Please, try adding this code before the GlobalCEFApp.StartMainProcess call in the DPR file :

Code: Select all

GlobalCEFApp.DisableFeatures := 'NetworkService';
Already using this. Apparently, this is not affecting my case.
If your application uses browsers in OSR mode then try this code instead :

Code: Select all

GlobalCEFApp.DisableFeatures := 'NetworkService,VizDisplayCompositor';
Not using OSR mode, but just tried with 'VizDisplayCompositor' in the disabling string. Still crashes.

Interesting to notice, the following are the unusual entries I see in the "debug.log" file, when using v75.1.14:

Code: Select all

[0730/141652.459:ERROR:gpu_process_host.cc(539)] !GpuDataManagerImpl::GpuProcessStartAllowed()
[0730/141837.427:ERROR:broker_win.cc(137)] Error sending sync broker message: The pipe is being closed. (0xE8)
[0730/141837.427:FATAL:handle.h(99)] Check failed: handle_.is_valid().
I don't see those lines when using v75.1.8 (which works and terminates normally).