? showattachment.cgi?attach_id=16616
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/epiphany/ChangeLog,v
retrieving revision 1.725
diff -u -r1.725 ChangeLog
--- ChangeLog	20 Jul 2003 11:31:24 -0000	1.725
+++ ChangeLog	20 Jul 2003 11:49:16 -0000
@@ -1,3 +1,13 @@
+2003-05-19  Malcolm Tredinnick <malcolm@commsecure.com.au>
+ 
+	* embed/ephy-embed-prefs.h
+	* embed/mozilla/mozilla-notifiers.cpp:
+                                                                          
+	Process the /system/http_proxy/ignore_hosts gconf key and pass
+	the hosts which do not use the proxy to gtkmozembed. Obsolete
+	the older, hidden /apps/epiphany/network/no_proxies_for gconf
+	key.
+
 2003-07-20  Marco Pesenti Gritti  <marco@it.gnome.org>
 
 	* embed/mozilla/mozilla-embed-single.cpp:
Index: embed/ephy-embed-prefs.h
===================================================================
RCS file: /cvs/gnome/epiphany/embed/ephy-embed-prefs.h,v
retrieving revision 1.8
diff -u -r1.8 ephy-embed-prefs.h
--- embed/ephy-embed-prefs.h	2 Jul 2003 09:17:47 -0000	1.8
+++ embed/ephy-embed-prefs.h	20 Jul 2003 11:49:19 -0000
@@ -25,4 +25,4 @@
 #define CONF_NETWORK_FTP_PROXY_PORT "/system/proxy/ftp_port"
 #define CONF_NETWORK_SOCKS_PROXY_PORT "/system/proxy/socks_port"
 #define CONF_NETWORK_PROXY_AUTO_URL "/system/proxy/autoconfig_url"
-
+#define CONF_NETWORK_PROXY_IGNORE_HOSTS "/system/http_proxy/ignore_hosts"
Index: embed/mozilla/mozilla-notifiers.cpp
===================================================================
RCS file: /cvs/gnome/epiphany/embed/mozilla/mozilla-notifiers.cpp,v
retrieving revision 1.23
diff -u -r1.23 mozilla-notifiers.cpp
--- embed/mozilla/mozilla-notifiers.cpp	2 Jul 2003 09:09:23 -0000	1.23
+++ embed/mozilla/mozilla-notifiers.cpp	20 Jul 2003 11:49:22 -0000
@@ -87,6 +87,13 @@
 			     guint cnxn_id,
 			     GConfEntry *entry,
 			     EphyEmbedSingle *single);
+
+static void
+mozilla_proxy_ignore_notifier (GConfClient *client,
+		               guint cnxn_id,
+		               GConfEntry *entry,
+			       EphyEmbedSingle *single);
+
 static void
 mozilla_proxy_autoconfig_notifier (GConfClient *client,
 			           guint cnxn_id,
@@ -162,6 +169,8 @@
           (GConfClientNotifyFunc) mozilla_cache_size_notifier },
 	{ CONF_SECURITY_COOKIES_ACCEPT,
 	  (GConfClientNotifyFunc) mozilla_cookies_accept_notifier },
+ 	{ CONF_NETWORK_PROXY_IGNORE_HOSTS,
+ 	  (GConfClientNotifyFunc) mozilla_proxy_ignore_notifier },
 
 	{ NULL, NULL }
 };
@@ -271,6 +280,33 @@
 	}
 
 	mozilla_prefs_set_int ("network.proxy.type", mozilla_mode);
+}
+
+static void
+mozilla_proxy_ignore_notifier (GConfClient *client,
+		               guint cnxn_id,
+		               GConfEntry *entry,
+		               EphyEmbedSingle *single)
+{
+	GSList *hosts, *pos;
+	gchar **strings, *mozilla_ignore_list;
+	int i;
+
+	hosts = gconf_value_get_list (entry->value);
+	strings = g_new (gchar*, g_slist_length (hosts) + 1);
+	for (pos = hosts, i = 0; pos; pos = g_slist_next (pos), ++i)
+	{
+		strings[i] = (gchar*) gconf_value_get_string (
+				(GConfValue*) (pos->data));
+	}
+	strings[i] = NULL;
+
+	mozilla_ignore_list = g_strjoinv (", ", strings);
+	mozilla_prefs_set_string ("network.proxy.no_proxies_on",
+			mozilla_ignore_list);
+
+	g_free (mozilla_ignore_list);
+	g_free (strings);
 }
 
 static void
