Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/epiphany/ChangeLog,v
retrieving revision 1.435
diff -u -r1.435 ChangeLog
--- ChangeLog	18 May 2003 09:06:46 -0000	1.435
+++ ChangeLog	19 May 2003 03:50:22 -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-05-18  Xan Lopez  <xan@masilla.org>
 
 	* NEWS: Updates, typos.
Index: data/epiphany.schemas.in
===================================================================
RCS file: /cvs/gnome/epiphany/data/epiphany.schemas.in,v
retrieving revision 1.16
diff -u -r1.16 epiphany.schemas.in
--- data/epiphany.schemas.in	15 May 2003 16:25:11 -0000	1.16
+++ data/epiphany.schemas.in	19 May 2003 03:50:22 -0000
@@ -249,18 +249,6 @@
         </locale>
       </schema>
      <schema>
-        <key>/schemas/apps/epiphany/network/no_proxies_for</key>
-        <applyto>/apps/epiphany/network/no_proxies_for</applyto>
-        <owner>epiphany</owner>
-        <type>string</type>
-        <default></default>
-        <locale name="C">
-        <short>No proxy for</short>
-        <long>List of domains for wherefore not to use the proxy, comma
-        delimited</long>
-        </locale>
-      </schema>
-     <schema>
         <key>/schemas/apps/epiphany/network/disk_cache_size</key>
         <applyto>/apps/epiphany/network/disk_cache_size</applyto>
         <owner>epiphany</owner>
Index: embed/ephy-embed-prefs.h
===================================================================
RCS file: /cvs/gnome/epiphany/embed/ephy-embed-prefs.h,v
retrieving revision 1.2
diff -u -r1.2 ephy-embed-prefs.h
--- embed/ephy-embed-prefs.h	10 May 2003 10:57:10 -0000	1.2
+++ embed/ephy-embed-prefs.h	19 May 2003 03:50:23 -0000
@@ -1,5 +1,4 @@
 #define CONF_NETWORK_SOCKS_PROXY_VERSION "/apps/epiphany/network/socks_proxy_version"
-#define CONF_NETWORK_NO_PROXIES_FOR "/apps/epiphany/network/no_proxies_for"
 #define CONF_NETWORK_DISK_CACHE "/apps/epiphany/network/disk_cache_size"
 #define CONF_NETWORK_MEMORY_CACHE "/apps/epiphany/network/mem_cache_size"
 #define CONF_NETWORK_CACHE_COMPARE "/apps/epiphany/network/cache_compare"
@@ -37,4 +36,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.8
diff -u -r1.8 mozilla-notifiers.cpp
--- embed/mozilla/mozilla-notifiers.cpp	17 May 2003 12:43:25 -0000	1.8
+++ embed/mozilla/mozilla-notifiers.cpp	19 May 2003 03:50:35 -0000
@@ -93,6 +93,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,
@@ -152,7 +159,6 @@
 	{ CONF_NETWORK_FTP_PROXY_PORT, INT_PREF, "network.proxy.ftp_port"},
 	{ CONF_NETWORK_SSL_PROXY_PORT, INT_PREF, "network.proxy.ssl_port"},
 	{ CONF_NETWORK_SOCKS_PROXY_PORT, INT_PREF, "network.proxy.socks_port"},
-	{ CONF_NETWORK_NO_PROXIES_FOR, STRING_PREF, "network.proxy.no_proxies_on"},
 	{ CONF_NETWORK_MEMORY_CACHE, INT_PREF, "browser.cache.memory.capacity"},
 	{ CONF_NETWORK_DISK_CACHE, INT_PREF, "browser.cache.disk.capacity"},
 	{ CONF_NETWORK_CACHE_COMPARE, INT_PREF, "browser.cache.check_doc_frequency"},
@@ -190,6 +196,8 @@
 	  (GConfClientNotifyFunc) mozilla_proxy_mode_notifier },
 	{ CONF_NETWORK_PROXY_AUTO_URL,
 	  (GConfClientNotifyFunc) mozilla_proxy_autoconfig_notifier },
+	{ CONF_NETWORK_PROXY_IGNORE_HOSTS,
+	  (GConfClientNotifyFunc) mozilla_proxy_ignore_notifier },
 	{NULL, NULL}
 };
 
@@ -227,6 +235,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
