[devhelp/webkit2] Initial WebKit2 port



commit 41136ef0f2aef53219de0fed4695963a7e06c7f2
Author: Carlos Garcia Campos <cgarcia igalia com>
Date:   Thu Jan 19 15:21:22 2012 +0100

    Initial WebKit2 port
    
    It builds and works, but some features haven't been ported yet so they
    just don't work.

 configure.ac            |    4 +-
 src/dh-assistant-view.c |   10 +++---
 src/dh-assistant-view.h |    2 +-
 src/dh-assistant.c      |   12 +------
 src/dh-util.c           |    2 +
 src/dh-util.h           |    2 +-
 src/dh-window.c         |   74 ++++++++++++++++++++++++-----------------------
 7 files changed, 51 insertions(+), 55 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 8967493..63946bd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -60,7 +60,7 @@ AM_CONDITIONAL(GCONF_SCHEMAS_INSTALL, test "x$IGE_PLATFORM" = xx11)
 PKG_CHECK_MODULES(DEVHELP, [
   gthread-2.0 >= 2.10.0
   gtk+-3.0 >= 3.0.2
-  webkitgtk-3.0
+  webkit2gtk-3.0
   glib-2.0 >= 2.25.11
 ])
 
@@ -68,7 +68,7 @@ PKG_CHECK_MODULES(LIBDEVHELP, [
   gtk+-3.0 >= 3.0.2
   $gconf_pkgconfig
   $gtkmacintegration_pkgconfig
-  webkitgtk-3.0
+  webkit2gtk-3.0
 ])
 
 AC_ARG_WITH(zlib, [  --with-zlib=DIR         use zlib in DIR], zlibdir=$with_zlib)
diff --git a/src/dh-assistant-view.c b/src/dh-assistant-view.c
index 7430b73..b2022c0 100644
--- a/src/dh-assistant-view.c
+++ b/src/dh-assistant-view.c
@@ -22,7 +22,6 @@
 #include "config.h"
 #include <string.h>
 #include <glib/gi18n-lib.h>
-#include <webkit/webkit.h>
 #include "dh-assistant-view.h"
 #include "dh-link.h"
 #include "dh-util.h"
@@ -60,6 +59,7 @@ view_finalize (GObject *object)
         G_OBJECT_CLASS (dh_assistant_view_parent_class)->finalize (object);
 }
 
