summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2019-02-11 15:28:57 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2019-02-11 22:55:59 +0000
commitc4328812031d1efd3409335e63b0e82f76f00924 (patch)
tree7c97f4130fd343bf33e3704c429b70adb728f85e /src
parentd166321115419c18218fb2611dd38d219e250fd2 (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.cpp27
-rw-r--r--src/core/net/client_cert_override.h3
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