]> Skullheadx's Git Forge - surf.git/commitdiff
Add support for ephemeral (zero disk access)
authorQuentin Rameau <quinq@fifth.space>
Mon, 8 Oct 2018 09:37:11 +0000 (11:37 +0200)
committerQuentin Rameau <quinq@fifth.space>
Sun, 1 Nov 2020 15:59:12 +0000 (16:59 +0100)
config.def.h
surf.c

index 738f464995383423323030d07de02f8bad43157c..be168abf33b5a42c2fde84934a057d2938ddd024 100644 (file)
@@ -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 2d25fa43ac08ac5276d10a6965e91ad64d9407b8..edaf34817fdaf38c4a464db0ba32f55fd4ba2cc4 100644 (file)
--- 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());