+#if 0 /* Policy Client */
 static WebKitNavigationResponse
 assistant_navigation_requested (WebKitWebView        *web_view,
                                 WebKitWebFrame       *frame,
@@ -87,6 +87,7 @@ assistant_navigation_requested (WebKitWebView        *web_view,
 
         return WEBKIT_NAVIGATION_RESPONSE_IGNORE;
 }
+#endif
 
 static gboolean
 assistant_button_press_event (GtkWidget      *widget,
@@ -110,8 +111,9 @@ dh_assistant_view_class_init (DhAssistantViewClass* klass)
         object_class->finalize = view_finalize;
 
         widget_class->button_press_event = assistant_button_press_event;
-
+#if 0 /* Policy Client */
         web_view_class->navigation_requested = assistant_navigation_requested;
+#endif
 
         g_type_class_add_private (klass, sizeof (DhAssistantViewPriv));
 }
@@ -342,11 +344,9 @@ dh_assistant_view_set_link (DhAssistantView *view,
                 g_free (javascript);
 
                 priv->snippet_loaded = FALSE;
-                webkit_web_view_load_string (
+                webkit_web_view_load_html (
                         WEBKIT_WEB_VIEW (view),
                         html,
-                        "text/html",
-                        NULL,
                         filename);
 
                 g_free (html);
diff --git a/src/dh-assistant-view.h b/src/dh-assistant-view.h
index 2d70eac..d7b8740 100644
--- a/src/dh-assistant-view.h
+++ b/src/dh-assistant-view.h
@@ -21,7 +21,7 @@
 #ifndef __DH_ASSISTANT_VIEW_H__
 #define __DH_ASSISTANT_VIEW_H__
 
-#include <webkit/webkit.h>
+#include <webkit2/webkit2.h>
 #include "dh-base.h"
 #include "dh-link.h"
 
diff --git a/src/dh-assistant.c b/src/dh-assistant.c
index c3e7f63..2ab64d3 100644
--- a/src/dh-assistant.c
+++ b/src/dh-assistant.c
@@ -64,7 +64,6 @@ static void
 dh_assistant_init (DhAssistant *assistant)
 {
         DhAssistantPriv *priv = GET_PRIVATE (assistant);
-        GtkWidget       *scrolled_window;
 
         priv->main_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
         gtk_widget_show (priv->main_box);
@@ -80,16 +79,9 @@ dh_assistant_init (DhAssistant *assistant)
                           G_CALLBACK (assistant_key_press_event_cb),
                           assistant);
 
-        scrolled_window = gtk_scrolled_window_new (NULL, NULL);
-        gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
-                                        GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
-
-        gtk_container_add (GTK_CONTAINER (scrolled_window), priv->view);
-
-        gtk_widget_show_all (scrolled_window);
-
         gtk_box_pack_start (GTK_BOX (priv->main_box),
-                            scrolled_window, TRUE, TRUE, 0);
+                            priv->view, TRUE, TRUE, 0);
+        gtk_widget_show (priv->view);
 
         dh_util_state_manage_window (GTK_WINDOW (assistant),
                                      "assistant/window");
diff --git a/src/dh-util.c b/src/dh-util.c
index b529567..0447b1f 100644
--- a/src/dh-util.c
+++ b/src/dh-util.c
@@ -669,6 +669,7 @@ view_destroy_cb (GtkWidget *view,
 static void
 view_setup_fonts (WebKitWebView *view)
 {
+#if 0 /* WebKit Settings */
         IgeConf           *conf;
         WebKitWebSettings *settings;
         gboolean           use_system_fonts;
@@ -700,6 +701,7 @@ view_setup_fonts (WebKitWebView *view)
 
         g_free (variable_name);
         g_free (fixed_name);
+#endif
 }
 
 static void
diff --git a/src/dh-util.h b/src/dh-util.h
index 24835bb..ba87b30 100644
--- a/src/dh-util.h
+++ b/src/dh-util.h
@@ -23,7 +23,7 @@
 #define __DH_UTIL_H__
 
 #include <gtk/gtk.h>
-#include <webkit/webkit.h>
+#include <webkit2/webkit2.h>
 #include "dh-link.h"
 
 G_BEGIN_DECLS
diff --git a/src/dh-window.c b/src/dh-window.c
index 1454760..91752da 100644
--- a/src/dh-window.c
+++ b/src/dh-window.c
@@ -30,7 +30,7 @@
 #include <glib/gi18n-lib.h>
 #include <gdk/gdkkeysyms.h>
 #include <gtk/gtk.h>
-#include <webkit/webkit.h>
+#include <webkit2/webkit2.h>
 
 #ifdef GDK_WINDOWING_QUARTZ
 #include <gtkosxapplication.h>
@@ -189,10 +189,12 @@ static void
 window_activate_print (GtkAction *action,
                        DhWindow  *window)
 {
+#if 0 /* Printing API: https://bugs.webkit.org/show_bug.cgi?id=75544 */
     WebKitWebView *web_view;
 
     web_view = window_get_active_web_view (window);
     webkit_web_view_execute_script (web_view, "print();");
+#endif
 }
 
 static void
@@ -254,10 +256,12 @@ window_activate_copy (GtkAction *action,
                 gtk_clipboard_set_text (clipboard,
                                 dh_link_get_name(priv->selected_search_link), -1);
         } else {
+#if 0 /* Editor API */
                 WebKitWebView *web_view;
 
                 web_view = window_get_active_web_view (window);
                 webkit_web_view_copy_clipboard (web_view);
+#endif
         }
 }
 
@@ -265,6 +269,7 @@ static void
 window_activate_find (GtkAction *action,
                       DhWindow  *window)
 {
+#if 0 /* Find API: https://bugs.webkit.org/show_bug.cgi?id=76070 */
         DhWindowPriv  *priv;
         WebKitWebView *web_view;
 
@@ -275,6 +280,7 @@ window_activate_find (GtkAction *action,
         gtk_widget_grab_focus (priv->findbar);
 
         webkit_web_view_set_highlight_text_matches (web_view, TRUE);
+#endif
 }
 
 static int
@@ -1017,14 +1023,12 @@ window_web_view_switch_page_cb (GtkNotebook     *notebook,
         new_page = gtk_notebook_get_nth_page (notebook, new_page_num);
         if (new_page) {
                 WebKitWebView  *new_web_view;
-                WebKitWebFrame *web_frame;
                 const gchar    *location;
 
                 new_web_view = g_object_get_data (G_OBJECT (new_page), "web_view");
 
                 /* Sync the book tree. */
-                web_frame = webkit_web_view_get_main_frame (new_web_view);
-                location = webkit_web_frame_get_uri (web_frame);
+                location = webkit_web_view_get_uri (new_web_view);
 
                 if (location) {
                         dh_book_tree_select_uri (DH_BOOK_TREE (priv->book_tree),
@@ -1272,7 +1276,7 @@ find_library_equivalent (DhWindow    *window,
         return local_uri;
 }
 
-
+#if 0 /* Policy Client */
 static gboolean
 window_web_view_navigation_policy_decision_requested (WebKitWebView             *web_view,
                                                       WebKitWebFrame            *frame,
@@ -1324,14 +1328,14 @@ window_web_view_navigation_policy_decision_requested (WebKitWebView
 
         return FALSE;
 }
-
+#endif
 
 static gboolean
-window_web_view_load_error_cb (WebKitWebView  *web_view,
-                               WebKitWebFrame *frame,
-                               gchar          *uri,
-                               gpointer       *web_error,
-                               DhWindow       *window)
+window_web_view_load_failed_cb (WebKitWebView   *web_view,
+                                WebKitLoadEvent  load_event,
+                                const gchar     *uri,
+                                GError          *web_error,
+                                DhWindow        *window)
 {
         GtkWidget *info_bar;
         GtkWidget *content_area;
@@ -1423,11 +1427,12 @@ window_check_history (DhWindow      *window,
 }
 
 static void
-window_web_view_title_changed_cb (WebKitWebView  *web_view,
-                                  WebKitWebFrame *web_frame,
-                                  const gchar    *title,
-                                  DhWindow       *window)
+window_web_view_title_changed_cb (WebKitWebView *web_view,
+                                  GParamSpec    *param_spec,
+                                  DhWindow      *window)
 {
+        const gchar *title = webkit_web_view_get_title (web_view);
+
         if (web_view == window_get_active_web_view (window)) {
                 window_update_title (window, web_view, title);
         }
@@ -1450,6 +1455,7 @@ window_web_view_button_press_event_cb (WebKitWebView  *web_view,
 static gboolean
 do_search (DhWindow *window)
 {
+#if 0 /* Find API: https://bugs.webkit.org/show_bug.cgi?id=76070 */
         DhWindowPriv  *priv = window->priv;
         WebKitWebView *web_view;
 
@@ -1468,6 +1474,7 @@ do_search (DhWindow *window)
                 web_view, egg_find_bar_get_search_string (EGG_FIND_BAR (priv->findbar)),
                 egg_find_bar_get_case_sensitive (EGG_FIND_BAR (priv->findbar)),
                 TRUE, TRUE);
+#endif
 
 	return FALSE;
 }
@@ -1501,10 +1508,11 @@ window_find_case_changed_cb (GObject    *object,
 
         string = egg_find_bar_get_search_string (EGG_FIND_BAR (priv->findbar));
         case_sensitive = egg_find_bar_get_case_sensitive (EGG_FIND_BAR (priv->findbar));
-
+#if 0 /* Find API: https://bugs.webkit.org/show_bug.cgi?id=76070 */
         webkit_web_view_unmark_text_matches (view);
         webkit_web_view_mark_text_matches (view, string, case_sensitive, 0);
         webkit_web_view_set_highlight_text_matches (view, TRUE);
+#endif
 }
 
 static void
@@ -1522,8 +1530,9 @@ window_find_next_cb (GtkEntry *entry,
 
         string = egg_find_bar_get_search_string (EGG_FIND_BAR (priv->findbar));
         case_sensitive = egg_find_bar_get_case_sensitive (EGG_FIND_BAR (priv->findbar));
-
+#if 0 /* Find API: https://bugs.webkit.org/show_bug.cgi?id=76070 */
         webkit_web_view_search_text (view, string, case_sensitive, TRUE, TRUE);
+#endif
 }
 
 static void
@@ -1541,8 +1550,9 @@ window_find_previous_cb (GtkEntry *entry,
 
         string = egg_find_bar_get_search_string (EGG_FIND_BAR (priv->findbar));
         case_sensitive = egg_find_bar_get_case_sensitive (EGG_FIND_BAR (priv->findbar));
-
+#if 0 /* Find API: https://bugs.webkit.org/show_bug.cgi?id=76070 */
         webkit_web_view_search_text (view, string, case_sensitive, FALSE, TRUE);
+#endif
 }
 
 static void
@@ -1555,8 +1565,9 @@ window_findbar_close_cb (GtkWidget *widget,
         view = window_get_active_web_view (window);
 
         gtk_widget_hide (priv->findbar);
-
+#if 0 /* Find API: https://bugs.webkit.org/show_bug.cgi?id=76070 */
         webkit_web_view_set_highlight_text_matches (view, FALSE);
+#endif
 }
 
 #if 0
@@ -1603,7 +1614,6 @@ window_open_new_tab (DhWindow    *window,
         DhWindowPriv *priv;
         GtkWidget    *view;
         GtkWidget    *vbox;
-        GtkWidget    *scrolled_window;
         GtkWidget    *label;
         gint          num;
         GtkWidget    *info_bar;
@@ -1646,28 +1656,24 @@ window_open_new_tab (DhWindow    *window,
 
         gtk_box_pack_start (GTK_BOX(vbox), info_bar, FALSE, TRUE, 0);
 
-        scrolled_window = gtk_scrolled_window_new (NULL, NULL);
-        gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
-                                        GTK_POLICY_AUTOMATIC,
-                                        GTK_POLICY_AUTOMATIC);
-        gtk_container_add (GTK_CONTAINER (scrolled_window), view);
-        gtk_widget_show (scrolled_window);
-        gtk_box_pack_start (GTK_BOX(vbox), scrolled_window, TRUE, TRUE, 0);
+        gtk_box_pack_start (GTK_BOX(vbox), view, TRUE, TRUE, 0);
 
         label = window_new_tab_label (window, _("Empty Page"), vbox);
         gtk_widget_show_all (label);
 
-        g_signal_connect (view, "title-changed",
+        g_signal_connect (view, "notify::title",
                           G_CALLBACK (window_web_view_title_changed_cb),
                           window);
         g_signal_connect (view, "button-press-event",
                           G_CALLBACK (window_web_view_button_press_event_cb),
                           window);
+#if 0 /* Policy Client */
         g_signal_connect (view, "navigation-policy-decision-requested",
                           G_CALLBACK (window_web_view_navigation_policy_decision_requested),
                           window);
-        g_signal_connect (view, "load-error",
-                          G_CALLBACK (window_web_view_load_error_cb),
+#endif
+        g_signal_connect (view, "load-failed",
+                          G_CALLBACK (window_web_view_load_failed_cb),
                           window);
 
         num = gtk_notebook_append_page (GTK_NOTEBOOK (priv->notebook),
@@ -1844,12 +1850,8 @@ window_update_title (DhWindow      *window,
 
         priv = window->priv;
 
-        if (!web_view_title) {
-                WebKitWebFrame *web_frame;
-
-                web_frame = webkit_web_view_get_main_frame (web_view);
-                web_view_title = webkit_web_frame_get_title (web_frame);
-        }
+        if (!web_view_title)
+                web_view_title = webkit_web_view_get_title (web_view);
 
         if (web_view_title && *web_view_title == '\0') {
                 web_view_title = NULL;



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