Add support for ephemeral (zero disk access) - surf - surf browser, a WebKit based browser
 (HTM) git clone git://git.suckless.org/surf
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit f61cfc720c598491d7a93c9f314ceae349e00450
 (DIR) parent 6850365d7c91e6cf873ac722c705c55905de143a
 (HTM) Author: Quentin Rameau <quinq@fifth.space>
       Date:   Mon,  8 Oct 2018 11:37:11 +0200
       
       Add support for ephemeral (zero disk access)
       
       Diffstat:
         M config.def.h                        |       1 +
         M surf.c                              |      26 ++++++++++++++++++--------
       
       2 files changed, 19 insertions(+), 8 deletions(-)
       ---
 (DIR) diff --git 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 },     },
 (DIR) diff --git 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());