diff options
Diffstat (limited to 'Source/WebKit/android/WebCoreSupport/WebUrlLoaderClient.cpp')
-rw-r--r-- | Source/WebKit/android/WebCoreSupport/WebUrlLoaderClient.cpp | 18 |
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 |