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/certificate_manager_model.h" | 5 #include "chrome/browser/certificate_manager_model.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/i18n/time_formatting.h" | 8 #include "base/i18n/time_formatting.h" |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
57 BrowserThread::IO, | 57 BrowserThread::IO, |
58 FROM_HERE, | 58 FROM_HERE, |
59 base::Bind(&CertificateManagerModel::GetCertDBOnIOThread, | 59 base::Bind(&CertificateManagerModel::GetCertDBOnIOThread, |
60 browser_context->GetResourceContext(), | 60 browser_context->GetResourceContext(), |
61 observer, | 61 observer, |
62 callback)); | 62 callback)); |
63 } | 63 } |
64 | 64 |
65 CertificateManagerModel::CertificateManagerModel( | 65 CertificateManagerModel::CertificateManagerModel( |
66 net::NSSCertDatabase* nss_cert_database, | 66 net::NSSCertDatabase* nss_cert_database, |
| 67 bool is_user_db_available, |
67 bool is_tpm_available, | 68 bool is_tpm_available, |
68 Observer* observer) | 69 Observer* observer) |
69 : cert_db_(nss_cert_database), | 70 : cert_db_(nss_cert_database), |
| 71 is_user_db_available_(is_user_db_available), |
70 is_tpm_available_(is_tpm_available), | 72 is_tpm_available_(is_tpm_available), |
71 observer_(observer) { | 73 observer_(observer) { |
72 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 74 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
73 } | 75 } |
74 | 76 |
75 CertificateManagerModel::~CertificateManagerModel() { | 77 CertificateManagerModel::~CertificateManagerModel() { |
76 } | 78 } |
77 | 79 |
78 void CertificateManagerModel::Refresh() { | 80 void CertificateManagerModel::Refresh() { |
79 DVLOG(1) << "refresh started"; | 81 DVLOG(1) << "refresh started"; |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
200 } | 202 } |
201 | 203 |
202 bool CertificateManagerModel::IsHardwareBacked( | 204 bool CertificateManagerModel::IsHardwareBacked( |
203 const net::X509Certificate* cert) const { | 205 const net::X509Certificate* cert) const { |
204 return cert_db_->IsHardwareBacked(cert); | 206 return cert_db_->IsHardwareBacked(cert); |
205 } | 207 } |
206 | 208 |
207 // static | 209 // static |
208 void CertificateManagerModel::DidGetCertDBOnUIThread( | 210 void CertificateManagerModel::DidGetCertDBOnUIThread( |
209 net::NSSCertDatabase* cert_db, | 211 net::NSSCertDatabase* cert_db, |
| 212 bool is_user_db_available, |
210 bool is_tpm_available, | 213 bool is_tpm_available, |
211 CertificateManagerModel::Observer* observer, | 214 CertificateManagerModel::Observer* observer, |
212 const CreationCallback& callback) { | 215 const CreationCallback& callback) { |
213 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 216 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
214 | 217 |
215 scoped_ptr<CertificateManagerModel> model( | 218 scoped_ptr<CertificateManagerModel> model(new CertificateManagerModel( |
216 new CertificateManagerModel(cert_db, is_tpm_available, observer)); | 219 cert_db, is_user_db_available, is_tpm_available, observer)); |
217 callback.Run(model.Pass()); | 220 callback.Run(model.Pass()); |
218 } | 221 } |
219 | 222 |
220 // static | 223 // static |
221 void CertificateManagerModel::DidGetCertDBOnIOThread( | 224 void CertificateManagerModel::DidGetCertDBOnIOThread( |
222 CertificateManagerModel::Observer* observer, | 225 CertificateManagerModel::Observer* observer, |
223 const CreationCallback& callback, | 226 const CreationCallback& callback, |
224 net::NSSCertDatabase* cert_db) { | 227 net::NSSCertDatabase* cert_db) { |
225 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 228 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
226 | 229 |
| 230 bool is_user_db_available = cert_db->GetPublicSlot(); |
227 bool is_tpm_available = false; | 231 bool is_tpm_available = false; |
228 #if defined(OS_CHROMEOS) | 232 #if defined(OS_CHROMEOS) |
229 is_tpm_available = crypto::IsTPMTokenEnabledForNSS(); | 233 is_tpm_available = crypto::IsTPMTokenEnabledForNSS(); |
230 #endif | 234 #endif |
231 BrowserThread::PostTask( | 235 BrowserThread::PostTask( |
232 BrowserThread::UI, | 236 BrowserThread::UI, |
233 FROM_HERE, | 237 FROM_HERE, |
234 base::Bind(&CertificateManagerModel::DidGetCertDBOnUIThread, | 238 base::Bind(&CertificateManagerModel::DidGetCertDBOnUIThread, |
235 cert_db, | 239 cert_db, |
| 240 is_user_db_available, |
236 is_tpm_available, | 241 is_tpm_available, |
237 observer, | 242 observer, |
238 callback)); | 243 callback)); |
239 } | 244 } |
240 | 245 |
241 // static | 246 // static |
242 void CertificateManagerModel::GetCertDBOnIOThread( | 247 void CertificateManagerModel::GetCertDBOnIOThread( |
243 content::ResourceContext* context, | 248 content::ResourceContext* context, |
244 CertificateManagerModel::Observer* observer, | 249 CertificateManagerModel::Observer* observer, |
245 const CreationCallback& callback) { | 250 const CreationCallback& callback) { |
246 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 251 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
247 net::NSSCertDatabase* cert_db = GetNSSCertDatabaseForResourceContext( | 252 net::NSSCertDatabase* cert_db = GetNSSCertDatabaseForResourceContext( |
248 context, | 253 context, |
249 base::Bind(&CertificateManagerModel::DidGetCertDBOnIOThread, | 254 base::Bind(&CertificateManagerModel::DidGetCertDBOnIOThread, |
250 observer, | 255 observer, |
251 callback)); | 256 callback)); |
252 if (cert_db) | 257 if (cert_db) |
253 DidGetCertDBOnIOThread(observer, callback, cert_db); | 258 DidGetCertDBOnIOThread(observer, callback, cert_db); |
254 } | 259 } |
OLD | NEW |