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

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

Issue 10916094: Move the NSS functions out of CertDatabase into a new NSSCertDatabase class. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments Created 8 years, 3 months 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 507 matching lines...) Expand 10 before | Expand all | Expand 10 after
518 ShowCertificateViewer(web_ui()->GetWebContents(), GetParentWindow(), cert); 518 ShowCertificateViewer(web_ui()->GetWebContents(), GetParentWindow(), cert);
519 } 519 }
520 520
521 void CertificateManagerHandler::GetCATrust(const ListValue* args) { 521 void CertificateManagerHandler::GetCATrust(const ListValue* args) {
522 net::X509Certificate* cert = cert_id_map_->CallbackArgsToCert(args); 522 net::X509Certificate* cert = cert_id_map_->CallbackArgsToCert(args);
523 if (!cert) { 523 if (!cert) {
524 web_ui()->CallJavascriptFunction("CertificateEditCaTrustOverlay.dismiss"); 524 web_ui()->CallJavascriptFunction("CertificateEditCaTrustOverlay.dismiss");
525 return; 525 return;
526 } 526 }
527 527
528 net::CertDatabase::TrustBits trust_bits = 528 net::NSSCertDatabase::TrustBits trust_bits =
529 certificate_manager_model_->cert_db().GetCertTrust(cert, net::CA_CERT); 529 certificate_manager_model_->cert_db().GetCertTrust(cert, net::CA_CERT);
530 base::FundamentalValue ssl_value( 530 base::FundamentalValue ssl_value(
531 static_cast<bool>(trust_bits & net::CertDatabase::TRUSTED_SSL)); 531 static_cast<bool>(trust_bits & net::NSSCertDatabase::TRUSTED_SSL));
532 base::FundamentalValue email_value( 532 base::FundamentalValue email_value(
533 static_cast<bool>(trust_bits & net::CertDatabase::TRUSTED_EMAIL)); 533 static_cast<bool>(trust_bits & net::NSSCertDatabase::TRUSTED_EMAIL));
534 base::FundamentalValue obj_sign_value( 534 base::FundamentalValue obj_sign_value(
535 static_cast<bool>(trust_bits & net::CertDatabase::TRUSTED_OBJ_SIGN)); 535 static_cast<bool>(trust_bits & net::NSSCertDatabase::TRUSTED_OBJ_SIGN));
536 web_ui()->CallJavascriptFunction( 536 web_ui()->CallJavascriptFunction(
537 "CertificateEditCaTrustOverlay.populateTrust", 537 "CertificateEditCaTrustOverlay.populateTrust",
538 ssl_value, email_value, obj_sign_value); 538 ssl_value, email_value, obj_sign_value);
539 } 539 }
540 540
541 void CertificateManagerHandler::EditCATrust(const ListValue* args) { 541 void CertificateManagerHandler::EditCATrust(const ListValue* args) {
542 net::X509Certificate* cert = cert_id_map_->CallbackArgsToCert(args); 542 net::X509Certificate* cert = cert_id_map_->CallbackArgsToCert(args);
543 bool fail = !cert; 543 bool fail = !cert;
544 bool trust_ssl = false; 544 bool trust_ssl = false;
545 bool trust_email = false; 545 bool trust_email = false;
546 bool trust_obj_sign = false; 546 bool trust_obj_sign = false;
547 fail |= !CallbackArgsToBool(args, 1, &trust_ssl); 547 fail |= !CallbackArgsToBool(args, 1, &trust_ssl);
548 fail |= !CallbackArgsToBool(args, 2, &trust_email); 548 fail |= !CallbackArgsToBool(args, 2, &trust_email);
549 fail |= !CallbackArgsToBool(args, 3, &trust_obj_sign); 549 fail |= !CallbackArgsToBool(args, 3, &trust_obj_sign);
550 if (fail) { 550 if (fail) {
551 LOG(ERROR) << "EditCATrust args fail"; 551 LOG(ERROR) << "EditCATrust args fail";
552 web_ui()->CallJavascriptFunction("CertificateEditCaTrustOverlay.dismiss"); 552 web_ui()->CallJavascriptFunction("CertificateEditCaTrustOverlay.dismiss");
553 return; 553 return;
554 } 554 }
555 555
556 bool result = certificate_manager_model_->SetCertTrust( 556 bool result = certificate_manager_model_->SetCertTrust(
557 cert, 557 cert,
558 net::CA_CERT, 558 net::CA_CERT,
559 trust_ssl * net::CertDatabase::TRUSTED_SSL + 559 trust_ssl * net::NSSCertDatabase::TRUSTED_SSL +
560 trust_email * net::CertDatabase::TRUSTED_EMAIL + 560 trust_email * net::NSSCertDatabase::TRUSTED_EMAIL +
561 trust_obj_sign * net::CertDatabase::TRUSTED_OBJ_SIGN); 561 trust_obj_sign * net::NSSCertDatabase::TRUSTED_OBJ_SIGN);
562 web_ui()->CallJavascriptFunction("CertificateEditCaTrustOverlay.dismiss"); 562 web_ui()->CallJavascriptFunction("CertificateEditCaTrustOverlay.dismiss");
563 if (!result) { 563 if (!result) {
564 // TODO(mattm): better error messages? 564 // TODO(mattm): better error messages?
565 ShowError( 565 ShowError(
566 l10n_util::GetStringUTF8(IDS_CERT_MANAGER_SET_TRUST_ERROR_TITLE), 566 l10n_util::GetStringUTF8(IDS_CERT_MANAGER_SET_TRUST_ERROR_TITLE),
567 l10n_util::GetStringUTF8(IDS_CERT_MANAGER_UNKNOWN_ERROR)); 567 l10n_util::GetStringUTF8(IDS_CERT_MANAGER_UNKNOWN_ERROR));
568 } 568 }
569 } 569 }
570 570
571 void CertificateManagerHandler::EditServer(const ListValue* args) { 571 void CertificateManagerHandler::EditServer(const ListValue* args) {
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
826 selected_cert_list_ = net::X509Certificate::CreateCertificateListFromBytes( 826 selected_cert_list_ = net::X509Certificate::CreateCertificateListFromBytes(
827 data.data(), data.size(), net::X509Certificate::FORMAT_AUTO); 827 data.data(), data.size(), net::X509Certificate::FORMAT_AUTO);
828 if (selected_cert_list_.empty()) { 828 if (selected_cert_list_.empty()) {
829 ImportExportCleanup(); 829 ImportExportCleanup();
830 ShowError( 830 ShowError(
831 l10n_util::GetStringUTF8(IDS_CERT_MANAGER_SERVER_IMPORT_ERROR_TITLE), 831 l10n_util::GetStringUTF8(IDS_CERT_MANAGER_SERVER_IMPORT_ERROR_TITLE),
832 l10n_util::GetStringUTF8(IDS_CERT_MANAGER_CERT_PARSE_ERROR)); 832 l10n_util::GetStringUTF8(IDS_CERT_MANAGER_CERT_PARSE_ERROR));
833 return; 833 return;
834 } 834 }
835 835
836 net::CertDatabase::ImportCertFailureList not_imported; 836 net::NSSCertDatabase::ImportCertFailureList not_imported;
837 // TODO(mattm): Add UI for trust. http://crbug.com/76274 837 // TODO(mattm): Add UI for trust. http://crbug.com/76274
838 bool result = certificate_manager_model_->ImportServerCert( 838 bool result = certificate_manager_model_->ImportServerCert(
839 selected_cert_list_, 839 selected_cert_list_,
840 net::CertDatabase::TRUST_DEFAULT, 840 net::NSSCertDatabase::TRUST_DEFAULT,
841 &not_imported); 841 &not_imported);
842 if (!result) { 842 if (!result) {
843 ShowError( 843 ShowError(
844 l10n_util::GetStringUTF8(IDS_CERT_MANAGER_SERVER_IMPORT_ERROR_TITLE), 844 l10n_util::GetStringUTF8(IDS_CERT_MANAGER_SERVER_IMPORT_ERROR_TITLE),
845 l10n_util::GetStringUTF8(IDS_CERT_MANAGER_UNKNOWN_ERROR)); 845 l10n_util::GetStringUTF8(IDS_CERT_MANAGER_UNKNOWN_ERROR));
846 } else if (!not_imported.empty()) { 846 } else if (!not_imported.empty()) {
847 ShowImportErrors( 847 ShowImportErrors(
848 l10n_util::GetStringUTF8(IDS_CERT_MANAGER_SERVER_IMPORT_ERROR_TITLE), 848 l10n_util::GetStringUTF8(IDS_CERT_MANAGER_SERVER_IMPORT_ERROR_TITLE),
849 not_imported); 849 not_imported);
850 } 850 }
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
911 fail |= !CallbackArgsToBool(args, 2, &trust_obj_sign); 911 fail |= !CallbackArgsToBool(args, 2, &trust_obj_sign);
912 if (fail) { 912 if (fail) {
913 LOG(ERROR) << "ImportCATrustSelected args fail"; 913 LOG(ERROR) << "ImportCATrustSelected args fail";
914 ImportExportCleanup(); 914 ImportExportCleanup();
915 web_ui()->CallJavascriptFunction("CertificateEditCaTrustOverlay.dismiss"); 915 web_ui()->CallJavascriptFunction("CertificateEditCaTrustOverlay.dismiss");
916 return; 916 return;
917 } 917 }
918 918
919 // TODO(mattm): add UI for setting explicit distrust, too. 919 // TODO(mattm): add UI for setting explicit distrust, too.
920 // http://crbug.com/128411 920 // http://crbug.com/128411
921 net::CertDatabase::ImportCertFailureList not_imported; 921 net::NSSCertDatabase::ImportCertFailureList not_imported;
922 bool result = certificate_manager_model_->ImportCACerts( 922 bool result = certificate_manager_model_->ImportCACerts(
923 selected_cert_list_, 923 selected_cert_list_,
924 trust_ssl * net::CertDatabase::TRUSTED_SSL + 924 trust_ssl * net::NSSCertDatabase::TRUSTED_SSL +
925 trust_email * net::CertDatabase::TRUSTED_EMAIL + 925 trust_email * net::NSSCertDatabase::TRUSTED_EMAIL +
926 trust_obj_sign * net::CertDatabase::TRUSTED_OBJ_SIGN, 926 trust_obj_sign * net::NSSCertDatabase::TRUSTED_OBJ_SIGN,
927 &not_imported); 927 &not_imported);
928 web_ui()->CallJavascriptFunction("CertificateEditCaTrustOverlay.dismiss"); 928 web_ui()->CallJavascriptFunction("CertificateEditCaTrustOverlay.dismiss");
929 if (!result) { 929 if (!result) {
930 ShowError( 930 ShowError(
931 l10n_util::GetStringUTF8(IDS_CERT_MANAGER_CA_IMPORT_ERROR_TITLE), 931 l10n_util::GetStringUTF8(IDS_CERT_MANAGER_CA_IMPORT_ERROR_TITLE),
932 l10n_util::GetStringUTF8(IDS_CERT_MANAGER_UNKNOWN_ERROR)); 932 l10n_util::GetStringUTF8(IDS_CERT_MANAGER_UNKNOWN_ERROR));
933 } else if (!not_imported.empty()) { 933 } else if (!not_imported.empty()) {
934 ShowImportErrors( 934 ShowImportErrors(
935 l10n_util::GetStringUTF8(IDS_CERT_MANAGER_CA_IMPORT_ERROR_TITLE), 935 l10n_util::GetStringUTF8(IDS_CERT_MANAGER_CA_IMPORT_ERROR_TITLE),
936 not_imported); 936 not_imported);
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
1034 args.push_back(Value::CreateStringValue(error)); 1034 args.push_back(Value::CreateStringValue(error));
1035 args.push_back(Value::CreateStringValue(l10n_util::GetStringUTF8(IDS_OK))); 1035 args.push_back(Value::CreateStringValue(l10n_util::GetStringUTF8(IDS_OK)));
1036 args.push_back(Value::CreateNullValue()); // cancelTitle 1036 args.push_back(Value::CreateNullValue()); // cancelTitle
1037 args.push_back(Value::CreateNullValue()); // okCallback 1037 args.push_back(Value::CreateNullValue()); // okCallback
1038 args.push_back(Value::CreateNullValue()); // cancelCallback 1038 args.push_back(Value::CreateNullValue()); // cancelCallback
1039 web_ui()->CallJavascriptFunction("AlertOverlay.show", args.get()); 1039 web_ui()->CallJavascriptFunction("AlertOverlay.show", args.get());
1040 } 1040 }
1041 1041
1042 void CertificateManagerHandler::ShowImportErrors( 1042 void CertificateManagerHandler::ShowImportErrors(
1043 const std::string& title, 1043 const std::string& title,
1044 const net::CertDatabase::ImportCertFailureList& not_imported) const { 1044 const net::NSSCertDatabase::ImportCertFailureList& not_imported) const {
1045 std::string error; 1045 std::string error;
1046 if (selected_cert_list_.size() == 1) 1046 if (selected_cert_list_.size() == 1)
1047 error = l10n_util::GetStringUTF8( 1047 error = l10n_util::GetStringUTF8(
1048 IDS_CERT_MANAGER_IMPORT_SINGLE_NOT_IMPORTED); 1048 IDS_CERT_MANAGER_IMPORT_SINGLE_NOT_IMPORTED);
1049 else if (not_imported.size() == selected_cert_list_.size()) 1049 else if (not_imported.size() == selected_cert_list_.size())
1050 error = l10n_util::GetStringUTF8(IDS_CERT_MANAGER_IMPORT_ALL_NOT_IMPORTED); 1050 error = l10n_util::GetStringUTF8(IDS_CERT_MANAGER_IMPORT_ALL_NOT_IMPORTED);
1051 else 1051 else
1052 error = l10n_util::GetStringUTF8(IDS_CERT_MANAGER_IMPORT_SOME_NOT_IMPORTED); 1052 error = l10n_util::GetStringUTF8(IDS_CERT_MANAGER_IMPORT_SOME_NOT_IMPORTED);
1053 1053
1054 ListValue cert_error_list; 1054 ListValue cert_error_list;
1055 for (size_t i = 0; i < not_imported.size(); ++i) { 1055 for (size_t i = 0; i < not_imported.size(); ++i) {
1056 const net::CertDatabase::ImportCertFailure& failure = not_imported[i]; 1056 const net::NSSCertDatabase::ImportCertFailure& failure = not_imported[i];
1057 DictionaryValue* dict = new DictionaryValue; 1057 DictionaryValue* dict = new DictionaryValue;
1058 dict->SetString(kNameId, failure.certificate->subject().GetDisplayName()); 1058 dict->SetString(kNameId, failure.certificate->subject().GetDisplayName());
1059 dict->SetString(kErrorId, NetErrorToString(failure.net_error)); 1059 dict->SetString(kErrorId, NetErrorToString(failure.net_error));
1060 cert_error_list.Append(dict); 1060 cert_error_list.Append(dict);
1061 } 1061 }
1062 1062
1063 StringValue title_value(title); 1063 StringValue title_value(title);
1064 StringValue error_value(error); 1064 StringValue error_value(error);
1065 web_ui()->CallJavascriptFunction("CertificateImportErrorOverlay.show", 1065 web_ui()->CallJavascriptFunction("CertificateImportErrorOverlay.show",
1066 title_value, 1066 title_value,
(...skipping 18 matching lines...) Expand all
1085 web_ui()->CallJavascriptFunction("CertificateManager.onCheckTpmTokenReady", 1085 web_ui()->CallJavascriptFunction("CertificateManager.onCheckTpmTokenReady",
1086 ready); 1086 ready);
1087 } 1087 }
1088 #endif 1088 #endif
1089 1089
1090 gfx::NativeWindow CertificateManagerHandler::GetParentWindow() const { 1090 gfx::NativeWindow CertificateManagerHandler::GetParentWindow() const {
1091 return web_ui()->GetWebContents()->GetView()->GetTopLevelNativeWindow(); 1091 return web_ui()->GetWebContents()->GetView()->GetTopLevelNativeWindow();
1092 } 1092 }
1093 1093
1094 } // namespace options 1094 } // namespace options
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698