diff options
Diffstat (limited to 'chrome/browser/renderer_host/x509_user_cert_resource_handler.cc')
-rw-r--r-- | chrome/browser/renderer_host/x509_user_cert_resource_handler.cc | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/chrome/browser/renderer_host/x509_user_cert_resource_handler.cc b/chrome/browser/renderer_host/x509_user_cert_resource_handler.cc index 0c200a9..3dcc8ee 100644 --- a/chrome/browser/renderer_host/x509_user_cert_resource_handler.cc +++ b/chrome/browser/renderer_host/x509_user_cert_resource_handler.cc @@ -10,9 +10,9 @@ #include "chrome/browser/download/download_file.h" #include "chrome/browser/renderer_host/resource_dispatcher_host.h" #include "chrome/browser/renderer_host/resource_dispatcher_host_request_info.h" +#include "chrome/browser/ssl/ssl_add_cert_handler.h" #include "chrome/common/resource_response.h" #include "chrome/common/url_constants.h" -#include "net/base/cert_database.h" #include "net/base/io_buffer.h" #include "net/base/mime_sniffer.h" #include "net/base/mime_util.h" @@ -91,12 +91,18 @@ bool X509UserCertResourceHandler::OnResponseCompleted( int request_id, const URLRequestStatus& urs, const std::string& sec_info) { + if (urs.status() != URLRequestStatus::SUCCESS) + return false; + // TODO(gauravsh): Verify that 'request_id' was actually a keygen form post // and only then import the certificate. - scoped_ptr<net::CertDatabase> cert_db(new net::CertDatabase()); AssembleResource(); - - return cert_db->AddUserCert(resource_buffer_->data(), content_length_); + scoped_refptr<net::X509Certificate> cert = + net::X509Certificate::CreateFromBytes(resource_buffer_->data(), + content_length_); + // The handler will run the UI and delete itself when it's finished. + new SSLAddCertHandler(request_, cert); + return true; } void X509UserCertResourceHandler::OnRequestClosed() { |