diff options
author | Christoph Lohmann <20h@r-36.net> | 2015-01-19 22:15:18 +0100 |
---|---|---|
committer | Christoph Lohmann <20h@r-36.net> | 2015-01-19 22:15:18 +0100 |
commit | 9c3b5ad35389f1930834bf04341eb0c3514a850f (patch) | |
tree | 996bced8c0eb36e56d2ce3bec644e2e92d80ebea /surf.c | |
parent | 7c34d5061e372d44e20a27df375d785656614935 (diff) | |
download | surf-9c3b5ad35389f1930834bf04341eb0c3514a850f.tar.gz surf-9c3b5ad35389f1930834bf04341eb0c3514a850f.tar.bz2 surf-9c3b5ad35389f1930834bf04341eb0c3514a850f.zip |
Add plumbing functionality.
Diffstat (limited to 'surf.c')
-rw-r--r-- | surf.c | 23 |
1 files changed, 21 insertions, 2 deletions
@@ -95,7 +95,7 @@ static SoupCache *diskcache = NULL; static void addaccelgroup(Client *c); static void beforerequest(WebKitWebView *w, WebKitWebFrame *f, WebKitWebResource *r, WebKitNetworkRequest *req, - WebKitNetworkResponse *resp, gpointer d); + WebKitNetworkResponse *resp, Client *c); static char *buildpath(const char *path); static gboolean buttonrelease(WebKitWebView *web, GdkEventButton *e, GList *gl); @@ -138,6 +138,8 @@ static void getpagestat(Client *c); static char *geturi(Client *c); static gchar *getstyle(const char *uri); +static void handleplumb(Client *c, WebKitWebView *w, const gchar *uri); + static gboolean initdownload(WebKitWebView *v, WebKitDownload *o, Client *c); static void inspector(Client *c, const Arg *arg); @@ -209,11 +211,19 @@ addaccelgroup(Client *c) { static void beforerequest(WebKitWebView *w, WebKitWebFrame *f, WebKitWebResource *r, WebKitNetworkRequest *req, WebKitNetworkResponse *resp, - gpointer d) { + Client *c) { const gchar *uri = webkit_network_request_get_uri(req); if(g_str_has_suffix(uri, "/favicon.ico")) webkit_network_request_set_uri(req, "about:blank"); + + if(!g_str_has_prefix(uri, "http://") \ + && !g_str_has_prefix(uri, "https://") \ + && !g_str_has_prefix(uri, "about:") \ + && strlen(uri) > 0) { + printf("Handle plumb: %s\n", uri); + handleplumb(c, w, uri); + } } static char * @@ -561,6 +571,15 @@ getstyle(const char *uri) { return g_strdup(""); } +static void +handleplumb(Client *c, WebKitWebView *w, const gchar *uri) { + Arg arg; + + webkit_web_view_stop_loading(w); + arg = (Arg)PLUMB((char *)uri); + spawn(c, &arg); +} + static gboolean initdownload(WebKitWebView *view, WebKitDownload *o, Client *c) { Arg arg; |