gnucash unstable: Multiple changes pushed
John Ralls
jralls at code.gnucash.org
Sat Oct 14 17:31:50 EDT 2017
Updated via https://github.com/Gnucash/gnucash/commit/14eafd8a (commit)
via https://github.com/Gnucash/gnucash/commit/281421d5 (commit)
via https://github.com/Gnucash/gnucash/commit/97b09b5d (commit)
from https://github.com/Gnucash/gnucash/commit/789a28dd (commit)
commit 14eafd8a1dc5755494b4522acc7588af76a3456d
Author: John Ralls <jralls at ceridwen.us>
Date: Sat Oct 14 14:26:04 2017 -0700
Build Macs with WebKit1.
Temporarily, I hope. Javascript isn't working with WebKit-2.16 but does
with WebKit 2.4.11 and I don't want to hold up releasing 2.7.0 any longer.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9265b6f..738b434 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -177,10 +177,10 @@ GNC_PKG_CHECK_MODULES (GTHREAD REQUIRED gthread-2.0>=2.20)
GNC_PKG_CHECK_MODULES (LIBXML2 REQUIRED libxml-2.0>=2.7.0)
GNC_PKG_CHECK_MODULES (LIBXSLT REQUIRED libxslt)
-IF (WIN32)
+IF (WIN32 OR APPLE)
GNC_PKG_CHECK_MODULES (WEBKIT REQUIRED webkitgtk-3.0)
SET(WEBKIT1 1)
-ELSE (WIN32)
+ELSE (WIN32 OR APPLE)
GNC_PKG_CHECK_MODULES (WEBKIT webkit2gtk-4.0)
IF (NOT WEBKIT_FOUND)
GNC_PKG_CHECK_MODULES (WEBKIT REQUIRED webkit2gtk-3.0)
@@ -188,7 +188,7 @@ ELSE (WIN32)
ELSE (NOT WEBKIT_FOUND)
SET(WEBKIT2_4 1)
ENDIF (NOT WEBKIT_FOUND)
-ENDIF (WIN32)
+ENDIF (WIN32 OR APPLE)
IF (WITH_GNUCASH)
GNC_PKG_CHECK_MODULES (GTK3 REQUIRED gtk+-3.0>=3.10.0)
commit 281421d5cfe4c2e36620f61a48d579ebccbdef5c
Author: John Ralls <jralls at ceridwen.us>
Date: Sat Oct 14 14:18:07 2017 -0700
HTML: Connect to load-failed and resource-load signals.
Useful diagnostics for reports not drawing.
diff --git a/gnucash/html/gnc-html-webkit1.c b/gnucash/html/gnc-html-webkit1.c
index eb0ec52..565d647 100644
--- a/gnucash/html/gnc-html-webkit1.c
+++ b/gnucash/html/gnc-html-webkit1.c
@@ -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
diff --git a/gnucash/html/gnc-html-webkit2.c b/gnucash/html/gnc-html-webkit2.c
index 502032e..abd402b 100644
--- a/gnucash/html/gnc-html-webkit2.c
+++ b/gnucash/html/gnc-html-webkit2.c
@@ -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
commit 97b09b5df500b036acc32ed5f03cd7088dccbde3
Author: John Ralls <jralls at ceridwen.us>
Date: Fri Oct 13 14:30:46 2017 -0700
Fix html temp-file URI.
The file path must start with a / anyway so we were getting URIs that
looked like "file:////foo/bar".
diff --git a/gnucash/html/gnc-html-webkit1.c b/gnucash/html/gnc-html-webkit1.c
index b7b1570..eb0ec52 100644
--- a/gnucash/html/gnc-html-webkit1.c
+++ b/gnucash/html/gnc-html-webkit1.c
@@ -764,7 +764,7 @@ impl_webkit_show_data( GncHtml* self, const gchar* data, int datalen )
fd = g_mkstemp( filename );
impl_webkit_export_to_file( self, filename );
close( fd );
- uri = g_strdup_printf( "file:///%s", filename );
+ uri = g_strdup_printf( "file://%s", filename );
g_free(filename);
DEBUG("Loading uri '%s'", uri);
webkit_web_view_load_uri( priv->web_view, uri );
diff --git a/gnucash/html/gnc-html-webkit2.c b/gnucash/html/gnc-html-webkit2.c
index a5ae409..502032e 100644
--- a/gnucash/html/gnc-html-webkit2.c
+++ b/gnucash/html/gnc-html-webkit2.c
@@ -742,7 +742,7 @@ impl_webkit_show_data( GncHtml* self, const gchar* data, int datalen )
fd = g_mkstemp( filename );
impl_webkit_export_to_file( self, filename );
close( fd );
- uri = g_strdup_printf( "file:///%s", filename );
+ uri = g_strdup_printf( "file://%s", filename );
g_free(filename);
DEBUG("Loading uri '%s'", uri);
webkit_web_view_load_uri( priv->web_view, uri );
Summary of changes:
CMakeLists.txt | 6 ++---
gnucash/html/gnc-html-webkit1.c | 35 ++++++++++++++++++++++++++-
gnucash/html/gnc-html-webkit2.c | 52 ++++++++++++++++++++++++++++++++++-------
3 files changed, 81 insertions(+), 12 deletions(-)
More information about the gnucash-changes
mailing list