Add support for loading Webkit extensions
authorQuentin Rameau <quinq@fifth.space>
Mon, 23 Nov 2015 21:12:00 +0000 (22:12 +0100)
committerQuentin Rameau <quinq@fifth.space>
Thu, 22 Sep 2016 08:21:31 +0000 (10:21 +0200)
config.mk
surf.c

index e71316c..c0a9959 100644 (file)
--- a/config.mk
+++ b/config.mk
@@ -6,6 +6,7 @@ VERSION = 0.6
 # paths
 PREFIX = /usr/local
 MANPREFIX = ${PREFIX}/share/man
+LIBPREFIX = ${PREFIX}/lib/surf
 
 X11INC = /usr/X11R6/include
 X11LIB = /usr/X11R6/lib
@@ -18,7 +19,7 @@ INCS = -I. -I/usr/include -I${X11INC} ${GTKINC}
 LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 ${GTKLIB} -lgthread-2.0
 
 # flags
-CPPFLAGS = -DVERSION=\"${VERSION}\" -D_DEFAULT_SOURCE
+CPPFLAGS = -DVERSION=\"${VERSION}\" -DWEBEXTDIR=\"${LIBPREFIX}\" -D_DEFAULT_SOURCE
 CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS}
 LDFLAGS = -s ${LIBS}
 
diff --git a/surf.c b/surf.c
index 29b9ede..fb3ef81 100644 (file)
--- a/surf.c
+++ b/surf.c
@@ -175,6 +175,7 @@ static void cleanup(void);
 
 /* GTK/WebKit */
 static WebKitWebView *newview(Client *c, WebKitWebView *rv);
+static void initwebextensions(WebKitWebContext *wc, Client *c);
 static GtkWidget *createview(WebKitWebView *v, WebKitNavigationAction *a,
                              Client *c);
 static gboolean buttonreleased(GtkWidget *w, GdkEvent *e, Client *c);
@@ -980,6 +981,8 @@ newview(Client *c, WebKitWebView *rv)
 
                g_signal_connect(G_OBJECT(context), "download-started",
                                 G_CALLBACK(downloadstarted), c);
+               g_signal_connect(G_OBJECT(context), "initialize-web-extensions",
+                                G_CALLBACK(initwebextensions), c);
 
                v = g_object_new(WEBKIT_TYPE_WEB_VIEW,
                    "settings", settings,
@@ -1012,6 +1015,12 @@ newview(Client *c, WebKitWebView *rv)
        return v;
 }
 
+void
+initwebextensions(WebKitWebContext *wc, Client *c)
+{
+       webkit_web_context_set_web_extensions_directory(wc, WEBEXTDIR);
+}
+
 GtkWidget *
 createview(WebKitWebView *v, WebKitNavigationAction *a, Client *c)
 {