From df6f4a16b8935797b9b6bcd258c1e7fc5c5341c0 Mon Sep 17 00:00:00 2001 From: Christian Dywan Date: Wed, 30 Dec 2009 23:53:58 +0100 Subject: [PATCH] Show error message if bookmarklet/ javascript: fails --- midori/midori-view.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/midori/midori-view.c b/midori/midori-view.c index 0202206e..379fda8d 100644 --- a/midori/midori-view.c +++ b/midori/midori-view.c @@ -3148,7 +3148,15 @@ midori_view_set_uri (MidoriView* view, } else if (g_str_has_prefix (uri, "javascript:")) { - midori_view_execute_script (view, &uri[11], NULL); + gboolean result; + gchar* exception; + + result = midori_view_execute_script (view, &uri[11], &exception); + if (!result) + { + sokoke_message_dialog (GTK_MESSAGE_ERROR, "javascript:", exception); + g_free (exception); + } } else if (g_str_has_prefix (uri, "mailto:") || g_str_has_prefix (uri, "tel:") @@ -4289,22 +4297,24 @@ midori_view_execute_script (MidoriView* view, WebKitWebFrame* web_frame; JSContextRef js_context; gchar* script_decoded; + gchar* result; + gboolean success; g_return_val_if_fail (MIDORI_IS_VIEW (view), FALSE); g_return_val_if_fail (script != NULL, FALSE); - /* FIXME Actually store exception. */ 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 ((script_decoded = soup_uri_decode (script))) { - webkit_web_view_execute_script (WEBKIT_WEB_VIEW (view->web_view), - script_decoded); + result = sokoke_js_script_eval (js_context, script_decoded, exception); g_free (script_decoded); } else - webkit_web_view_execute_script (WEBKIT_WEB_VIEW (view->web_view), script); - return TRUE; + result = sokoke_js_script_eval (js_context, script, exception); + success = result != NULL; + g_free (result); + return success; } /** -- 2.39.5