| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ssl/ssl_add_cert_handler.h" | 5 #include "chrome/browser/ssl/ssl_add_cert_handler.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "chrome/browser/tab_contents/tab_contents_ssl_helper.h" | 8 #include "chrome/browser/tab_contents/tab_contents_ssl_helper.h" |
| 9 #include "chrome/browser/tab_contents/tab_util.h" | 9 #include "chrome/browser/tab_contents/tab_util.h" |
| 10 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" | 10 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" |
| (...skipping 21 matching lines...) Expand all Loading... |
| 32 AddRef(); | 32 AddRef(); |
| 33 // Delay adding the certificate until the next mainloop iteration. | 33 // Delay adding the certificate until the next mainloop iteration. |
| 34 BrowserThread::PostTask( | 34 BrowserThread::PostTask( |
| 35 BrowserThread::IO, FROM_HERE, | 35 BrowserThread::IO, FROM_HERE, |
| 36 base::Bind(&SSLAddCertHandler::Run, this)); | 36 base::Bind(&SSLAddCertHandler::Run, this)); |
| 37 } | 37 } |
| 38 | 38 |
| 39 SSLAddCertHandler::~SSLAddCertHandler() {} | 39 SSLAddCertHandler::~SSLAddCertHandler() {} |
| 40 | 40 |
| 41 void SSLAddCertHandler::Run() { | 41 void SSLAddCertHandler::Run() { |
| 42 // TODO(wtc): if cert_ is NULL, it means we could not decode the |
| 43 // application/x-x509-user-cert response. db.CheckUserCert() will |
| 44 // return net::ERR_CERT_INVALID. We should add a more informative |
| 45 // error code. |
| 42 int cert_error; | 46 int cert_error; |
| 43 { | 47 { |
| 44 net::CertDatabase db; | 48 net::CertDatabase db; |
| 45 cert_error = db.CheckUserCert(cert_); | 49 cert_error = db.CheckUserCert(cert_); |
| 46 } | 50 } |
| 47 if (cert_error != net::OK) { | 51 if (cert_error != net::OK) { |
| 48 LOG_IF(ERROR, cert_error == net::ERR_NO_PRIVATE_KEY_FOR_CERT) | 52 LOG_IF(ERROR, cert_error == net::ERR_NO_PRIVATE_KEY_FOR_CERT) |
| 49 << "No corresponding private key in store for cert: " | 53 << "No corresponding private key in store for cert: " |
| 50 << (cert_.get() ? cert_->subject().GetDisplayName() : "NULL"); | 54 << (cert_.get() ? cert_->subject().GetDisplayName() : "NULL"); |
| 51 | 55 |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 110 TabContentsWrapper::GetCurrentWrapperForContents(tab); | 114 TabContentsWrapper::GetCurrentWrapperForContents(tab); |
| 111 if (add_cert) { | 115 if (add_cert) { |
| 112 if (cert_error == net::OK) { | 116 if (cert_error == net::OK) { |
| 113 wrapper->ssl_helper()->OnAddClientCertificateSuccess(this); | 117 wrapper->ssl_helper()->OnAddClientCertificateSuccess(this); |
| 114 } else { | 118 } else { |
| 115 wrapper->ssl_helper()->OnAddClientCertificateError(this, cert_error); | 119 wrapper->ssl_helper()->OnAddClientCertificateError(this, cert_error); |
| 116 } | 120 } |
| 117 } | 121 } |
| 118 wrapper->ssl_helper()->OnAddClientCertificateFinished(this); | 122 wrapper->ssl_helper()->OnAddClientCertificateFinished(this); |
| 119 } | 123 } |
| OLD | NEW |