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