Adapt JavaScript functions

Removed eval(), evalscript() is now sufficient and can directly execute
passed JavaScript string.
This commit is contained in:
Quentin Rameau 2015-11-19 17:14:29 +01:00
parent 72905b8bfc
commit d9cecc8932
1 changed files with 17 additions and 25 deletions

42
surf.c
View File

@ -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;
jsscript = JSStringCreateWithUTF8CString(script);
jsscriptname = JSStringCreateWithUTF8CString(scriptname);
JSEvaluateScript(js, jsscript, JSContextGetGlobalObject(js),
jsscriptname, 0, &exception);
JSStringRelease(jsscript);
JSStringRelease(jsscriptname);
va_start(ap, jsstr);
script = g_strdup_vprintf(jsstr, ap);
va_end(ap);
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
@ -1318,14 +1318,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)
{