Introduction
Introduction Statistics Contact Development Disclaimer Help
implementing cookie persistance with multiple processes. - surf - surf browser,…
git clone git://git.suckless.org/surf
Log
Files
Refs
README
LICENSE
---
commit 5ac31995a323eaac87b1b509a7fce26d488ca3ea
parent 3657813fec9b1b81ecb7de9389eaade702112005
Author: Enno Boland (tox) <[email protected]>
Date: Sat, 17 Oct 2009 08:38:46 +0200
implementing cookie persistance with multiple processes.
Diffstat:
M surf.c | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
---
diff --git a/surf.c b/surf.c
@@ -92,6 +92,7 @@ static void itemclick(GtkMenuItem *mi, Client *c);
static gboolean keypress(GtkWidget *w, GdkEventKey *ev, Client *c);
static void linkhover(WebKitWebView *v, const char* t, const char* l, Client *…
static void loadcommit(WebKitWebView *v, WebKitWebFrame *f, Client *c);
+static void loadfinished(WebKitWebView *v, WebKitWebFrame *f, Client *c);
static void loadstart(WebKitWebView *v, WebKitWebFrame *f, Client *c);
static void loaduri(Client *c, const Arg *arg);
static void navigate(Client *c, const Arg *arg);
@@ -103,10 +104,10 @@ static GdkFilterReturn processx(GdkXEvent *xevent, GdkEve…
static void print(Client *c, const Arg *arg);
static void progresschange(WebKitWebView *v, gint p, Client *c);
static void reload(Client *c, const Arg *arg);
+static void reloadcookie();
static void sigchld(int unused);
static void setup(void);
static void spawn(Client *c, const Arg *arg);
-static void titlechange(WebKitWebView *v, WebKitWebFrame* frame, const char* t…
static void scroll(Client *c, const Arg *arg);
static void searchtext(Client *c, const Arg *arg);
static void source(Client *c, const Arg *arg);
@@ -398,7 +399,13 @@ loadcommit(WebKitWebView *view, WebKitWebFrame *f, Client …
}
void
+loadfinished(WebKitWebView *v, WebKitWebFrame *f, Client *c) {
+ reloadcookie();
+}
+
+void
loadstart(WebKitWebView *view, WebKitWebFrame *f, Client *c) {
+ reloadcookie();
c->progress = 0;
update(c);
}
@@ -468,6 +475,7 @@ newclient(void) {
c->view = WEBKIT_WEB_VIEW(webkit_web_view_new());
g_signal_connect(G_OBJECT(c->view), "title-changed", G_CALLBACK(titlec…
g_signal_connect(G_OBJECT(c->view), "load-progress-changed", G_CALLBAC…
+ g_signal_connect(G_OBJECT(c->view), "load-finished", G_CALLBACK(loadfi…
g_signal_connect(G_OBJECT(c->view), "load-committed", G_CALLBACK(loadc…
g_signal_connect(G_OBJECT(c->view), "load-started", G_CALLBACK(loadsta…
g_signal_connect(G_OBJECT(c->view), "hovering-over-link", G_CALLBACK(l…
@@ -620,6 +628,16 @@ reload(Client *c, const Arg *arg) {
}
void
+reloadcookie(void) {
+ SoupSession *s;
+
+ /* This forces the cookie to be written to hdd */
+ s = webkit_get_default_session();
+ soup_session_remove_feature(s, SOUP_SESSION_FEATURE(cookiejar));
+ soup_session_add_feature(s, SOUP_SESSION_FEATURE(cookiejar));
+}
+
+void
scroll(Client *c, const Arg *arg) {
gdouble v;
GtkAdjustment *a;
You are viewing proxied material from suckless.org. 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.