Introduction
Introduction Statistics Contact Development Disclaimer Help
tadding user.js support. - surf - customized build of surf, the suckless webkit…
git clone git://src.adamsgaard.dk/surf
Log
Files
Refs
README
LICENSE
---
commit e9d4da3030f534d1a6a6882a642de4fb12fe4941
parent 0e3ac7f3b0c6bb944202ba0eea258c6c9bb05638
Author: Enno Boland (tox) <[email protected]>
Date: Wed, 16 Sep 2009 10:06:21 +0200
adding user.js support.
Diffstat:
M surf.c | 26 ++++++++++++++++++++++----
1 file changed, 22 insertions(+), 4 deletions(-)
---
diff --git a/surf.c b/surf.c
t@@ -15,12 +15,11 @@
#include <stdio.h>
#include <webkit/webkit.h>
#include <glib/gstdio.h>
+#include <JavaScriptCore/JavaScript.h>
#define LENGTH(x) (sizeof x / sizeof x[0])
#define CLEANMASK(mask) (mask & ~(GDK_MOD2_MASK))
-Display *dpy;
-Atom urlprop;
typedef union Arg Arg;
union Arg {
const gboolean b;
t@@ -60,6 +59,8 @@ typedef struct {
KeyFocus focus;
} Key;
+static Display *dpy;
+static Atom urlprop;
static SoupCookieJar *cookiejar;
static SoupSession *session;
static Client *clients = NULL;
t@@ -115,6 +116,7 @@ static void titlechange(WebKitWebView* view, WebKitWebFram…
static gboolean unfocusbar(GtkWidget *w, GdkEventFocus *e, Client *c);
static void usage(void);
static void update(Client *c);
+static void windowobjectcleared(GtkWidget *w, WebKitWebFrame *frame, JSContext…
static void zoom(Client *c, const Arg *arg);
#include "config.h"
t@@ -408,6 +410,7 @@ newclient(void) {
g_signal_connect(G_OBJECT(c->view), "hovering-over-link", G_CALLBACK(l…
g_signal_connect(G_OBJECT(c->view), "create-web-view", G_CALLBACK(neww…
g_signal_connect(G_OBJECT(c->view), "download-requested", G_CALLBACK(i…
+ g_signal_connect(G_OBJECT(c->view), "window-object-cleared", G_CALLBAC…
g_signal_connect_after(session, "request-started", G_CALLBACK(request)…
/* urlbar */
t@@ -426,8 +429,6 @@ newclient(void) {
g_signal_connect (G_OBJECT (c->indicator), "expose_event",
G_CALLBACK (exposeindicator), c);
- /* downloadbar */
-
/* Arranging */
gtk_container_add(GTK_CONTAINER(c->scroll), GTK_WIDGET(c->view));
gtk_container_add(GTK_CONTAINER(c->win), c->vbox);
t@@ -688,6 +689,23 @@ update(Client *c) {
}
void
+windowobjectcleared(GtkWidget *w, WebKitWebFrame *frame, JSContextRef js, JSOb…
+ JSStringRef jsscript;
+ gchar *script, *filename;
+ JSValueRef exception = NULL;
+ GError *error;
+
+ filename = g_build_filename(workdir, "script.js", NULL);
+ if(g_file_get_contents(filename, &script, NULL, &error)) {
+ script = g_strdup_printf("window.addEventListener"
+ "('DOMContentLoaded', function () { %s }, true…
+ script);
+ jsscript = JSStringCreateWithUTF8CString (script);
+ JSEvaluateScript (js, jsscript, JSContextGetGlobalObject(js), …
+ }
+}
+
+void
zoom(Client *c, const Arg *arg) {
if(arg->i < 0) /* zoom out */
webkit_web_view_zoom_out(c->view);
You are viewing proxied material from mx1.adamsgaard.dk. 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.