| Index: chrome/browser/ui/crypto_module_delegate_nss.cc
|
| diff --git a/chrome/browser/ui/crypto_module_delegate_nss.cc b/chrome/browser/ui/crypto_module_delegate_nss.cc
|
| index 5812e5491eafe72163eea83e005b3faaa032ba66..be1adfb166344793935f58676b2d7f543170cd85 100644
|
| --- a/chrome/browser/ui/crypto_module_delegate_nss.cc
|
| +++ b/chrome/browser/ui/crypto_module_delegate_nss.cc
|
| @@ -6,18 +6,24 @@
|
|
|
| #include "base/basictypes.h"
|
| #include "base/bind.h"
|
| -#include "chrome/browser/net/nss_context.h"
|
| +#include "base/callback.h"
|
| +#include "components/cert_database/cert_database_service_io_part.h"
|
| #include "content/public/browser/browser_thread.h"
|
| +#include "net/cert/nss_cert_database.h"
|
|
|
| using content::BrowserThread;
|
|
|
| namespace {
|
|
|
| -void CreateWithSlot(chrome::CryptoModulePasswordReason reason,
|
| - const net::HostPortPair& server,
|
| - const base::Callback<void(
|
| - scoped_ptr<ChromeNSSCryptoModuleDelegate>)>& callback,
|
| - crypto::ScopedPK11Slot slot) {
|
| +void CreateWithNSSCertDB(
|
| + chrome::CryptoModulePasswordReason reason,
|
| + const net::HostPortPair& server,
|
| + const base::Callback<void(scoped_ptr<ChromeNSSCryptoModuleDelegate>)>&
|
| + callback,
|
| + net::NSSCertDatabase* nss_cert_db) {
|
| + crypto::ScopedPK11Slot slot;
|
| + if (nss_cert_db)
|
| + slot = nss_cert_db->GetPrivateSlot();
|
| if (!slot) {
|
| callback.Run(scoped_ptr<ChromeNSSCryptoModuleDelegate>());
|
| return;
|
| @@ -42,22 +48,22 @@ ChromeNSSCryptoModuleDelegate::ChromeNSSCryptoModuleDelegate(
|
| ChromeNSSCryptoModuleDelegate::~ChromeNSSCryptoModuleDelegate() {}
|
|
|
| // static
|
| -void ChromeNSSCryptoModuleDelegate::CreateForResourceContext(
|
| +void ChromeNSSCryptoModuleDelegate::CreateForCertDatabase(
|
| chrome::CryptoModulePasswordReason reason,
|
| const net::HostPortPair& server,
|
| - content::ResourceContext* context,
|
| + cert_database::CertDatabaseServiceIOPart* cert_db_io,
|
| const base::Callback<void(scoped_ptr<ChromeNSSCryptoModuleDelegate>)>&
|
| callback) {
|
| DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
| DCHECK(!callback.is_null());
|
|
|
| - base::Callback<void(crypto::ScopedPK11Slot)> get_slot_callback =
|
| - base::Bind(&CreateWithSlot, reason, server, callback);
|
| + base::Callback<void(net::NSSCertDatabase*)> got_nssdb_callback =
|
| + base::Bind(&CreateWithNSSCertDB, reason, server, callback);
|
|
|
| - crypto::ScopedPK11Slot slot =
|
| - GetPrivateNSSKeySlotForResourceContext(context, get_slot_callback);
|
| - if (slot)
|
| - get_slot_callback.Run(slot.Pass());
|
| + net::NSSCertDatabase* nssdb =
|
| + cert_db_io->GetNSSCertDatabase(got_nssdb_callback);
|
| + if (nssdb)
|
| + got_nssdb_callback.Run(nssdb);
|
| }
|
|
|
| // TODO(mattm): allow choosing which slot to generate and store the key.
|
|
|