Comments (2)
Hi,
If GlobalCEFApp.Cache and GlobalCEFApp.RootCache are empty then the default platform-specific directory will be used :
- "~/.config/cef_user_data" directory on Linux.
- "~/Library/Application Support/CEF/User Data" directory on MacOS.
- "AppData\Local\CEF\User Data" directory under the user profile directory on Windows.
Use of the default directory is not recommended in production applications. Multiple application instances writing to the same GlobalCEFApp.RootCache directory could result in data corruption.
If several instances of the same application run in incognito mode then they are sharing the default directory and that may cause data corruption.
Old CEF versions didn't have any lock to prevent data corruption but that is fixed since CEF 120.
DCEF used a very old CEF version and it was affected by this issue.
Unless you modify CEF sources there's no way to disable the lock and it's recommended to adapt the application code to use different GlobalCEFApp.RootCache values in order to avoid data corruption.
The linked forum thread has several solutions for this. In my opinion, keeping one app instance running all the time and opening new tabs or child forms with independent web browsers would be the best solution (see the MDIBrowser demo). Alternatively you can use custom RootCache directories for each instance. For example: "c:\root-PID" and delete unused RootCache directories periodically.
c:\root-PID can be calculated with "c:\root-" + the process ID in Windows.
from cef4delphi.
Thanks, I was under the impression that incognito mode kept everything in memory (and wrote nothing to disk), but if it's just falling back to a default directory, then segregating RootCache is probably best (different apps have different CEF settings, so reusing the same might be problematic, some are using off-screen non-GPU rendering, while others are interactive for instance)
from cef4delphi.
Related Issues (20)
- MacOS Js extension doesn't work in multiprocess mode HOT 4
- App crash when initializing CEF and WebView2 browsers in the same form. HOT 2
- SubMenu appears at incorrect position HOT 1
- StartMainProcess when another application instance is already running since CEF 120 HOT 2
- how to add this argument to start CHROMIUM browser --disable-blink-features=AutomationControlled HOT 1
- change cache folder path runtime HOT 1
- StartMainProcess: Error loading libcef.dll HOT 5
- Regarding the issue of extension loading, HelloWorldExt and PageColorExt HOT 1
- libcef.dll serious error HOT 3
- Questions about the Browser process ProcessMessageReceived event HOT 7
- Black screen browser in CEF 124 HOT 1
- ResponseFilterBrowser demo run error in delphi7? HOT 1
- ResponseFilterBrowser Demo run error in delphi7?
- TabbedBrowser2 leaves behind an orphan renderer process when main process is killed HOT 4
- Broken binary URL CEF 125.0.22 for Linux x86_64 HOT 2
- Application crash navigating to web.dev with CEF 126 HOT 1
- CEF binaries missing! HOT 1
- CEF 126 proxy ERR_INVALID_AUTH_CREDENTIALS HOT 4
- Load a non-installed .pfx certificate HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cef4delphi.