summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Quentin Rameau 2015-11-19 17:14:29 +0100
committerGravatar Quentin Rameau 2015-11-20 00:34:22 +0100
commitd9cecc89329dee3eb48bb6cc38d2bc38796c2e8b (patch)
treeefce10786bbeabbf5f9461c1e91b98776367fc75
parentRemove windowobjectcleared(), execute scripts on load finished (diff)
Adapt JavaScript functions
Removed eval(), evalscript() is now sufficient and can directly execute passed JavaScript string.
Diffstat (limited to '')
-rw-r--r--surf.c42
1 files changed, 17 insertions, 25 deletions
diff --git a/surf.c b/surf.c
index eb57824..e8b2c3d 100644
--- a/surf.c
+++ b/surf.c
@@ -124,7 +124,8 @@ static void closeview(WebKitWebView *v, Client *c);
static void destroyclient(Client *c);
static void destroywin(GtkWidget* w, Client *c);
static void die(const char *errstr, ...);
-static void eval(Client *c, const Arg *arg);
+static void evalscript(Client *c, const char *jsstr, ...);
+static void runscript(Client *c);
static void find(Client *c, const Arg *arg);
static void fullscreen(Client *c, const Arg *arg);
static gboolean permissionrequested(WebKitWebView *v,
@@ -336,29 +337,28 @@ cookiepolicy_set(const WebKitCookieAcceptPolicy ep)
}
void
-evalscript(JSContextRef js, char *script, char* scriptname)
+evalscript(Client *c, const char *jsstr, ...)
{
- JSStringRef jsscript, jsscriptname;
- JSValueRef exception = NULL;
+ va_list ap;
+ gchar *script;
+
+ va_start(ap, jsstr);
+ script = g_strdup_vprintf(jsstr, ap);
+ va_end(ap);
- jsscript = JSStringCreateWithUTF8CString(script);
- jsscriptname = JSStringCreateWithUTF8CString(scriptname);
- JSEvaluateScript(js, jsscript, JSContextGetGlobalObject(js),
- jsscriptname, 0, &exception);
- JSStringRelease(jsscript);
- JSStringRelease(jsscriptname);
+ webkit_web_view_run_javascript(c->view, script, NULL, NULL, NULL);
+ g_free(script);
}
void
-runscript(WebKitWebFrame *frame)
+runscript(Client *c)
{
- char *script;
- GError *error;
+ gchar *script;
+ gsize l;
- if (g_file_get_contents(scriptfile, &script, NULL, &error)) {
- evalscript(webkit_web_frame_get_global_context(frame), script,
- scriptfile);
- }
+ if (g_file_get_contents(scriptfile, &script, &l, NULL) && l)
+ evalscript(c, script);
+ g_free(script);
}
void
@@ -1319,14 +1319,6 @@ spawn(Client *c, const Arg *arg)
}
void
-eval(Client *c, const Arg *arg)
-{
- WebKitWebFrame *frame = webkit_web_view_get_main_frame(c->view);
- evalscript(webkit_web_frame_get_global_context(frame),
- ((char **)arg->v)[0], "");
-}
-
-void
stop(Client *c, const Arg *arg)
{
webkit_web_view_stop_loading(c->view);