0cf5b7ffb5cb6386e0d6a9c57234588c1ccc4fdb
diff --git a/embed/ephy-embed.c b/embed/ephy-embed.c
index 99e194e..3f052e4 100644
--- a/embed/ephy-embed.c
+++ b/embed/ephy-embed.c
@@ -467,7 +467,18 @@ ephy_embed_base_init (gpointer g_class)
                                                                          EPHY_TYPE_EMBED_NAVIGATION_FLAGS,
                                                                          0,
                                                                          G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));
-
+                g_object_interface_install_property (g_class,
+                                                     g_param_spec_string ("address",
+                                                                          "Address",
+                                                                          "The embed's address",
+                                                                          "",
+                                                                          G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));
+                g_object_interface_install_property (g_class,
+                                                     g_param_spec_string ("typed-address",
+                                                                          "Typed Address",
+                                                                          "The typed address",
+                                                                          "",
+                                                                          G_PARAM_READWRITE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));
 		initialized = TRUE;
 	}
 
@@ -1152,3 +1163,65 @@ ephy_embed_update_navigation_flags (EphyEmbed *embed)
 	return iface->update_navigation_flags (embed);
 }
 
+/**
+ * ephy_embed_get_typed_address:
+ * @embed: an #EphyEmbed
+ *
+ * Returns the text that @embed's #EphyWindow will display in its location toolbar
+ * entry when @embed is selected.
+ *
+ * This is not guaranteed to be the same as @embed's location,
+ * available through ephy_embed_get_location(). As the user types a new address
+ * into the location entry, ephy_embed_get_location()'s returned string will
+ * change.
+ *
+ * Return value: @embed's #EphyWindow's location entry when @embed is selected
+ **/
+const char *
+ephy_embed_get_typed_address (EphyEmbed *embed)
+{
+	EphyEmbedIface *iface = EPHY_EMBED_GET_IFACE (embed);
+	return iface->get_typed_address (embed);
+}
+
+/**
+ * ephy_embed_set_typed_address:
+ * @embed: an #EphyEmbed
+ * @address: the new typed address, or %NULL to clear it
+ * @expire: when to expire this address_expire
+ * 
+ * Sets the text that @embed's #EphyWindow will display in its location toolbar
+ * entry when @embed is selected.
+ **/
+void
+ephy_embed_set_typed_address (EphyEmbed *embed,
+                              const char *address,
+                              EphyEmbedAddressExpire expire)
+{
+	EphyEmbedIface *iface = EPHY_EMBED_GET_IFACE (embed);
+	return iface->set_typed_address (embed, address, expire);
+}
+
+/**
+ * ephy_embed_get_address:
+ * @embed: an #EphyEmbed
+ *
+ * Returns the address of the currently loaded page.
+ *
+ * Return value: @embed's address. Will never be %NULL.
+ **/
+const char *
+ephy_embed_get_address (EphyEmbed *embed)
+{
+	EphyEmbedIface *iface = EPHY_EMBED_GET_IFACE (embed);
+	return iface->get_address (embed);
+}
+
+void
+ephy_embed_set_address (EphyEmbed *embed,
+                        char *address)
+{
+	EphyEmbedIface *iface = EPHY_EMBED_GET_IFACE (embed);
+	return iface->set_address (embed, address);
+}
+
diff --git a/embed/ephy-embed.h b/embed/ephy-embed.h
index 2c64234..b56bfe9 100644
--- a/embed/ephy-embed.h
+++ b/embed/ephy-embed.h
@@ -108,6 +108,13 @@ typedef enum
 	EPHY_EMBED_NAV_FORWARD	= 1 << 2
 } EphyEmbedNavigationFlags;
 
