View Single Post
Old 04-27-2025, 07:12 PM   #51
KevinH
Sigil Developer
KevinH ought to be getting tired of karma fortunes by now.KevinH ought to be getting tired of karma fortunes by now.KevinH ought to be getting tired of karma fortunes by now.KevinH ought to be getting tired of karma fortunes by now.KevinH ought to be getting tired of karma fortunes by now.KevinH ought to be getting tired of karma fortunes by now.KevinH ought to be getting tired of karma fortunes by now.KevinH ought to be getting tired of karma fortunes by now.KevinH ought to be getting tired of karma fortunes by now.KevinH ought to be getting tired of karma fortunes by now.KevinH ought to be getting tired of karma fortunes by now.
 
Posts: 8,937
Karma: 6361444
Join Date: Nov 2009
Device: many
Quote:
Originally Posted by DiapDealer View Post
I also tested on a physical Windows 11 machine for good measure and got the exact same results.
That is good. I have been reading up on how Windows handles disk based web caches. It seems Windows has a special security feature that marks everything in the web cache folder and the folder itself (that can be accessed across multiple threads) as not being executable ever. That makes good sense for a web cache. But a folder needs executable permission to write or change any files in it.

So each instance keeps a list of its own cache folders and gives its webengine process permission to write it it. So clearing a cache folder from one external process that does not have the needed permission will fail. This is something specific to Windows.

I think clearing the cache silently was ignored for any process without permission in older Qt/Sigil but since Qt 6.7 we need to wait for the cleared done signal which revealed the problem.

MacOS shares a single cache across multiple mainwindows all part of the same process, so no problems.

I have no idea how it works with Linux and multiple instances of Sigil. Perhaps all QtWebEngine processes share the same group and can access any cache?

I also have no idea how a new process takes ownership of an existing web cache. The new QWebEngineProfileBuilder forces unique names so how on earth can they take ownership of a web cache that already exists (the whole point of disk caches) even when there is only one instance of the app running.

We ended up wiping all disk caches out to prevent folder proliferation.

I do not think the Qt WebEngine devs have fully thought this through.

Last edited by KevinH; 04-27-2025 at 07:25 PM.
KevinH is offline   Reply With Quote