commit f61cfc720c598491d7a93c9f314ceae349e00450
Author:     Quentin Rameau <[email protected]>
AuthorDate: Mon Oct 8 11:37:11 2018 +0200
Commit:     Quentin Rameau <[email protected]>
CommitDate: Sun Nov 1 16:59:12 2020 +0100

    Add support for ephemeral (zero disk access)

diff --git a/config.def.h b/config.def.h
index 738f464..be168ab 100644
--- a/config.def.h
+++ b/config.def.h
@@ -29,6 +29,7 @@ static Parameter defconfig[ParameterLast] = {
        [DefaultCharset]      =       { { .v = "UTF-8" }, },
        [DiskCache]           =       { { .i = 1 },     },
        [DNSPrefetch]         =       { { .i = 0 },     },
+       [Ephemeral]           =       { { .i = 0 },     },
        [FileURLsCrossAccess] =       { { .i = 0 },     },
        [FontSize]            =       { { .i = 12 },    },
        [FrameFlattening]     =       { { .i = 0 },     },
diff --git a/surf.c b/surf.c
index 2d25fa4..edaf348 100644
--- a/surf.c
+++ b/surf.c
@@ -58,6 +58,7 @@ typedef enum {
        DiskCache,
        DefaultCharset,
        DNSPrefetch,
+       Ephemeral,
        FileURLsCrossAccess,
        FontSize,
        FrameFlattening,
@@ -350,8 +351,11 @@ setup(void)
        /* dirs and files */
        cookiefile = buildfile(cookiefile);
        scriptfile = buildfile(scriptfile);
-       cachedir   = buildpath(cachedir);
        certdir    = buildpath(certdir);
+       if (curconfig[Ephemeral].val.i)
+               cachedir = NULL;
+       else
+               cachedir   = buildpath(cachedir);
 
        gdkkb = gdk_seat_get_keyboard(gdk_display_get_default_seat(gdpy));
 
@@ -1141,11 +1145,16 @@ newview(Client *c, WebKitWebView *rv)
 
                contentmanager = webkit_user_content_manager_new();
 
-               context = webkit_web_context_new_with_website_data_manager(
-                         webkit_website_data_manager_new(
-                         "base-cache-directory", cachedir,
-                         "base-data-directory", cachedir,
-                         NULL));
+               if (curconfig[Ephemeral].val.i) {
+                       context = webkit_web_context_new_ephemeral();
+               } else {
+                       context = 
webkit_web_context_new_with_website_data_manager(
+                                 webkit_website_data_manager_new(
+                                 "base-cache-directory", cachedir,
+                                 "base-data-directory", cachedir,
+                                 NULL));
+               }
+
 
                cookiemanager = webkit_web_context_get_cookie_manager(context);
 
@@ -1167,8 +1176,9 @@ newview(Client *c, WebKitWebView *rv)
                            context, *plugindirs);
 
                /* Currently only works with text file to be compatible with 
curl */
-               webkit_cookie_manager_set_persistent_storage(cookiemanager,
-                   cookiefile, WEBKIT_COOKIE_PERSISTENT_STORAGE_TEXT);
+               if (!curconfig[Ephemeral].val.i)
+                       
webkit_cookie_manager_set_persistent_storage(cookiemanager,
+                           cookiefile, WEBKIT_COOKIE_PERSISTENT_STORAGE_TEXT);
                /* cookie policy */
                webkit_cookie_manager_set_accept_policy(cookiemanager,
                    cookiepolicy_get());

Reply via email to