Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(526)

Unified Diff: chrome/browser/profiles/profile_io_data.cc

Issue 61643007: Update keygen to use correct NSS slot on ChromeOS multiprofile. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: jam review changes Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/profiles/profile_io_data.h ('k') | chrome/browser/ui/crypto_module_delegate_nss.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/profiles/profile_io_data.cc
diff --git a/chrome/browser/profiles/profile_io_data.cc b/chrome/browser/profiles/profile_io_data.cc
index 197337900e35dc31274c94016b42b6d9f1f0a106..5c76e2f96dfbfe25c5f16e3fcd5314f7c7c46775 100644
--- a/chrome/browser/profiles/profile_io_data.cc
+++ b/chrome/browser/profiles/profile_io_data.cc
@@ -62,6 +62,7 @@
#include "content/public/browser/resource_context.h"
#include "extensions/browser/info_map.h"
#include "extensions/common/constants.h"
+#include "net/base/keygen_handler.h"
#include "net/cookies/canonical_cookie.h"
#include "net/cookies/cookie_monster.h"
#include "net/http/http_transaction_factory.h"
@@ -110,7 +111,7 @@
#endif // defined(OS_CHROMEOS)
#if defined(USE_NSS)
-#include "chrome/browser/ui/crypto_module_password_dialog.h"
+#include "chrome/browser/ui/crypto_module_delegate_nss.h"
#include "net/ssl/client_cert_store_nss.h"
#endif
@@ -854,7 +855,7 @@ scoped_ptr<net::ClientCertStore>
ProfileIOData::ResourceContext::CreateClientCertStore() {
#if defined(USE_NSS)
return scoped_ptr<net::ClientCertStore>(new net::ClientCertStoreNSS(
- base::Bind(&chrome::NewCryptoModuleBlockingDialogDelegate,
+ base::Bind(&CreateCryptoModuleBlockingPasswordDelegate,
chrome::kCryptoModulePasswordClientAuth)));
#elif defined(OS_WIN)
return scoped_ptr<net::ClientCertStore>(new net::ClientCertStoreWin());
@@ -870,6 +871,37 @@ ProfileIOData::ResourceContext::CreateClientCertStore() {
#endif
}
+void ProfileIOData::ResourceContext::CreateKeygenHandler(
+ uint32 key_size_in_bits,
+ const std::string& challenge_string,
+ const GURL& url,
+ const base::Callback<void(scoped_ptr<net::KeygenHandler>)>& callback) {
+ DCHECK(!callback.is_null());
+#if defined(USE_NSS)
+ scoped_ptr<net::KeygenHandler> keygen_handler(
+ new net::KeygenHandler(key_size_in_bits, challenge_string, url));
+
+ scoped_ptr<ChromeNSSCryptoModuleDelegate> delegate(
+ new ChromeNSSCryptoModuleDelegate(chrome::kCryptoModulePasswordKeygen,
+ url.host()));
+ ChromeNSSCryptoModuleDelegate* delegate_ptr = delegate.get();
+ keygen_handler->set_crypto_module_delegate(
+ delegate.PassAs<crypto::NSSCryptoModuleDelegate>());
+
+ base::Closure bound_callback =
+ base::Bind(callback, base::Passed(&keygen_handler));
+ if (delegate_ptr->InitializeSlot(this, bound_callback)) {
+ // Initialization complete, run the callback synchronously.
+ bound_callback.Run();
+ return;
+ }
+ // Otherwise, the InitializeSlot will run the callback asynchronously.
+#else
+ callback.Run(make_scoped_ptr(
+ new net::KeygenHandler(key_size_in_bits, challenge_string, url)));
+#endif
+}
+
bool ProfileIOData::ResourceContext::AllowMicAccess(const GURL& origin) {
return AllowContentAccess(origin, CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC);
}
« no previous file with comments | « chrome/browser/profiles/profile_io_data.h ('k') | chrome/browser/ui/crypto_module_delegate_nss.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698