Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(677)

Side by Side Diff: chrome/browser/ui/webui/options/certificate_manager_handler.cc

Issue 18121007: *WIP* Store NSS slots per profile. Move keygen to chrome. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: more refactoring Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/ui/webui/options/certificate_manager_handler.h" 5 #include "chrome/browser/ui/webui/options/certificate_manager_handler.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <map> 8 #include <map>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 17 matching lines...) Expand all
28 #include "content/public/browser/web_contents_view.h" 28 #include "content/public/browser/web_contents_view.h"
29 #include "grit/generated_resources.h" 29 #include "grit/generated_resources.h"
30 #include "net/base/crypto_module.h" 30 #include "net/base/crypto_module.h"
31 #include "net/base/net_errors.h" 31 #include "net/base/net_errors.h"
32 #include "net/cert/x509_certificate.h" 32 #include "net/cert/x509_certificate.h"
33 #include "ui/base/l10n/l10n_util.h" 33 #include "ui/base/l10n/l10n_util.h"
34 34
35 #if defined(OS_CHROMEOS) 35 #if defined(OS_CHROMEOS)
36 #include "chrome/browser/chromeos/policy/user_network_configuration_updater.h" 36 #include "chrome/browser/chromeos/policy/user_network_configuration_updater.h"
37 #include "chrome/browser/chromeos/policy/user_network_configuration_updater_fact ory.h" 37 #include "chrome/browser/chromeos/policy/user_network_configuration_updater_fact ory.h"
38 #include "chromeos/dbus/cryptohome_client.h"
39 #include "chromeos/dbus/dbus_thread_manager.h"
40 #endif 38 #endif
41 39
42 using content::BrowserThread; 40 using content::BrowserThread;
43 41
44 namespace { 42 namespace {
45 43
46 static const char kKeyId[] = "id"; 44 static const char kKeyId[] = "id";
47 static const char kSubNodesId[] = "subnodes"; 45 static const char kSubNodesId[] = "subnodes";
48 static const char kNameId[] = "name"; 46 static const char kNameId[] = "name";
49 static const char kReadOnlyId[] = "readonly"; 47 static const char kReadOnlyId[] = "readonly";
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 *saved_errno = *bytes_written >= 0 ? 0 : errno; 281 *saved_errno = *bytes_written >= 0 ? 0 : errno;
284 } 282 }
285 283
286 /////////////////////////////////////////////////////////////////////////////// 284 ///////////////////////////////////////////////////////////////////////////////
287 // CertificateManagerHandler 285 // CertificateManagerHandler
288 286
289 CertificateManagerHandler::CertificateManagerHandler() 287 CertificateManagerHandler::CertificateManagerHandler()
290 : use_hardware_backed_(false), 288 : use_hardware_backed_(false),
291 file_access_provider_(new FileAccessProvider()), 289 file_access_provider_(new FileAccessProvider()),
292 cert_id_map_(new CertIdMap), 290 cert_id_map_(new CertIdMap),
293 weak_ptr_factory_(this) { 291 weak_ptr_factory_(this) {}
294 certificate_manager_model_.reset(new CertificateManagerModel(this));
295 }
296 292
297 CertificateManagerHandler::~CertificateManagerHandler() { 293 CertificateManagerHandler::~CertificateManagerHandler() {
298 } 294 }
299 295
300 void CertificateManagerHandler::GetLocalizedValues( 296 void CertificateManagerHandler::GetLocalizedValues(
301 DictionaryValue* localized_strings) { 297 DictionaryValue* localized_strings) {
302 DCHECK(localized_strings); 298 DCHECK(localized_strings);
303 299
304 RegisterTitle(localized_strings, "certificateManagerPage", 300 RegisterTitle(localized_strings, "certificateManagerPage",
305 IDS_CERTIFICATE_MANAGER_TITLE); 301 IDS_CERTIFICATE_MANAGER_TITLE);
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
466 462
467 web_ui()->RegisterMessageCallback( 463 web_ui()->RegisterMessageCallback(
468 "deleteCertificate", 464 "deleteCertificate",
469 base::Bind(&CertificateManagerHandler::Delete, 465 base::Bind(&CertificateManagerHandler::Delete,
470 base::Unretained(this))); 466 base::Unretained(this)));
471 467
472 web_ui()->RegisterMessageCallback( 468 web_ui()->RegisterMessageCallback(
473 "populateCertificateManager", 469 "populateCertificateManager",
474 base::Bind(&CertificateManagerHandler::Populate, 470 base::Bind(&CertificateManagerHandler::Populate,
475 base::Unretained(this))); 471 base::Unretained(this)));
472 }
476 473
477 #if defined(OS_CHROMEOS) 474 void CertificateManagerHandler::CertificateManagerModelReady() {
478 web_ui()->RegisterMessageCallback( 475 web_ui()->CallJavascriptFunction("CertificateManager.onModelReady");
479 "checkTpmTokenReady", 476 certificate_manager_model_->Refresh();
480 base::Bind(&CertificateManagerHandler::CheckTpmTokenReady,
481 base::Unretained(this)));
482 #endif
483 } 477 }
484 478
485 void CertificateManagerHandler::CertificatesRefreshed() { 479 void CertificateManagerHandler::CertificatesRefreshed() {
486 net::CertificateList web_trusted_certs; 480 net::CertificateList web_trusted_certs;
487 #if defined(OS_CHROMEOS) 481 #if defined(OS_CHROMEOS)
488 policy::UserNetworkConfigurationUpdater* service = 482 policy::UserNetworkConfigurationUpdater* service =
489 policy::UserNetworkConfigurationUpdaterFactory::GetForProfile( 483 policy::UserNetworkConfigurationUpdaterFactory::GetForProfile(
490 Profile::FromWebUI(web_ui())); 484 Profile::FromWebUI(web_ui()));
491 if (service) 485 if (service)
492 service->GetWebTrustedCertificates(&web_trusted_certs); 486 service->GetWebTrustedCertificates(&web_trusted_certs);
(...skipping 485 matching lines...) Expand 10 before | Expand all | Expand 10 after
978 bool result = certificate_manager_model_->Delete(cert); 972 bool result = certificate_manager_model_->Delete(cert);
979 if (!result) { 973 if (!result) {
980 // TODO(mattm): better error messages? 974 // TODO(mattm): better error messages?
981 ShowError( 975 ShowError(
982 l10n_util::GetStringUTF8(IDS_CERT_MANAGER_DELETE_CERT_ERROR_TITLE), 976 l10n_util::GetStringUTF8(IDS_CERT_MANAGER_DELETE_CERT_ERROR_TITLE),
983 l10n_util::GetStringUTF8(IDS_CERT_MANAGER_UNKNOWN_ERROR)); 977 l10n_util::GetStringUTF8(IDS_CERT_MANAGER_UNKNOWN_ERROR));
984 } 978 }
985 } 979 }
986 980
987 void CertificateManagerHandler::Populate(const ListValue* args) { 981 void CertificateManagerHandler::Populate(const ListValue* args) {
988 certificate_manager_model_->Refresh(); 982 if (certificate_manager_model_) {
983 if (certificate_manager_model_->is_ready()) {
984 // Re-run the webui initialization.
985 CertificateManagerModelReady();
986 }
987 // else wait for CertificateManagerModelReady to be called through the
988 // observer, as the init is still pending.
989 } else {
990 certificate_manager_model_.reset(
991 new CertificateManagerModel(Profile::FromWebUI(web_ui()), this));
992 }
989 } 993 }
990 994
991 void CertificateManagerHandler::PopulateTree( 995 void CertificateManagerHandler::PopulateTree(
992 const std::string& tab_name, 996 const std::string& tab_name,
993 net::CertType type, 997 net::CertType type,
994 const net::CertificateList& web_trust_certs) { 998 const net::CertificateList& web_trust_certs) {
995 const std::string tree_name = tab_name + "-tree"; 999 const std::string tree_name = tab_name + "-tree";
996 1000
997 scoped_ptr<icu::Collator> collator; 1001 scoped_ptr<icu::Collator> collator;
998 UErrorCode error = U_ZERO_ERROR; 1002 UErrorCode error = U_ZERO_ERROR;
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
1093 } 1097 }
1094 1098
1095 StringValue title_value(title); 1099 StringValue title_value(title);
1096 StringValue error_value(error); 1100 StringValue error_value(error);
1097 web_ui()->CallJavascriptFunction("CertificateImportErrorOverlay.show", 1101 web_ui()->CallJavascriptFunction("CertificateImportErrorOverlay.show",
1098 title_value, 1102 title_value,
1099 error_value, 1103 error_value,
1100 cert_error_list); 1104 cert_error_list);
1101 } 1105 }
1102 1106
1103 #if defined(OS_CHROMEOS)
1104 void CertificateManagerHandler::CheckTpmTokenReady(const ListValue* args) {
1105 chromeos::CryptohomeClient* cryptohome_client =
1106 chromeos::DBusThreadManager::Get()->GetCryptohomeClient();
1107 cryptohome_client->Pkcs11IsTpmTokenReady(
1108 base::Bind(&CertificateManagerHandler::CheckTpmTokenReadyInternal,
1109 weak_ptr_factory_.GetWeakPtr()));
1110 }
1111
1112 void CertificateManagerHandler::CheckTpmTokenReadyInternal(
1113 chromeos::DBusMethodCallStatus call_status,
1114 bool is_tpm_token_ready) {
1115 base::FundamentalValue ready(
1116 call_status == chromeos::DBUS_METHOD_CALL_SUCCESS && is_tpm_token_ready);
1117 web_ui()->CallJavascriptFunction("CertificateManager.onCheckTpmTokenReady",
1118 ready);
1119 }
1120 #endif
1121
1122 gfx::NativeWindow CertificateManagerHandler::GetParentWindow() const { 1107 gfx::NativeWindow CertificateManagerHandler::GetParentWindow() const {
1123 return web_ui()->GetWebContents()->GetView()->GetTopLevelNativeWindow(); 1108 return web_ui()->GetWebContents()->GetView()->GetTopLevelNativeWindow();
1124 } 1109 }
1125 1110
1126 } // namespace options 1111 } // namespace options
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698