HTML: Connect to load-failed and resource-load signals.

Useful diagnostics for reports not drawing.
This commit is contained in:
John Ralls 2017-10-14 14:18:07 -07:00
parent 97b09b5df5
commit 281421d5cf
2 changed files with 76 additions and 7 deletions

View File

@ -88,6 +88,13 @@ static WebKitNavigationResponse webkit_navigation_requested_cb(
WebKitWebFrame* frame,
WebKitNetworkRequest* request,
gpointer user_data );
static gboolean webkit_on_load_error (WebKitWebView *web_view,
WebKitWebFrame *web_frame, gchar *uri,
GError *error, gpointer data);
static void webkit_resource_load_error (WebKitWebView *web_view,
WebKitWebFrame *web_frame,
WebKitWebResource *resource,
GError *error, gpointer data);
static void webkit_on_url_cb( WebKitWebView* web_view, gchar* title, gchar* url,
gpointer data );
static gchar* handle_embedded_object( GncHtmlWebkit* self, gchar* html_str );
@ -189,6 +196,13 @@ gnc_html_webkit_init( GncHtmlWebkit* self )
G_CALLBACK(gnc_html_submit_cb),
self);
#endif
g_signal_connect (priv->web_view, "load-error",
G_CALLBACK (webkit_on_load_error),
self);
g_signal_connect (priv->web_view, "resource-load-failed",
G_CALLBACK (webkit_resource_load_error),
self);
gnc_prefs_register_cb (GNC_PREFS_GROUP_GENERAL_REPORT,
GNC_PREF_RPT_DFLT_ZOOM,
@ -621,6 +635,25 @@ webkit_navigation_requested_cb( WebKitWebView* web_view, WebKitWebFrame* frame,
return WEBKIT_NAVIGATION_RESPONSE_IGNORE;
}
static gboolean
webkit_on_load_error (WebKitWebView *web_view, WebKitWebFrame *web_frame,
gchar *uri, GError *error, gpointer data)
{
PERR ("WebKit load of %s failed due to %s\n", uri, error->message);
return FALSE;
}
static void
webkit_resource_load_error (WebKitWebView *web_view, WebKitWebFrame *web_frame,
WebKitWebResource *resource, GError *error,
gpointer data)
{
const gchar *uri = webkit_web_resource_get_uri (resource);
const gchar *type = webkit_web_resource_get_mime_type (resource);
PERR ("WebKit load of resource %s, type %s, failed due to %s\n",
uri, type, error->message);
}
#if 0
/********************************************************************
* gnc_html_object_requested_cb - called when an applet needs to be

View File

@ -107,6 +107,10 @@ static gboolean webkit_load_failed_cb (WebKitWebView *web_view,
WebKitLoadEvent event,
gchar *uri, GError *error,
gpointer user_data);
static void webkit_resource_load_started_cb (WebKitWebView *web_view,
WebKitWebResource *resource,
WebKitURIRequest *request,
gpointer data);
static gchar* handle_embedded_object( GncHtmlWebkit* self, gchar* html_str );
static void impl_webkit_show_url( GncHtml* self, URLType type,
const gchar* location, const gchar* label,
@ -207,9 +211,11 @@ gnc_html_webkit_init( GncHtmlWebkit* self )
#endif
g_signal_connect (priv->web_view, "load-failed",
G_CALLBACK (webkit_load_failed_cb),
self);
G_CALLBACK (webkit_load_failed_cb),
self);
g_signal_connect (priv->web_view, "resource-load-started",
G_CALLBACK (webkit_resource_load_started_cb),
self);
gnc_prefs_register_cb (GNC_PREFS_GROUP_GENERAL_REPORT,
GNC_PREF_RPT_DFLT_ZOOM,
impl_webkit_default_zoom_changed,
@ -691,13 +697,43 @@ webkit_notification_cb (WebKitWebView* web_view, WebKitNotification *note,
static gboolean
webkit_load_failed_cb (WebKitWebView *web_view, WebKitLoadEvent event,
gchar *uri, GError *error, gpointer user_data)
gchar *uri, GError *error, gpointer user_data)
{
char *msg = g_strdup_printf ("Failed to load %s: %s", uri, error->message);
webkit_web_view_load_plain_text(web_view, msg);
g_free (msg);
PERR ("WebKit load of %s failed due to %s\n", uri, error->message);
return FALSE;
}
static void
webkit_resource_load_failed_cb (WebKitWebResource *resource,
GError *error,
gpointer data)
{
WebKitURIResponse *response = webkit_web_resource_get_response (resource);
const gchar * uri = webkit_web_resource_get_uri (resource);
PERR ("Load of resource at %s failed with error %s and status code %d.\n",
uri, error->message, webkit_uri_response_get_status_code (response));
}
static void
webkit_resource_load_finished_cb (WebKitWebResource *resource, gpointer data)
{
DEBUG ("Load of resource %s completed.\n", webkit_web_resource_get_uri(resource));
}
static void
webkit_resource_load_started_cb (WebKitWebView *web_view,
WebKitWebResource *resource,
WebKitURIRequest *request,
gpointer data)
{
DEBUG ("Load of resource %s begun.\n", webkit_web_resource_get_uri(resource));
g_signal_connect (resource, "failed",
G_CALLBACK (webkit_resource_load_failed_cb),
data);
g_signal_connect (resource, "finished",
G_CALLBACK (webkit_resource_load_finished_cb),
data);
}
/********************************************************************
* gnc_html_open_scm
* insert some scheme-generated HTML