Show error message if bookmarklet/ javascript: fails

This commit is contained in:
Christian Dywan 2009-12-30 23:53:58 +01:00
parent 6fe8a5e9ec
commit df6f4a16b8

View file

@ -3148,7 +3148,15 @@ midori_view_set_uri (MidoriView* view,
} }
else if (g_str_has_prefix (uri, "javascript:")) 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:") else if (g_str_has_prefix (uri, "mailto:")
|| g_str_has_prefix (uri, "tel:") || g_str_has_prefix (uri, "tel:")
@ -4289,22 +4297,24 @@ midori_view_execute_script (MidoriView* view,
WebKitWebFrame* web_frame; WebKitWebFrame* web_frame;
JSContextRef js_context; JSContextRef js_context;
gchar* script_decoded; gchar* script_decoded;
gchar* result;
gboolean success;
g_return_val_if_fail (MIDORI_IS_VIEW (view), FALSE); g_return_val_if_fail (MIDORI_IS_VIEW (view), FALSE);
g_return_val_if_fail (script != NULL, 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)); web_frame = webkit_web_view_get_main_frame (WEBKIT_WEB_VIEW (view->web_view));
js_context = webkit_web_frame_get_global_context (web_frame); js_context = webkit_web_frame_get_global_context (web_frame);
if ((script_decoded = soup_uri_decode (script))) if ((script_decoded = soup_uri_decode (script)))
{ {
webkit_web_view_execute_script (WEBKIT_WEB_VIEW (view->web_view), result = sokoke_js_script_eval (js_context, script_decoded, exception);
script_decoded);
g_free (script_decoded); g_free (script_decoded);
} }
else else
webkit_web_view_execute_script (WEBKIT_WEB_VIEW (view->web_view), script); result = sokoke_js_script_eval (js_context, script, exception);
return TRUE; success = result != NULL;
g_free (result);
return success;
} }
/** /**