From 617e8a31a14c7acb1fbebad4475c43cc24f9476e Mon Sep 17 00:00:00 2001 From: Wouter Bolsterlee Date: Sat, 14 Oct 2006 22:15:58 +0000 Subject: Implement EphyPasswordManagerIface.add to add stored passwords. Fixes bug 2006-10-15 Wouter Bolsterlee * embed/mozilla/mozilla-embed-single.cpp: Implement EphyPasswordManagerIface.add to add stored passwords. Fixes bug #361606, patch by John Millikin. --- embed/mozilla/mozilla-embed-single.cpp | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'embed/mozilla/mozilla-embed-single.cpp') diff --git a/embed/mozilla/mozilla-embed-single.cpp b/embed/mozilla/mozilla-embed-single.cpp index be87caac9..de8485bdc 100644 --- a/embed/mozilla/mozilla-embed-single.cpp +++ b/embed/mozilla/mozilla-embed-single.cpp @@ -955,6 +955,34 @@ impl_remove_password (EphyPasswordManager *manager, pm->RemoveUser (host, userName); } +static void +impl_add_password (EphyPasswordManager *manager, + EphyPasswordInfo *info) +{ + nsCOMPtr pm = + do_GetService (NS_PASSWORDMANAGER_CONTRACTID); + if (!pm) return; + + nsCOMPtr idnService + (do_GetService ("@mozilla.org/network/idn-service;1")); + NS_ENSURE_TRUE (idnService, ); + + nsresult rv; + nsCString host; + rv = idnService->ConvertUTF8toACE (nsCString(info->host), host); + NS_ENSURE_SUCCESS (rv, ); + + nsString username; + NS_CStringToUTF16 (nsCString(info->username), + NS_CSTRING_ENCODING_UTF8, username); + + nsString password; + NS_CStringToUTF16 (nsCString(info->password), + NS_CSTRING_ENCODING_UTF8, password); + + pm->AddUser(host, username, password); +} + static void impl_permission_manager_add (EphyPermissionManager *manager, const char *host, @@ -1305,7 +1333,7 @@ ephy_cookie_manager_iface_init (EphyCookieManagerIface *iface) static void ephy_password_manager_iface_init (EphyPasswordManagerIface *iface) { - iface->add = NULL; /* not implemented yet */ + iface->add = impl_add_password; iface->remove = impl_remove_password; iface->list = impl_list_passwords; } -- cgit v1.2.3