summaryrefslogtreecommitdiff
path: root/surf.c
diff options
context:
space:
mode:
Diffstat (limited to 'surf.c')
-rw-r--r--surf.c36
1 files changed, 28 insertions, 8 deletions
diff --git a/surf.c b/surf.c
index 474c01b..001f776 100644
--- a/surf.c
+++ b/surf.c
@@ -214,6 +214,8 @@ static void downloadstarted(WebKitWebContext *wc, WebKitDownload *d,
Client *c);
static void responsereceived(WebKitDownload *d, GParamSpec *ps, Client *c);
static void download(Client *c, WebKitURIResponse *r);
+static gboolean viewusrmsgrcv(WebKitWebView *v, WebKitUserMessage *m,
+ gpointer u);
static void webprocessterminated(WebKitWebView *v,
WebKitWebProcessTerminationReason r,
Client *c);
@@ -1224,6 +1226,8 @@ newview(Client *c, WebKitWebView *rv)
G_CALLBACK(permissionrequested), c);
g_signal_connect(G_OBJECT(v), "ready-to-show",
G_CALLBACK(showview), c);
+ g_signal_connect(G_OBJECT(v), "user-message-received",
+ G_CALLBACK(viewusrmsgrcv), c);
g_signal_connect(G_OBJECT(v), "web-process-terminated",
G_CALLBACK(webprocessterminated), c);
@@ -1262,14 +1266,6 @@ readsock(GIOChannel *s, GIOCondition ioc, gpointer unused)
void
initwebextensions(WebKitWebContext *wc, Client *c)
{
- GVariant *gv;
-
- if (spair[1] < 0)
- return;
-
- gv = g_variant_new("i", spair[1]);
-
- webkit_web_context_set_web_extensions_initialization_user_data(wc, gv);
webkit_web_context_set_web_extensions_directory(wc, WEBEXTDIR);
}
@@ -1572,6 +1568,30 @@ titlechanged(WebKitWebView *view, GParamSpec *ps, Client *c)
updatetitle(c);
}
+gboolean
+viewusrmsgrcv(WebKitWebView *v, WebKitUserMessage *m, gpointer unused)
+{
+ WebKitUserMessage *r;
+ GUnixFDList *gfd;
+ const char *name;
+
+ name = webkit_user_message_get_name(m);
+ if (strcmp(name, "page-created") != 0) {
+ fprintf(stderr, "surf: Unknown UserMessage: %s\n", name);
+ return TRUE;
+ }
+
+ if (spair[1] < 0)
+ return TRUE;
+
+ gfd = g_unix_fd_list_new_from_array(&spair[1], 1);
+ r = webkit_user_message_new_with_fd_list("surf-pipe", NULL, gfd);
+
+ webkit_user_message_send_reply(m, r);
+
+ return TRUE;
+}
+
void
mousetargetchanged(WebKitWebView *v, WebKitHitTestResult *h, guint modifiers,
Client *c)