+typedef enum
+{
+	EPHY_EMBED_ADDRESS_EXPIRE_NOW,
+	EPHY_EMBED_ADDRESS_EXPIRE_NEXT,
+	EPHY_EMBED_ADDRESS_EXPIRE_CURRENT
+} EphyEmbedAddressExpire;
+
 struct _EphyEmbedIface
 {
 	GTypeInterface base_iface;
@@ -242,6 +249,12 @@ struct _EphyEmbedIface
 	void		   (* set_load_status)		(EphyEmbed *embed, gboolean percent);
 	void		   (* update_navigation_flags)	(EphyEmbed *embed);
 	EphyEmbedNavigationFlags (* get_navigation_flags) (EphyEmbed *embed);
+	const char *	   (* get_typed_address)	(EphyEmbed *embed);
+	void		   (* set_typed_address)	(EphyEmbed *embed,
+							 const char *address,
+							 EphyEmbedAddressExpire expire);
+        const char *       (* get_address)              (EphyEmbed *embed);
+        void               (* set_address)              (EphyEmbed *embed, char *address);
 };
 
 GType		  ephy_embed_net_state_get_type		(void);
@@ -350,6 +363,15 @@ void		 ephy_embed_set_load_status		(EphyEmbed *embed, gboolean status); /* FIXME
 void		 ephy_embed_update_navigation_flags	(EphyEmbed *embed); /* FIXME: remove me */
 EphyEmbedNavigationFlags ephy_embed_get_navigation_flags (EphyEmbed *embed);
 
+/* Typed address */
+const char	 *ephy_embed_get_typed_address		(EphyEmbed *embed);
+void		 ephy_embed_set_typed_address		(EphyEmbed *embed,
+							 const char *address,
+							 EphyEmbedAddressExpire expire);
+/* Address */
+const char *     ephy_embed_get_address                 (EphyEmbed *embed);
+void             ephy_embed_set_address                 (EphyEmbed *embed, char *address); /* FIXME: remove me */
+
 /* Encoding */
 char		 *ephy_embed_get_encoding		(EphyEmbed *embed);
 
diff --git a/embed/mozilla/mozilla-embed.cpp b/embed/mozilla/mozilla-embed.cpp
index f2c9908..d0601b1 100644
--- a/embed/mozilla/mozilla-embed.cpp
+++ b/embed/mozilla/mozilla-embed.cpp
@@ -83,6 +83,9 @@ static void mozilla_embed_document_type_cb	(EphyEmbed *embed,
 static void mozilla_embed_zoom_change_cb	(EphyEmbed *embed,
 						 float zoom,
 						 MozillaEmbed *membed);
+static void impl_set_typed_address		(EphyEmbed *embed,
+						 const char *address,
+						 EphyEmbedAddressExpire expire);
 
 static EphyEmbedSecurityLevel mozilla_embed_security_level (PRUint32 state);
 
@@ -101,6 +104,8 @@ struct MozillaEmbedPrivate
 	EphyBrowser *browser;
 	MozillaEmbedLoadState load_state;
 
+	EphyEmbedAddressExpire address_expire;
+	/* guint address_expire : 2; ? */
 	EphyEmbedSecurityLevel security_level;
 	/* guint security_level : 3; ? */
 	EphyEmbedDocumentType document_type;
@@ -112,6 +117,8 @@ struct MozillaEmbedPrivate
 	guint is_setting_zoom : 1;
 
 	gint8 load_percent;
+	char *address;
+	char *typed_address;
 };
 
 #define WINDOWWATCHER_CONTRACTID "@mozilla.org/embedcomp/window-watcher;1"
@@ -119,11 +126,13 @@ struct MozillaEmbedPrivate
 enum
 {
 	PROP_0,
+	PROP_ADDRESS,
 	PROP_DOCUMENT_TYPE,
 	PROP_LOAD_PROGRESS,
 	PROP_LOAD_STATUS,
 	PROP_NAVIGATION,
 	PROP_SECURITY,
+	PROP_TYPED_ADDRESS,
 	PROP_ZOOM
 };
 
