summaryrefslogtreecommitdiffstats
path: root/Source/WebKit/android/WebCoreSupport/WebUrlLoaderClient.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit/android/WebCoreSupport/WebUrlLoaderClient.cpp')
-rw-r--r--Source/WebKit/android/WebCoreSupport/WebUrlLoaderClient.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/Source/WebKit/android/WebCoreSupport/WebUrlLoaderClient.cpp b/Source/WebKit/android/WebCoreSupport/WebUrlLoaderClient.cpp
index b22ae26..b047379 100644
--- a/Source/WebKit/android/WebCoreSupport/WebUrlLoaderClient.cpp
+++ b/Source/WebKit/android/WebCoreSupport/WebUrlLoaderClient.cpp
@@ -320,6 +320,15 @@ void WebUrlLoaderClient::cancelSslCertError(int cert_error)
this->Release();
}
+void WebUrlLoaderClient::sslClientCert(EVP_PKEY* pkey, net::X509Certificate* chain)
+{
+ base::Thread* thread = ioThread();
+ scoped_refptr<net::X509Certificate> scopedChain(chain);
+ if (isActive() && thread)
+ thread->message_loop()->PostTask(FROM_HERE, NewRunnableMethod(m_request.get(), &WebRequest::sslClientCert, pkey, scopedChain));
+ this->Release();
+}
+
void WebUrlLoaderClient::finish()
{
@@ -479,4 +488,13 @@ void WebUrlLoaderClient::reportSslCertError(int cert_error, net::X509Certificate
m_webFrame->reportSslCertError(this, cert_error, chain_bytes[0]);
}
+void WebUrlLoaderClient::requestClientCert(net::SSLCertRequestInfo* cert_request_info)
+{
+ if (!isActive())
+ return;
+
+ std::string host_and_port = cert_request_info->host_and_port;
+ m_webFrame->requestClientCert(this, host_and_port);
+}
+
} // namespace android