From c4328812031d1efd3409335e63b0e82f76f00924 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Mon, 11 Feb 2019 15:28:57 +0100 Subject: Do not create the native client cert store on every request MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Create it once and keep it around. Also contains drive-by coding style fixes. Change-Id: I8b159ae332080b31ed64fab99ad6bb3d8b4d5e3b Reviewed-by: Michael BrĂ¼ning --- src/core/net/client_cert_override.cpp | 27 +++++++++++---------------- src/core/net/client_cert_override.h | 3 ++- 2 files changed, 13 insertions(+), 17 deletions(-) (limited to 'src') diff --git a/src/core/net/client_cert_override.cpp b/src/core/net/client_cert_override.cpp index 9f548c4d1..caf6adad7 100644 --- a/src/core/net/client_cert_override.cpp +++ b/src/core/net/client_cert_override.cpp @@ -74,17 +74,13 @@ namespace { class ClientCertIdentityOverride : public net::ClientCertIdentity { public: - ClientCertIdentityOverride( - scoped_refptr cert, - scoped_refptr key) - : net::ClientCertIdentity(std::move(cert)), key_(std::move(key)) {} + ClientCertIdentityOverride(scoped_refptr cert, scoped_refptr key) + : net::ClientCertIdentity(std::move(cert)), m_key(std::move(key)) {} ~ClientCertIdentityOverride() override = default; - void AcquirePrivateKey( - const base::Callback)> & - private_key_callback) override + void AcquirePrivateKey(const base::Callback)> &private_key_callback) override { - private_key_callback.Run(key_); + private_key_callback.Run(m_key); } #if defined(OS_MACOSX) @@ -95,7 +91,7 @@ public: #endif private: - scoped_refptr key_; + scoped_refptr m_key; }; } // namespace @@ -104,12 +100,11 @@ namespace QtWebEngineCore { ClientCertOverrideStore::ClientCertOverrideStore() : ClientCertStore() + , m_nativeStore(createNativeStore()) { } -ClientCertOverrideStore::~ClientCertOverrideStore() -{ -} +ClientCertOverrideStore::~ClientCertOverrideStore() = default; void ClientCertOverrideStore::GetClientCerts(const net::SSLCertRequestInfo &cert_request_info, const ClientCertListCallback &callback) @@ -130,9 +125,8 @@ void ClientCertOverrideStore::GetClientCerts(const net::SSLCertRequestInfo &cert #endif // QT_CONFIG(ssl) // Continue with native cert store if matching certificate is not found in memory - std::unique_ptr store = getNativeStore(); - if (store != NULL) { - store->GetClientCerts(cert_request_info, callback); + if (m_nativeStore) { + m_nativeStore->GetClientCerts(cert_request_info, callback); return; } @@ -140,7 +134,8 @@ void ClientCertOverrideStore::GetClientCerts(const net::SSLCertRequestInfo &cert return; } -std::unique_ptr ClientCertOverrideStore::getNativeStore() +// static +std::unique_ptr ClientCertOverrideStore::createNativeStore() { #if defined(USE_NSS_CERTS) return std::unique_ptr(new net::ClientCertStoreNSS(net::ClientCertStoreNSS::PasswordDelegateFactory())); diff --git a/src/core/net/client_cert_override.h b/src/core/net/client_cert_override.h index ed08a6b64..4f13c3116 100644 --- a/src/core/net/client_cert_override.h +++ b/src/core/net/client_cert_override.h @@ -58,7 +58,8 @@ public: void GetClientCerts(const net::SSLCertRequestInfo &cert_request_info, const ClientCertListCallback &callback) override; private: - std::unique_ptr getNativeStore(); + static std::unique_ptr createNativeStore(); + std::unique_ptr m_nativeStore; }; } // QtWebEngineCore -- cgit v1.2.3