Index: embed/webkit/webkit-embed.cpp
===================================================================
--- embed/webkit/webkit-embed.cpp	(revision 7210)
+++ embed/webkit/webkit-embed.cpp	(working copy)
@@ -39,6 +39,13 @@ static void	webkit_embed_init		(WebkitEm
 static void	webkit_embed_destroy		(GtkObject *object);
 static void	webkit_embed_finalize		(GObject *object);
 static void	ephy_embed_iface_init		(EphyEmbedIface *iface);
+static void	load_started_cb 		(WebKitGtkPage *page,
+						WebKitGtkFrame *frame,
+						WebkitEmbed *wembed);
+static void	load_finished_cb 		(WebKitGtkPage *page,
+						WebKitGtkFrame *frame,
+						gboolean *loaded,
+						WebkitEmbed *wembed);
 
 #if 0
 static void webkit_embed_location_changed_cb	(GtkMozEmbed *embed,
@@ -151,12 +158,16 @@ webkit_embed_init (WebkitEmbed *embed)
   gtk_container_add (GTK_CONTAINER (embed), GTK_WIDGET (page));
   gtk_widget_show (GTK_WIDGET (page));
 
-#if 0
-  g_signal_connect (G_OBJECT (page), "title-changed",
+/*  g_signal_connect (G_OBJECT (page), "title-changed",
                     G_CALLBACK (title_changed_cb), page);
   g_signal_connect (G_OBJECT (page), "load-progress-changed",
                     G_CALLBACK (load_progress_changed), page);
-#endif
+ */
+  g_signal_connect (G_OBJECT (page), "load-started",
+                    G_CALLBACK (load_started_cb), embed);
+
+  g_signal_connect (G_OBJECT (page), "load-finished",
+                    G_CALLBACK (load_finished_cb), embed);
 }
 
 static void
@@ -172,6 +183,26 @@ webkit_embed_finalize (GObject *object)
 }
 
 static void
+load_finished_cb (WebKitGtkPage *page,
+		WebKitGtkFrame *frame,
+		gboolean *loaded,
+		WebkitEmbed *wembed)
+{
+  g_debug("load-finished, emitting dom-content-loaded");
+  g_signal_emit_by_name (wembed, "dom-content-loaded", NULL);
+}
+
+static void
+load_started_cb (WebKitGtkPage *page,
+		WebKitGtkFrame *frame,
+		WebkitEmbed *wembed)
+{
+  g_debug("load-started, emitting ge_location");
+  g_signal_emit_by_name (wembed, "ge_location", NULL);
+}
+		
+
+static void
 impl_load_url (EphyEmbed *embed,
                const char *url)
 {
@@ -205,14 +236,18 @@ impl_stop_load (EphyEmbed *embed)
 static gboolean
 impl_can_go_back (EphyEmbed *embed)
 {
-  //  return webkit_gtk_page_can_go_backward (WEBKIT_EMBED (embed)->priv->page);
-  return FALSE;
+  return webkit_gtk_page_can_go_backward (WEBKIT_EMBED (embed)->priv->page);
 }
 
 static gboolean
 impl_can_go_forward (EphyEmbed *embed)
 {
-  //  return webkit_gtk_page_can_go_forward (WEBKIT_EMBED (embed)->priv->page);
+  return webkit_gtk_page_can_go_forward (WEBKIT_EMBED (embed)->priv->page);
+}
+
+static gboolean
+impl_can_go_up (EphyEmbed *embed)
+{
   return FALSE;
 }
 
@@ -410,7 +445,7 @@ ephy_embed_iface_init (EphyEmbedIface *i
   iface->stop_load = impl_stop_load;
   iface->can_go_back = impl_can_go_back;
   iface->can_go_forward = impl_can_go_forward;
-  //  iface->can_go_up = impl_can_go_up;
+  iface->can_go_up = impl_can_go_up;
   iface->get_go_up_list = impl_get_go_up_list;
   iface->go_back = impl_go_back;
   iface->go_forward = impl_go_forward;
