[webkit-gtk] WebsiteDataStore API proposal for process configuration options

Carlos Garcia Campos cgarcia at igalia.com
Mon Jun 22 06:55:45 PDT 2015

El lun, 22-06-2015 a las 08:46 -0500, Michael Catanzaro escribió:
> On Fri, 2015-06-19 at 11:18 +0200, Carlos Garcia Campos wrote:
> > So, my proposal here would be something like:
> > 
> > WebKitWebsiteDataManager *
> > webkit_website_data_manager_new (const gchar *first_option_name,
> >                                  ...);
> > 
> > const gchar *
> > webkit_website_data_manager_get_local_storage_directory 
> > (WebKitWebsiteDataManager *manager);
> > 
> > const gchar *
> > webkit_website_data_manager_get_disk_cache_directory 
> > (WebKitWebsiteDataManager *manager);
> > .....
> Well, thinking about this more....
> The problem with this is that the next time we add a new type of
> website data -- say, HSTS and HPKP policy stores that necessarily will
> reveal your browsing history -- then this will fail unless the app
> developer knows to update his app for the new version of WebKit, to
> include the new directory in the call to
> webkit_website_data_manager_new(). I don't think developers really need
> to configure individually directories for websql, indexeddb,
> localstorage, etc. More important is to be able to put all those
> directories in the same place. So it would suffice to have a pair of
> properties to set the cache directory and the data directory, under
> which all the individual folders can live, so they don't have to be
> listed individually. Then when new types of data are added, they will
> automatically go in the right place without us needing to update
> applications.
> For example, in a tree like this:
> ~/.local/share/mycoolapp
> ~/.local/share/mycoolapp/localstorage
> ~/.local/share/mycoolapp/databases
> ~/.local/share/mycoolapp/databases/indexeddb
> ~/.cache/mycoolapp
> ~/.cache/mycoolapp/offline
> mycoolapp should only need to set the two top-level directories
> ~/.local/share/mycoolapp and ~/.cache/mycoolapp. I think it's harmless
> but unessential to allow finer-grained control.

Yes. I thought about that and I think it's a very good point. We could
probably add base-data-directory and base-cache-directory to
WebKitWebsiteDataManager, and use them if present as fallback when a
particular directory is not provided. So it could be:

if (foo_dir)
    return foo_dir;

if (base_dir)
    return build_foo_dir (base_dir);

return default_foo_dir;

That would allow you to override individual options too. Most of the
directories could be shared among applications using webkitgtk, so you
might want to only provide app directories for a few of them (an all of
them only for private instances).

> _______________________________________________
> webkit-gtk mailing list
> webkit-gtk at lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-gtk

Carlos Garcia Campos
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: This is a digitally signed message part
URL: <https://lists.webkit.org/pipermail/webkit-gtk/attachments/20150622/ef875681/attachment.sig>

More information about the webkit-gtk mailing list