aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--embed/ephy-embed-single.c13
-rw-r--r--embed/ephy-embed-single.h3
-rw-r--r--embed/mozilla/mozilla-embed-single.cpp15
4 files changed, 38 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index de4cd717a..e7149fa4c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2003-12-30 Christian Persch <chpe@cvs.gnome.org>
+
+ * embed/ephy-embed-single.c: (ephy_embed_single_clear_auth_cache):
+ * embed/ephy-embed-single.h:
+ * embed/mozilla/mozilla-embed-single.cpp:
+
+ Add API to EphyEmbedSingle to clear the HTTP authentication cache.
+
2003-12-29 Christian Persch <chpe@cvs.gnome.org>
* embed/ephy-embed-shell.c: (ephy_embed_shell_get_favicon_cache),
diff --git a/embed/ephy-embed-single.c b/embed/ephy-embed-single.c
index 5c3466a21..c9da4cd32 100644
--- a/embed/ephy-embed-single.c
+++ b/embed/ephy-embed-single.c
@@ -97,6 +97,19 @@ ephy_embed_single_clear_cache (EphyEmbedSingle *single)
}
/**
+ * ephy_embed_single_clear_auth_cache:
+ * @single: the #EphyEmbedSingle
+ *
+ * Clears the mozilla http authentication cache.
+ **/
+void
+ephy_embed_single_clear_auth_cache (EphyEmbedSingle *single)
+{
+ EphyEmbedSingleClass *klass = EPHY_EMBED_SINGLE_GET_CLASS (single);
+ klass->clear_auth_cache (single);
+}
+
+/**
* ephy_embed_single_set_offline_mode:
* @single: the #EphyEmbedSingle
* @offline: whether being off-line
diff --git a/embed/ephy-embed-single.h b/embed/ephy-embed-single.h
index dac415cc1..89c80f3bb 100644
--- a/embed/ephy-embed-single.h
+++ b/embed/ephy-embed-single.h
@@ -49,6 +49,7 @@ struct EphyEmbedSingleClass
/* Methods */
void (* clear_cache) (EphyEmbedSingle *shell);
+ void (* clear_auth_cache) (EphyEmbedSingle *shell);
void (* set_offline_mode) (EphyEmbedSingle *shell,
gboolean offline);
void (* load_proxy_autoconf) (EphyEmbedSingle *shell,
@@ -61,6 +62,8 @@ GType ephy_embed_single_get_type (void);
void ephy_embed_single_clear_cache (EphyEmbedSingle *shell);
+void ephy_embed_single_clear_auth_cache (EphyEmbedSingle *shell);
+
void ephy_embed_single_set_offline_mode (EphyEmbedSingle *shell,
gboolean offline);
diff --git a/embed/mozilla/mozilla-embed-single.cpp b/embed/mozilla/mozilla-embed-single.cpp
index f60c60bee..84ace349d 100644
--- a/embed/mozilla/mozilla-embed-single.cpp
+++ b/embed/mozilla/mozilla-embed-single.cpp
@@ -75,6 +75,7 @@
#include <nsILocalFile.h>
#include <nsIURI.h>
#include <nsNetUtil.h>
+#include <nsIHttpAuthManager.h>
// FIXME: For setting the locale. hopefully gtkmozembed will do itself soon
#include <nsIChromeRegistry.h>
@@ -538,7 +539,6 @@ static void
impl_clear_cache (EphyEmbedSingle *shell)
{
nsresult rv;
-
nsCOMPtr<nsICacheService> CacheService =
do_GetService (NS_CACHESERVICE_CONTRACTID, &rv);
if (NS_SUCCEEDED (rv))
@@ -548,6 +548,18 @@ impl_clear_cache (EphyEmbedSingle *shell)
}
static void
+impl_clear_auth_cache (EphyEmbedSingle *shell)
+{
+ nsresult rv;
+ nsCOMPtr<nsIHttpAuthManager> AuthManager =
+ do_GetService (NS_HTTPAUTHMANAGER_CONTRACTID, &rv);
+ if (NS_SUCCEEDED (rv))
+ {
+ AuthManager->ClearAll();
+ }
+}
+
+static void
impl_set_offline_mode (EphyEmbedSingle *shell,
gboolean offline)
{
@@ -892,6 +904,7 @@ static void
ephy_embed_single_iface_init (EphyEmbedSingleClass *iface)
{
iface->clear_cache = impl_clear_cache;
+ iface->clear_auth_cache = impl_clear_auth_cache;
iface->set_offline_mode = impl_set_offline_mode;
iface->load_proxy_autoconf = impl_load_proxy_autoconf;
iface->get_font_list = impl_get_font_list;