aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/callbacks.c
diff options
context:
space:
mode:
authorGravatar Cedric Staub <cs.staub@cssx.ch>2010-02-17 12:20:03 +0100
committerGravatar Cedric Staub <cs.staub@cssx.ch>2010-02-17 12:20:03 +0100
commitecda3bd031607a9dc11819c7c3f8e41419618c37 (patch)
treeceb61f350f3a18fab4c00aee35ccb1c5c905e4db /src/callbacks.c
parent7bfb3b5b56e30b157cfb750657de104055fe6da3 (diff)
Use SoupCookieJar to handle JavaScript cookies
Diffstat (limited to 'src/callbacks.c')
-rw-r--r--src/callbacks.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/callbacks.c b/src/callbacks.c
index 9b90d3c..97ee52a 100644
--- a/src/callbacks.c
+++ b/src/callbacks.c
@@ -779,3 +779,20 @@ populate_popup_cb(WebKitWebView *v, GtkMenu *m, void *c) {
}
}
+void
+cookie_handler_cb(SoupCookieJar *jar, SoupCookie *old_cookie, SoupCookie *new_cookie, gpointer user_data) {
+ (void) jar;
+ (void) user_data;
+ (void) old_cookie;
+ char *scheme;
+ GString *s;
+
+ if(new_cookie != NULL) {
+ scheme = (new_cookie->secure == TRUE) ? "https" : "http";
+
+ s = g_string_new("");
+ g_string_printf(s, "PUT '%s' '%s' '%s' '%s=%s'", scheme, new_cookie->domain, new_cookie->path, new_cookie->name, new_cookie->value);
+ run_handler(uzbl.behave.cookie_handler, s->str);
+ g_string_free(s, TRUE);
+ }
+}