From 0380d8bd2ef3be9ab30068f31a1c8593eb08e7cd Mon Sep 17 00:00:00 2001 From: Christian Dywan Date: Sun, 1 Mar 2009 00:29:44 +0100 Subject: [PATCH] Use libSoup to percent decode scripts, ie. bookmarklets --- midori/midori-view.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/midori/midori-view.c b/midori/midori-view.c index 3dfa9540..79869c4a 100644 --- a/midori/midori-view.c +++ b/midori/midori-view.c @@ -2529,10 +2529,27 @@ midori_view_execute_script (MidoriView* view, const gchar* script, gchar** exception) { + WebKitWebFrame* web_frame; + JSContextRef js_context; + #if HAVE_LIBSOUP + gchar* script_decoded; + #endif + g_return_val_if_fail (MIDORI_IS_VIEW (view), FALSE); g_return_val_if_fail (script != NULL, FALSE); /* FIXME Actually store exception. */ - webkit_web_view_execute_script (WEBKIT_WEB_VIEW (view->web_view), script); + web_frame = webkit_web_view_get_main_frame (WEBKIT_WEB_VIEW (view->web_view)); + js_context = webkit_web_frame_get_global_context (web_frame); + #if HAVE_LIBSOUP + if ((script_decoded = soup_uri_decode (script))) + { + webkit_web_view_execute_script (WEBKIT_WEB_VIEW (view->web_view), + script_decoded); + g_free (script_decoded); + } + else + #endif + webkit_web_view_execute_script (WEBKIT_WEB_VIEW (view->web_view), script); return TRUE; }