@@ -228,6 +237,9 @@ mozilla_embed_get_property (GObject *object,
 	
 	switch (prop_id)
 	{
+        case PROP_ADDRESS:
+                g_value_set_string (value, priv->address);
+                break;
 	case PROP_DOCUMENT_TYPE:
 		g_value_set_enum (value, priv->document_type);
 		break;
@@ -246,6 +258,9 @@ mozilla_embed_get_property (GObject *object,
 	case PROP_NAVIGATION:
 		g_value_set_flags (value, priv->nav_flags);
 		break;
+	case PROP_TYPED_ADDRESS:
+		g_value_set_string (value, priv->typed_address);
+		break;
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 		break;
@@ -261,6 +276,11 @@ mozilla_embed_set_property (GObject *object,
 {
 	switch (prop_id)
 	{
+	case PROP_TYPED_ADDRESS:
+		impl_set_typed_address (EPHY_EMBED (object), g_value_get_string (value),
+					EPHY_EMBED_ADDRESS_EXPIRE_NOW);
+		break;
+        case PROP_ADDRESS:
 	case PROP_DOCUMENT_TYPE:
 	case PROP_LOAD_PROGRESS:
 	case PROP_LOAD_STATUS:
@@ -307,8 +327,9 @@ mozilla_embed_class_init (MozillaEmbedClass *klass)
 static void
 mozilla_embed_init (MozillaEmbed *embed)
 {
-	embed->priv = MOZILLA_EMBED_GET_PRIVATE (embed);
-	embed->priv->browser = new EphyBrowser ();
+	MozillaEmbedPrivate *priv = embed->priv;
+	priv = MOZILLA_EMBED_GET_PRIVATE (embed);
+	priv->browser = new EphyBrowser ();
 
 	g_signal_connect_object (embed, "location",
 				 G_CALLBACK (mozilla_embed_location_changed_cb),
@@ -338,12 +359,14 @@ mozilla_embed_init (MozillaEmbed *embed)
 				 G_CALLBACK (mozilla_embed_zoom_change_cb),
 				 embed, (GConnectFlags) 0);
 
-	embed->priv->document_type = EPHY_EMBED_DOCUMENT_HTML;
-	embed->priv->security_level = EPHY_EMBED_STATE_IS_UNKNOWN;
-	embed->priv->zoom = 1.0;
-	embed->priv->is_setting_zoom = FALSE;
-	embed->priv->load_percent = 0;
-	embed->priv->is_loading = FALSE;
+	priv->document_type = EPHY_EMBED_DOCUMENT_HTML;
+	priv->security_level = EPHY_EMBED_STATE_IS_UNKNOWN;
+	priv->zoom = 1.0;
+	priv->is_setting_zoom = FALSE;
+	priv->load_percent = 0;
+	priv->is_loading = FALSE;
+	priv->typed_address = NULL;
+	priv->address_expire = EPHY_EMBED_ADDRESS_EXPIRE_NOW;
 }
 
 gpointer
@@ -378,6 +401,9 @@ mozilla_embed_finalize (GObject *object)
 		embed->priv->browser = nsnull;
 	}
 
+	g_free (embed->priv->address);
+	g_free (embed->priv->typed_address);
+
 	G_OBJECT_CLASS (mozilla_embed_parent_class)->finalize (object);
 
 	g_object_unref (embed_shell);
@@ -1003,6 +1029,70 @@ impl_get_navigation_flags (EphyEmbed *embed)
 	return priv->nav_flags;
 }
 
+static const char*
+impl_get_typed_address (EphyEmbed *embed)
+{
+	return MOZILLA_EMBED (embed)->priv->typed_address;
+}
+
+static void
+impl_set_typed_address (EphyEmbed *embed,
+			const char *address,
+			EphyEmbedAddressExpire expire)
+{
+       MozillaEmbedPrivate *priv = MOZILLA_EMBED (embed)->priv;
+ 
+       g_free (priv->typed_address);
+       priv->typed_address = g_strdup (address);
+
+       if (expire == EPHY_EMBED_ADDRESS_EXPIRE_CURRENT &&
+	   !priv->is_loading)
+       {
+	       priv->address_expire = EPHY_EMBED_ADDRESS_EXPIRE_NOW;
+       }
+       else
+       {
+	       priv->address_expire = expire;
+       }
+
+       g_object_notify (G_OBJECT (embed), "typed-address");
+}
+
+static const char*
+impl_get_address (EphyEmbed *embed)
+{
+        MozillaEmbedPrivate *priv = MOZILLA_EMBED (embed)->priv;
+  
+	return priv->address ? priv->address : "about:blank";
+}
+
+static void
+impl_set_address (EphyEmbed *embed, char *address)
+{
+        MozillaEmbedPrivate *priv = MOZILLA_EMBED (embed)->priv;
+	GObject *object = G_OBJECT (embed);
+	
+	g_free (priv->address);
+	priv->address = address;
+
+#if 0
+	priv->is_blank = address == NULL ||
+			 strcmp (address, "about:blank") == 0;
+#endif
+
+	if (priv->is_loading &&
+	    priv->address_expire == EPHY_EMBED_ADDRESS_EXPIRE_NOW &&
+	    priv->typed_address != NULL)
+	{
+		g_free (priv->typed_address);
+		priv->typed_address = NULL;
+
+		g_object_notify (object, "typed-address");
+	}
+
+	g_object_notify (object, "address");
+}
+
 static void
 mozilla_embed_location_changed_cb (GtkMozEmbed *embed, 
 				   MozillaEmbed *membed)
@@ -1466,6 +1556,10 @@ ephy_embed_iface_init (EphyEmbedIface *iface)
 	iface->set_load_status = impl_set_load_status;
 	iface->update_navigation_flags = impl_update_navigation_flags;
 	iface->get_navigation_flags = impl_get_navigation_flags;
+	iface->get_typed_address = impl_get_typed_address;
+	iface->set_typed_address = impl_set_typed_address;
+	iface->get_address = impl_get_address;
+	iface->set_address = impl_set_address;
 }
 
 static void
diff --git a/src/ephy-lockdown.c b/src/ephy-lockdown.c
index 543108b..47369ca 100644
--- a/src/ephy-lockdown.c
+++ b/src/ephy-lockdown.c
@@ -108,8 +108,8 @@ update_location_editable (EphyWindow *window,
 
 			address = ephy_embed_get_location (embed, TRUE);
 			ephy_toolbar_set_location (EPHY_TOOLBAR (toolbar), address, NULL);
-			ephy_tab_set_typed_address (tab, NULL,
-						    EPHY_TAB_ADDRESS_EXPIRE_CURRENT);
+			ephy_embed_set_typed_address (ephy_tab_get_embed (tab), NULL,
+                                                      EPHY_EMBED_ADDRESS_EXPIRE_CURRENT);
 			g_free (address);
 		}
 	}
diff --git a/src/ephy-shell.c b/src/ephy-shell.c
index 1dae530..25872e4 100644
--- a/src/ephy-shell.c
+++ b/src/ephy-shell.c
@@ -533,8 +533,8 @@ ephy_shell_new_tab_full (EphyShell *shell,
 	if (flags & EPHY_NEW_TAB_HOME_PAGE ||
 	    flags & EPHY_NEW_TAB_NEW_PAGE)
 	{
-		ephy_tab_set_typed_address (tab, "",
-					    EPHY_TAB_ADDRESS_EXPIRE_NEXT);
+		ephy_embed_set_typed_address (embed, "",
+                                              EPHY_EMBED_ADDRESS_EXPIRE_NEXT);
 		ephy_toolbar_activate_location (toolbar);
 		is_empty = load_homepage (embed);
 	}
diff --git a/src/ephy-tab.c b/src/ephy-tab.c
index 87d4a01..bcd109e 100644
--- a/src/ephy-tab.c
+++ b/src/ephy-tab.c
@@ -83,8 +83,6 @@ struct _EphyTabPrivate
 
 	char *status_message;
 	char *link_message;
-	char *address;
-	char *typed_address;
 	char *title;
 	char *loading_title;
 	char *icon_address;
@@ -99,8 +97,6 @@ struct _EphyTabPrivate
 
 	/* Flags */
 	guint is_blank : 1;
-	EphyTabAddressExpire address_expire;
-	/* guint address_expire : 2; ? */
 
 	/* File watch */
 	GnomeVFSMonitorHandle *monitor;
@@ -116,14 +112,12 @@ static void ephy_tab_finalize		(GObject *object);
 enum
 {
 	PROP_0,
-	PROP_ADDRESS,
 	PROP_ICON,
 	PROP_ICON_ADDRESS,
 	PROP_MESSAGE,
 	PROP_HIDDEN_POPUP_COUNT,
 	PROP_POPUPS_ALLOWED,
-	PROP_TITLE,
-	PROP_TYPED_ADDRESS
+	PROP_TITLE
 };
 
 typedef struct
@@ -207,17 +201,12 @@ ephy_tab_set_property (GObject *object,
 	switch (prop_id)
 
 	{
-		case PROP_TYPED_ADDRESS:
-			ephy_tab_set_typed_address (tab, g_value_get_string (value),
-						    EPHY_TAB_ADDRESS_EXPIRE_NOW);
-			break;
 		case PROP_POPUPS_ALLOWED:
 			ephy_tab_set_popups_allowed (tab, g_value_get_boolean (value));
 			break;
 		case PROP_ICON_ADDRESS:
 			ephy_tab_set_icon_address (tab, g_value_get_string (value));
 			break;
-		case PROP_ADDRESS:
 		case PROP_ICON:
 		case PROP_MESSAGE:
 		case PROP_HIDDEN_POPUP_COUNT:
@@ -238,9 +227,6 @@ ephy_tab_get_property (GObject *object,
 
 	switch (prop_id)
 	{
-		case PROP_ADDRESS:
-			g_value_set_string (value, priv->address);
-			break;
 		case PROP_ICON:
 			g_value_set_object (value, priv->icon);
 			break;
@@ -260,9 +246,6 @@ ephy_tab_get_property (GObject *object,
 		case PROP_TITLE:
 			g_value_set_string (value, priv->title);
 			break;
-		case PROP_TYPED_ADDRESS:
-			g_value_set_string (value, ephy_tab_get_typed_address (tab));
-			break;
 	}
 }
 
@@ -356,14 +339,6 @@ ephy_tab_class_init (EphyTabClass *class)
 	widget_class->grab_focus = ephy_tab_grab_focus;
 
 	g_object_class_install_property (object_class,
-					 PROP_ADDRESS,
-					 g_param_spec_string ("address",
-							      "Address",
-							      "The tab's address",
-							      "",
-							      G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));
-
-	g_object_class_install_property (object_class,
 					 PROP_ICON,
 					 g_param_spec_object ("icon",
 							      "Icon",
@@ -413,14 +388,6 @@ ephy_tab_class_init (EphyTabClass *class)
 							      _("Blank page"),
 							      G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));
 
-	g_object_class_install_property (object_class,
-					 PROP_TYPED_ADDRESS,
-					 g_param_spec_string ("typed-address",
-							      "Typed Address",
-							      "The typed address",
-							      "",
-							      G_PARAM_READWRITE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));
-
 	g_type_class_add_private (object_class, sizeof (EphyTabPrivate));
 }
 
@@ -744,8 +711,6 @@ ephy_tab_finalize (GObject *object)
 
 	g_free (priv->title);
 	g_free (priv->loading_title);
-	g_free (priv->address);
-	g_free (priv->typed_address);
 	g_free (priv->icon_address);
 	g_free (priv->link_message);
 	g_free (priv->status_message);
@@ -849,36 +814,6 @@ ephy_tab_set_loading_title (EphyTab *tab,
 	g_free (freeme);
 }
 
-/* consumes |address| */
-static void
-ephy_tab_set_address (EphyTab *tab,
-		      char *address)
-{
-	EphyTabPrivate *priv = tab->priv;
-	GObject *object = G_OBJECT (tab);
-	gboolean is_loading;
-
-	g_free (priv->address);
-	priv->address = address;
-
-	priv->is_blank = address == NULL ||
-			 strcmp (address, "about:blank") == 0;
-
-	is_loading = ephy_embed_get_load_status (ephy_tab_get_embed (tab));
-
-	if (is_loading &&
-	    priv->address_expire == EPHY_TAB_ADDRESS_EXPIRE_NOW &&
-	    priv->typed_address != NULL)
-	{
-		g_free (priv->typed_address);
-		priv->typed_address = NULL;
-
-		g_object_notify (object, "typed-address");
-	}
-
-	g_object_notify (object, "address");
-}
-
 /* Public functions */
 
 /**
@@ -1198,13 +1133,13 @@ ephy_file_monitor_reload_cb (EphyTab *tab)
 		return TRUE;
 	}
 
-	LOG ("Reloading file '%s'", priv->address);
-
 	priv->reload_scheduled_id = 0;
 
 	embed = ephy_tab_get_embed (tab);
 	if (embed == NULL) return FALSE;
 
+	LOG ("Reloading file '%s'", ephy_embed_get_address (embed));
+
 	ephy_embed_reload (embed, TRUE);
 
 	/* don't run again */
@@ -1883,10 +1818,8 @@ ephy_tab_init (EphyTab *tab)
 	priv->icon_address = NULL;
 	priv->icon = NULL;
 	priv->address = NULL;
-	priv->typed_address = NULL;
 	priv->title = NULL;
 	priv->loading_title = NULL;
-	priv->address_expire = EPHY_TAB_ADDRESS_EXPIRE_NOW;
 	priv->reload_delay_ticks = 0;
 
 	embed = ephy_embed_factory_new_object (EPHY_TYPE_EMBED);
@@ -2073,87 +2006,6 @@ ephy_tab_get_title (EphyTab *tab)
 	return title != NULL ? title : "";
 }
 
-/**
- * ephy_tab_get_address:
- * @tab: an #EphyTab
- *
- * Returns the address of the currently loaded page.
- *
- * Return value: @tab's address. Will never be %NULL.
- **/
-const char *
-ephy_tab_get_address (EphyTab *tab)
-{
-	EphyTabPrivate *priv;
-
-	g_return_val_if_fail (EPHY_IS_TAB (tab), "");
-
-	priv = tab->priv;
-
-	return priv->address ? priv->address : "about:blank";
-}
-
-/**
- * ephy_tab_get_typed_address:
- * @tab: an #EphyTab
- *
- * Returns the text that @tab's #EphyWindow will display in its location toolbar
- * entry when @tab is selected.
- *
- * This is not guaranteed to be the same as @tab's #EphyEmbed's location,
- * available through ephy_embed_get_location(). As the user types a new address
- * into the location entry, ephy_tab_get_location()'s returned string will
- * change.
- *
- * Return value: @tab's #EphyWindow's location entry when @tab is selected
- **/
-const char *
-ephy_tab_get_typed_address (EphyTab *tab)
-{
-	EphyTabPrivate *priv;
-
-	g_return_val_if_fail (EPHY_IS_TAB (tab), NULL);
-
-	priv = tab->priv;
-
-	return priv->typed_address;
-}
-
-/**
- * ephy_tab_set_typed_address:
- * @tab: an #EphyTab
- * @address: the new typed address, or %NULL to clear it
- * @expire: when to expire this address_expire
- * 
- * Sets the text that @tab's #EphyWindow will display in its location toolbar
- * entry when @tab is selected.
- **/
-void
-ephy_tab_set_typed_address (EphyTab *tab,
-			    const char *address,
-			    EphyTabAddressExpire expire)
-{
-	EphyTabPrivate *priv = tab->priv;
-	gboolean is_loading;
-
-	g_free (priv->typed_address);
-	priv->typed_address = g_strdup (address);
-
-	is_loading = ephy_embed_get_load_status (ephy_tab_get_embed (tab));
-
-	if (expire == EPHY_TAB_ADDRESS_EXPIRE_CURRENT &&
-	    !is_loading)
-	{
-		priv->address_expire = EPHY_TAB_ADDRESS_EXPIRE_NOW;
-	}
-	else
-	{
-		priv->address_expire = expire;
-	}
-
-	g_object_notify (G_OBJECT (tab), "typed-address");
-}
-
 /* private */
 guint
 _ephy_tab_get_id (EphyTab *tab)
diff --git a/src/ephy-tab.h b/src/ephy-tab.h
index 4eac975..3af85fb 100644
--- a/src/ephy-tab.h
+++ b/src/ephy-tab.h
@@ -40,13 +40,6 @@ typedef struct _EphyTabClass	EphyTabClass;
 typedef struct _EphyTab		EphyTab;
 typedef struct _EphyTabPrivate	EphyTabPrivate;
 
-typedef enum
-{
-	EPHY_TAB_ADDRESS_EXPIRE_NOW,
-	EPHY_TAB_ADDRESS_EXPIRE_NEXT,
-	EPHY_TAB_ADDRESS_EXPIRE_CURRENT
-} EphyTabAddressExpire;
-
 struct _EphyTab
 {
 	GtkBin parent;
@@ -80,18 +73,8 @@ gboolean		ephy_tab_get_load_status	(EphyTab *tab);
 const char             *ephy_tab_get_link_message	(EphyTab *tab);
 
 
-int			ephy_tab_get_load_percent	(EphyTab *tab);
-
 const char             *ephy_tab_get_address		(EphyTab *tab);
 
-const char	       *ephy_tab_get_typed_address	(EphyTab *tab);
-
-void			ephy_tab_set_typed_address	(EphyTab *tab,
-							 const char *address,
-							 EphyTabAddressExpire expire);
-
-EphyEmbedSecurityLevel	ephy_tab_get_security_level	(EphyTab *tab);
-
 void			ephy_tab_get_size		(EphyTab *tab,
 							 int *width,
 							 int *height);
@@ -106,8 +89,6 @@ const char             *ephy_tab_get_title		(EphyTab *tab);
 
 const char             *ephy_tab_get_title_composite	(EphyTab *tab);
 
-float			ephy_tab_get_zoom		(EphyTab *tab);
-
 /* private */
 guint		       _ephy_tab_get_id			(EphyTab *tab);
 
diff --git a/src/ephy-toolbar.c b/src/ephy-toolbar.c
index beb5f90..ccd03ec 100644
--- a/src/ephy-toolbar.c
+++ b/src/ephy-toolbar.c
@@ -181,8 +181,8 @@ sync_user_input_cb (EphyLocationAction *action,
 	address = ephy_location_action_get_address (action);
 
 	priv->updating_address = TRUE;
-	ephy_tab_set_typed_address (tab, address,
-				    EPHY_TAB_ADDRESS_EXPIRE_CURRENT);
+	ephy_embed_set_typed_address (ephy_tab_get_embed (tab), address,
+                                      EPHY_EMBED_ADDRESS_EXPIRE_CURRENT);
 	priv->updating_address = FALSE;
 }
 
diff --git a/src/epiphany.defs b/src/epiphany.defs
index 02c5bfa..d6904a4 100644
--- a/src/epiphany.defs
+++ b/src/epiphany.defs
@@ -437,14 +437,14 @@
   )
 )
 
-(define-enum TabAddressExpire
+(define-enum EmbedAddressExpire
   (in-module "Ephy")
-  (c-name "EphyTabAddressExpire")
-  (gtype-id "EPHY_TYPE_TAB_ADDRESS_EXPIRE")
+  (c-name "EphyEmbedAddressExpire")
+  (gtype-id "EPHY_TYPE_EMBED_ADDRESS_EXPIRE")
   (values
-    '("now" "EPHY_TAB_ADDRESS_EXPIRE_NOW")
-    '("next" "EPHY_TAB_ADDRESS_EXPIRE_NEXT")
-    '("current" "EPHY_TAB_ADDRESS_EXPIRE_CURRENT")
+    '("now" "EPHY_EMBED_ADDRESS_EXPIRE_NOW")
+    '("next" "EPHY_EMBED_ADDRESS_EXPIRE_NEXT")
+    '("current" "EPHY_EMBED_ADDRESS_EXPIRE_CURRENT")
   )
 )
 
@@ -947,6 +947,11 @@
   (return-type "GType")
 )
 
+(define-function ephy_embed_address_expire_get_type
+  (c-name "ephy_embed_address_expire_get_type")
+  (return-type "GType")
+)
+
 (define-function ephy_embed_net_state_get_type
   (c-name "ephy_embed_net_state_get_type")
   (return-type "GType")
@@ -3368,12 +3373,12 @@
 )
 
 (define-method set_typed_address
-  (of-object "EphyTab")
-  (c-name "ephy_tab_set_typed_address")
+  (of-object "EphyEmbed")
+  (c-name "ephy_embed_set_typed_address")
   (return-type "none")
   (parameters
     '("const-char*" "address")
-    '("EphyTabAddressExpire" "expire")
+    '("EphyEmbedAddressExpire" "expire")
   )
 )
 
@@ -3532,11 +3537,6 @@
   (return-type "GType")
 )
 
-(define-function ephy_tab_address_expire_get_type
-  (c-name "ephy_tab_address_expire_get_type")
-  (return-type "GType")
-)
-
 (define-function ephy_navigation_direction_get_type
   (c-name "ephy_navigation_direction_get_type")
   (return-type "GType")
