@@ -16,6 +16,7 @@ typedef struct web_view{
16
16
callback_decide_policy_evnt_fn decide_policy_handler ;
17
17
callback_decide_new_window_policy_evnt_fn decide_new_window_policy_handler ;
18
18
callback_js_ready_evnt_fn js_ready_handler ;
19
+ callback_js_error_evnt_fn js_error_handler ;
19
20
callback_context_menu_evnt_fn context_menu_handler ;
20
21
callback_script_message_received_evnt_fn script_message_received_handler ;
21
22
callback_get_cookies_evnt_fn get_cookie_handler ;
@@ -87,6 +88,7 @@ LAUNCHER_EXPORT void* webview_new()
87
88
wv -> load_failed_handler = 0 ;
88
89
wv -> decide_policy_handler = 0 ;
89
90
wv -> js_ready_handler = 0 ;
91
+ wv -> js_error_handler = 0 ;
90
92
wv -> clear_data_manager_finish_handler = 0 ;
91
93
WebKitWebContext * context = webkit_web_context_new ();
92
94
wv -> view = WEBKIT_WEB_VIEW (webkit_web_view_new_with_context (context ));
@@ -105,6 +107,7 @@ LAUNCHER_EXPORT void* webview_new_ephemeral()
105
107
wv -> load_failed_handler = 0 ;
106
108
wv -> decide_policy_handler = 0 ;
107
109
wv -> js_ready_handler = 0 ;
110
+ wv -> js_error_handler = 0 ;
108
111
wv -> clear_data_manager_finish_handler = 0 ;
109
112
WebKitWebContext * context = webkit_web_context_new_ephemeral ();
110
113
wv -> view = WEBKIT_WEB_VIEW (webkit_web_view_new_with_context (context ));
@@ -210,6 +213,9 @@ static void evaluate_javascript_cb(GObject *obj, GAsyncResult *result, gpointer
210
213
g_warning ("Error running javascript: %s" , error -> message );
211
214
}
212
215
216
+ if (wv -> js_error_handler )
217
+ wv -> js_error_handler (error -> message );
218
+
213
219
g_error_free (error );
214
220
return ;
215
221
}
@@ -397,6 +403,13 @@ LAUNCHER_EXPORT bool set_callback_js_ready(void* view, callback_js_ready_evnt_fn
397
403
return 1 ;
398
404
}
399
405
406
+ LAUNCHER_EXPORT bool set_callback_js_error (void * view , callback_js_error_evnt_fn handler )
407
+ {
408
+ webView * wv = (webView * )view ;
409
+ wv -> js_error_handler = handler ;
410
+ return 1 ;
411
+ }
412
+
400
413
LAUNCHER_EXPORT bool set_callback_clear_data_manager_finish (void * view , callback_clear_data_manager_finish_evnt_fn handler )
401
414
{
402
415
webView * wv = (webView * )view ;
0 commit comments