surf

surf browser, a WebKit based browser
git clone git://git.suckless.org/surf
Log | Files | Refs | README | LICENSE

commit f61cfc720c598491d7a93c9f314ceae349e00450
parent 6850365d7c91e6cf873ac722c705c55905de143a
Author: Quentin Rameau <quinq@fifth.space>
Date:   Mon,  8 Oct 2018 11:37:11 +0200

Add support for ephemeral (zero disk access)

Diffstat:
Mconfig.def.h | 1+
Msurf.c | 26++++++++++++++++++--------
2 files changed, 19 insertions(+), 8 deletions(-)

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 }, }, 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());