| Index: chrome/browser/chromeos/platform_keys/platform_keys_nss.cc
|
| diff --git a/chrome/browser/chromeos/platform_keys/platform_keys_nss.cc b/chrome/browser/chromeos/platform_keys/platform_keys_nss.cc
|
| index 2265f42b5e3465b69623c406c14796a177ad68e3..f57848f97c54ee8fe9efa8208a1c5fd1530ef9b8 100644
|
| --- a/chrome/browser/chromeos/platform_keys/platform_keys_nss.cc
|
| +++ b/chrome/browser/chromeos/platform_keys/platform_keys_nss.cc
|
| @@ -17,7 +17,9 @@
|
| #include "base/thread_task_runner_handle.h"
|
| #include "base/threading/worker_pool.h"
|
| #include "chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api.h"
|
| -#include "chrome/browser/net/nss_context.h"
|
| +#include "chrome/browser/net/cert_database_service_factory.h"
|
| +#include "components/cert_database/public/cert_database_service.h"
|
| +#include "components/cert_database/public/cert_database_service_io_part.h"
|
| #include "content/public/browser/browser_context.h"
|
| #include "content/public/browser/browser_thread.h"
|
| #include "crypto/rsa_private_key.h"
|
| @@ -106,13 +108,19 @@ void DidGetCertDBOnIOThread(const std::string& token_id,
|
| // Retrieves the NSSCertDatabase from |context| and, if |token_id| is not empty,
|
| // the slot for |token_id|.
|
| // Must be called on the IO thread.
|
| -void GetCertDatabaseOnIOThread(const std::string& token_id,
|
| - const GetCertDBCallback& callback,
|
| - content::ResourceContext* context,
|
| - NSSOperationState* state) {
|
| +void GetCertDatabaseOnIOThread(
|
| + const std::string& token_id,
|
| + const GetCertDBCallback& callback,
|
| + base::WeakPtr<CertDatabaseServiceIOPart> db_io_part,
|
| + NSSOperationState* state) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| - net::NSSCertDatabase* cert_db = GetNSSCertDatabaseForResourceContext(
|
| - context, base::Bind(&DidGetCertDBOnIOThread, token_id, callback, state));
|
| + if (!db_io_part) {
|
| + LOG(ERROR) << "CertDatabase shutdown.";
|
| + state->OnError(FROM_HERE, kErrorInternal);
|
| + return;
|
| + }
|
| + net::NSSCertDatabase* cert_db = db_io_part->GetNSSCertDatabase(
|
| + base::Bind(&DidGetCertDBOnIOThread, token_id, callback, state));
|
|
|
| if (cert_db)
|
| DidGetCertDBOnIOThread(token_id, callback, state, cert_db);
|
| @@ -125,12 +133,14 @@ void GetCertDatabase(const std::string& token_id,
|
| const GetCertDBCallback& callback,
|
| BrowserContext* browser_context,
|
| NSSOperationState* state) {
|
| + CertDatabaseService* cert_db_service =
|
| + CertDatabaseServiceFactory::GetForBrowserContext(browser_context);
|
| BrowserThread::PostTask(BrowserThread::IO,
|
| FROM_HERE,
|
| base::Bind(&GetCertDatabaseOnIOThread,
|
| token_id,
|
| callback,
|
| - browser_context->GetResourceContext(),
|
| + cert_db_service->GetIOPart(),
|
| state));
|
| }
|
|
|
|
|