diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-02-11 15:28:57 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-02-11 22:55:59 +0000 |
commit | c4328812031d1efd3409335e63b0e82f76f00924 (patch) | |
tree | 7c97f4130fd343bf33e3704c429b70adb728f85e /src | |
parent | d166321115419c18218fb2611dd38d219e250fd2 (diff) |
Do not create the native client cert store on every request
Create it once and keep it around.
Also contains drive-by coding style fixes.
Change-Id: I8b159ae332080b31ed64fab99ad6bb3d8b4d5e3b
Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/core/net/client_cert_override.cpp | 27 | ||||
-rw-r--r-- | src/core/net/client_cert_override.h | 3 |
2 files changed, 13 insertions, 17 deletions
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<net::X509Certificate> cert, - scoped_refptr<net::SSLPrivateKey> key) - : net::ClientCertIdentity(std::move(cert)), key_(std::move(key)) {} + ClientCertIdentityOverride(scoped_refptr<net::X509Certificate> cert, scoped_refptr<net::SSLPrivateKey> key) + : net::ClientCertIdentity(std::move(cert)), m_key(std::move(key)) {} ~ClientCertIdentityOverride() override = default; - void AcquirePrivateKey( - const base::Callback<void(scoped_refptr<net::SSLPrivateKey>)> & - private_key_callback) override + void AcquirePrivateKey(const base::Callback<void(scoped_refptr<net::SSLPrivateKey>)> &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<net::SSLPrivateKey> key_; + scoped_refptr<net::SSLPrivateKey> 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<net::ClientCertStore> 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<net::ClientCertStore> ClientCertOverrideStore::getNativeStore() +// static +std::unique_ptr<net::ClientCertStore> ClientCertOverrideStore::createNativeStore() { #if defined(USE_NSS_CERTS) return std::unique_ptr<net::ClientCertStore>(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<net::ClientCertStore> getNativeStore(); + static std::unique_ptr<net::ClientCertStore> createNativeStore(); + std::unique_ptr<net::ClientCertStore> m_nativeStore; }; } // QtWebEngineCore |