[zenity] Port to webkit2gtk



commit ec0a74004526eab4d3bfba8f841a5b357026d4f5
Author: Hristo Venev <hristo venev name>
Date:   Sun May 24 19:38:25 2015 +0300

    Port to webkit2gtk

 configure.ac |    4 +-
 src/text.c   |   70 +++++++++++++++++++++++----------------------------------
 2 files changed, 30 insertions(+), 44 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 3bc330d..362a493 100644
--- a/configure.ac
+++ b/configure.ac
@@ -80,7 +80,7 @@ fi
 # webkit check
 # *******************************
 
-WEBKITGTK_REQUIRED=1.4.0
+WEBKITGTK_REQUIRED=2.8.1
 
 AC_ARG_ENABLE([webkitgtk],
               [AS_HELP_STRING([--enable-webkitgtk],
@@ -89,7 +89,7 @@ AC_ARG_ENABLE([webkitgtk],
               [enable_webkitgtk=yes])
 
 if test x$enable_webkitgtk = xyes; then
-        PKG_CHECK_MODULES([WEBKIT], [webkitgtk-3.0 >= $WEBKITGTK_REQUIRED],
+        PKG_CHECK_MODULES([WEBKIT], [webkit2gtk-4.0 >= $WEBKITGTK_REQUIRED],
                           [HAVE_WEBKITGTK="yes"],[HAVE_WEBKITGTK="no"])
         AC_SUBST([WEBKIT_CFLAGS])
         AC_SUBST([WEBKIT_LIBS])
diff --git a/src/text.c b/src/text.c
index 581b366..5657f21 100644
--- a/src/text.c
+++ b/src/text.c
@@ -28,7 +28,7 @@
 #include "util.h"
 
 #ifdef HAVE_WEBKITGTK
-#include <webkit/webkit.h>
+#include <webkit2/webkit2.h>
 #endif
 
 static ZenityTextData  *zen_text_data;
@@ -40,12 +40,9 @@ static void zenity_text_toggle_button (GtkToggleButton *button, gpointer data);
 static void
 zenity_configure_webkit (WebKitWebView *web_view)
 {
-  WebKitWebSettings *settings;
+  WebKitSettings *settings;
   settings = webkit_web_view_get_settings(web_view);
-  g_object_set(G_OBJECT(settings), "enable-scripts",     FALSE, NULL);
   g_object_set(G_OBJECT(settings), "auto-load-images",   TRUE, NULL);
-  g_object_set(G_OBJECT(settings), "auto-resize-window", TRUE, NULL);
-  g_object_set(G_OBJECT(settings), "auto-shrink-images", TRUE, NULL);
   /*
     Stick to the defaults
     "cursive-font-family"      gchar*                : Read / Write / Construct
@@ -56,35 +53,21 @@ zenity_configure_webkit (WebKitWebView *web_view)
     "editing-behavior"         WebKitEditingBehavior : Read / Write / Construct
   */
   g_object_set(G_OBJECT(settings), "enable-caret-browsing",       FALSE, NULL);
-  g_object_set(G_OBJECT(settings), "enable-default-context-menu", FALSE, NULL);
   g_object_set(G_OBJECT(settings), "enable-developer-extras",     FALSE, NULL);
-  /* unexisting property? g_object_set(G_OBJECT(settings), "enable-dns-prefetching",      FALSE, NULL);*/
-  g_object_set(G_OBJECT(settings), "enable-dom-paste",            FALSE, NULL);
-  g_object_set(G_OBJECT(settings), "enable-file-access-from-file-uris", TRUE, NULL);
-  /* unexisting property? g_object_set(G_OBJECT(settings), "enable-frame-flattening",     FALSE, NULL);*/
-  /* unexisting property? g_object_set(G_OBJECT(settings), "enable-fullscreen",           FALSE, NULL);*/
+  g_object_set(G_OBJECT(settings), "enable-fullscreen",           FALSE, NULL);
   g_object_set(G_OBJECT(settings), "enable-html5-database",       FALSE, NULL);
   g_object_set(G_OBJECT(settings), "enable-html5-local-storage",  FALSE, NULL);
-  /* unexisting property? g_object_set(G_OBJECT(settings), "enable-hyperlink-auditing",   FALSE, NULL);*/
-  g_object_set(G_OBJECT(settings), "enable-java-applet",          FALSE, NULL);
+  g_object_set(G_OBJECT(settings), "enable-java",                 FALSE, NULL);
+  g_object_set(G_OBJECT(settings), "enable-javascript",           FALSE, NULL);
   g_object_set(G_OBJECT(settings), "enable-offline-web-application-cache", FALSE, NULL);
   g_object_set(G_OBJECT(settings), "enable-page-cache",           FALSE, NULL);
   g_object_set(G_OBJECT(settings), "enable-plugins",              FALSE, NULL);
   g_object_set(G_OBJECT(settings), "enable-private-browsing",     TRUE, NULL);
-  g_object_set(G_OBJECT(settings), "enable-scripts",              FALSE, NULL);
-  g_object_set(G_OBJECT(settings), "enable-site-specific-quirks", FALSE, NULL);
-  g_object_set(G_OBJECT(settings), "enable-spatial-navigation",   FALSE, NULL);
-  g_object_set(G_OBJECT(settings), "enable-spell-checking",       FALSE, NULL);
-  g_object_set(G_OBJECT(settings), "enable-universal-access-from-file-uris", FALSE, NULL);
-  g_object_set(G_OBJECT(settings), "enable-xss-auditor",          TRUE, NULL);
   /*
     Stick to defaults
     "enforce-96-dpi"           gboolean              : Read / Write / Construct
     "fantasy-font-family"      gchar*                : Read / Write / Construct
   */
-  g_object_set(G_OBJECT(settings), "javascript-can-access-clipboard",           FALSE, NULL);
-  g_object_set(G_OBJECT(settings), "javascript-can-open-windows-automatically", FALSE, NULL);
-  g_object_set(G_OBJECT(settings), "javascript-can-open-windows-automatically", FALSE, NULL);
   /*
     Stick to defaults
     "minimum-font-size"        gint                  : Read / Write / Construct
@@ -96,7 +79,7 @@ zenity_configure_webkit (WebKitWebView *web_view)
     "serif-font-family"        gchar*                : Read / Write / Construct
     "spell-checking-languages" gchar*                : Read / Write / Construct
   */
-  g_object_set(G_OBJECT(settings), "tab-key-cycles-through-elements", FALSE, NULL);
+  g_object_set(G_OBJECT(settings), "enable-tabs-to-links", FALSE, NULL);
   g_object_set(G_OBJECT(settings), "user-agent",
                "Zenity with WebKit (KHTML, like Gecko) support", NULL);
   /*
@@ -107,29 +90,32 @@ zenity_configure_webkit (WebKitWebView *web_view)
 }
 
 static gboolean
-zenity_text_webview_decision_request (WebKitWebView             *webkitwebview,
-                                      WebKitWebFrame            *frame,
-                                      WebKitNetworkRequest      *request,
-                                      WebKitWebNavigationAction *navigation_action,
-                                      WebKitWebPolicyDecision   *policy_decision,
-                                      gpointer                   user_data)
+zenity_text_webview_decision_request (WebKitWebView *web_view,
+                                      WebKitPolicyDecision *decision,
+                                      WebKitPolicyDecisionType type)
 {
-  webkit_web_policy_decision_ignore (policy_decision);
-  if (!zen_text_data->no_interaction &&
-      webkit_web_navigation_action_get_reason (navigation_action) == 
WEBKIT_WEB_NAVIGATION_REASON_LINK_CLICKED) {
-    g_app_info_launch_default_for_uri (webkit_web_navigation_action_get_original_uri(navigation_action),
-                                       NULL, NULL);
+  if (type == WEBKIT_POLICY_DECISION_TYPE_NAVIGATION_ACTION) {
+    WebKitNavigationPolicyDecision *navigation_decision = WEBKIT_NAVIGATION_POLICY_DECISION (decision);
+    WebKitNavigationAction *navigation_action = 
webkit_navigation_policy_decision_get_navigation_action(navigation_decision);
+    webkit_policy_decision_ignore (decision);
+    if (!zen_text_data->no_interaction &&
+        webkit_navigation_action_get_navigation_type (navigation_action) == 
WEBKIT_NAVIGATION_TYPE_LINK_CLICKED) {
+      WebKitURIRequest *request = webkit_navigation_action_get_request(navigation_action);
+      g_app_info_launch_default_for_uri (webkit_uri_request_get_uri(request), NULL, NULL);
+    }
   }
   return TRUE;
 }
 
 static void
-zenity_text_webview_load_finished (WebKitWebView  *webkitwebview,
-                                   WebKitWebFrame *frame,
-                                   gpointer        user_data)
+zenity_text_webview_load_changed (WebKitWebView  *webkitwebview,
+                                  WebKitLoadEvent event,
+                                  gpointer        user_data)
 {
-  g_signal_connect (G_OBJECT (webkitwebview), "navigation-policy-decision-requested",
-                    G_CALLBACK (zenity_text_webview_decision_request), NULL);
+  if (event == WEBKIT_LOAD_FINISHED) {
+    g_signal_connect (G_OBJECT (webkitwebview), "decide-policy",
+                      G_CALLBACK (zenity_text_webview_decision_request), NULL);
+  }
 }
 
 #endif
@@ -337,7 +323,7 @@ zenity_text (ZenityData *data, ZenityTextData *text_data)
       gtk_text_buffer_get_start_iter (text_buffer, &start_iter);
       gtk_text_buffer_get_end_iter (text_buffer, &end_iter);
       content = gtk_text_buffer_get_text (text_buffer, &start_iter, &end_iter, TRUE);
-      webkit_web_view_load_string (WEBKIT_WEB_VIEW(web_kit), content, "text/html", "UTF-8", dirname_uri);
+      webkit_web_view_load_html (WEBKIT_WEB_VIEW(web_kit), content, dirname_uri);
       g_free (dirname_uri);
       g_free (content);
     }
@@ -345,8 +331,8 @@ zenity_text (ZenityData *data, ZenityTextData *text_data)
     // We don't want user to click on links and navigate to another page.
     // So, when the page finishes loading, we take handle of the requests.
 
-    g_signal_connect (G_OBJECT (web_kit), "document-load-finished",
-                      G_CALLBACK (zenity_text_webview_load_finished), NULL); 
+    g_signal_connect (G_OBJECT (web_kit), "load-changed",
+                      G_CALLBACK (zenity_text_webview_load_changed), NULL);
 
     gtk_widget_destroy (GTK_WIDGET (text_view));
     gtk_container_add (GTK_CONTAINER(scrolled_window), web_kit);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]