Introduction
Introduction Statistics Contact Development Disclaimer Help
tAdding disk cache support for soup. - surf - customized build of surf, the suc…
git clone git://src.adamsgaard.dk/surf
Log
Files
Refs
README
LICENSE
---
commit 117d4848338315d15e1ab93cd551889fc6964a2b
parent 24ec46fc241b655bf91a4529fa164ae9703d4eb6
Author: Christoph Lohmann <[email protected]>
Date: Sat, 17 Jan 2015 20:50:21 +0100
Adding disk cache support for soup.
This is a merge of the patch of Ben Woolley <[email protected]>
Diffstat:
M config.def.h | 19 +++++++++++--------
M surf.c | 30 +++++++++++++++++++++++++++++-
2 files changed, 40 insertions(+), 9 deletions(-)
---
diff --git a/config.def.h b/config.def.h
t@@ -4,6 +4,7 @@ static char *useragent = "Mozilla/5.0 (X11; U; Unix; en-U…
"Safari/537.15 Surf/"VERSION;
static char *scriptfile = "~/.surf/script.js";
static char *styledir = "~/.surf/styles/";
+static char *cachefolder = "~/.surf/cache/";
static Bool kioskmode = FALSE; /* Ignore shortcuts */
static Bool showindicators = TRUE; /* Show indicators in window title */
t@@ -22,15 +23,17 @@ static char *strictssl = FALSE; /* Refuse untrusted S…
static time_t sessiontime = 3600;
/* Webkit default features */
-static Bool enablescrollbars = TRUE;
+static Bool enablescrollbars = TRUE;
static Bool enablespatialbrowsing = TRUE;
-static Bool enableplugins = TRUE;
-static Bool enablescripts = TRUE;
-static Bool enableinspector = TRUE;
-static Bool enablestyles = TRUE;
-static Bool loadimages = TRUE;
-static Bool hidebackground = FALSE;
-static Bool allowgeolocation = TRUE;
+static Bool enablediskcache = TRUE;
+static int diskcachebytes = 5 * 1024 * 1024;
+static Bool enableplugins = TRUE;
+static Bool enablescripts = TRUE;
+static Bool enableinspector = TRUE;
+static Bool enablestyles = TRUE;
+static Bool loadimages = TRUE;
+static Bool hidebackground = FALSE;
+static Bool allowgeolocation = TRUE;
#define SETPROP(p, q) { \
.v = (char *[]){ "/bin/sh", "-c", \
diff --git a/surf.c b/surf.c
t@@ -85,11 +85,12 @@ static GdkNativeWindow embed = 0;
static gboolean showxid = FALSE;
static char winid[64];
static gboolean usingproxy = 0;
-static char togglestat[8];
+static char togglestat[9];
static char pagestat[3];
static GTlsDatabase *tlsdb;
static int policysel = 0;
static char *stylefile = NULL;
+static SoupCache *diskcache = NULL;
static void addaccelgroup(Client *c);
static void beforerequest(WebKitWebView *w, WebKitWebFrame *f,
t@@ -270,6 +271,10 @@ buttonrelease(WebKitWebView *web, GdkEventButton *e, GLis…
static void
cleanup(void) {
+ if (diskcache) {
+ soup_cache_flush(diskcache);
+ soup_cache_dump(diskcache);
+ }
while(clients)
destroyclient(clients);
g_free(cookiefile);
t@@ -677,6 +682,10 @@ loadstatuschange(WebKitWebView *view, GParamSpec *pspec, …
case WEBKIT_LOAD_FINISHED:
c->progress = 100;
updatetitle(c);
+ if (diskcache) {
+ soup_cache_flush(diskcache);
+ soup_cache_dump(diskcache);
+ }
break;
default:
break;
t@@ -972,6 +981,8 @@ newwindow(Client *c, const Arg *arg, gboolean noembed) {
cmd[i++] = "-s";
if(showxid)
cmd[i++] = "-x";
+ if(enablediskcache)
+ cmd[i++] = "-D";
cmd[i++] = "-c";
cmd[i++] = cookiefile;
cmd[i++] = "--";
t@@ -1149,6 +1160,7 @@ setup(void) {
/* dirs and files */
cookiefile = buildpath(cookiefile);
scriptfile = buildpath(scriptfile);
+ cachefolder = buildpath(cachefolder);
styledir = buildpath(styledir);
if(stylefile == NULL && enablestyles) {
for(i = 0; i < LENGTH(styles); i++) {
t@@ -1175,6 +1187,14 @@ setup(void) {
SOUP_SESSION_FEATURE(cookiejar_new(cookiefile, FALSE,
cookiepolicy_get())));
+ /* disk cache */
+ if(enablediskcache) {
+ diskcache = soup_cache_new(cachefolder, SOUP_CACHE_SINGLE_USER…
+ soup_cache_set_max_size(diskcache, diskcachebytes);
+ soup_cache_load(diskcache);
+ soup_session_add_feature(s, SOUP_SESSION_FEATURE(diskcache));
+ }
+
/* ssl */
tlsdb = g_tls_file_database_new(cafile, &error);
t@@ -1363,6 +1383,8 @@ gettogglestat(Client *c){
togglestat[p++] = allowgeolocation? 'G': 'g';
+ togglestat[p++] = enablediskcache? 'D': 'd';
+
g_object_get(G_OBJECT(settings), "auto-load-images", &value, NULL);
togglestat[p++] = value? 'I': 'i';
t@@ -1479,6 +1501,12 @@ main(int argc, char *argv[]) {
case 'c':
cookiefile = EARGF(usage());
break;
+ case 'd':
+ enablediskcache = 0;
+ break;
+ case 'D':
+ enablediskcache = 1;
+ break;
case 'e':
embed = strtol(EARGF(usage()), NULL, 0);
break;
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.