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/chromeos/options/vpn_config_view.h" | 5 #include "chrome/browser/chromeos/options/vpn_config_view.h" |
6 | 6 |
7 #include "base/string_util.h" | 7 #include "base/string_util.h" |
8 #include "base/stringprintf.h" | 8 #include "base/stringprintf.h" |
9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
10 #include "chrome/browser/chromeos/cros/cros_library.h" | 10 #include "chrome/browser/chromeos/cros/cros_library.h" |
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
356 const std::string VPNConfigView::GetGroupName() const { | 356 const std::string VPNConfigView::GetGroupName() const { |
357 return GetTextFromField(group_name_textfield_, false); | 357 return GetTextFromField(group_name_textfield_, false); |
358 } | 358 } |
359 | 359 |
360 const std::string VPNConfigView::GetOTP() const { | 360 const std::string VPNConfigView::GetOTP() const { |
361 return GetTextFromField(otp_textfield_, true); | 361 return GetTextFromField(otp_textfield_, true); |
362 } | 362 } |
363 | 363 |
364 const std::string VPNConfigView::GetServerCACertNssNickname() const { | 364 const std::string VPNConfigView::GetServerCACertNssNickname() const { |
365 DCHECK(cert_library_); | 365 DCHECK(cert_library_); |
366 int selected = | 366 int index = server_ca_cert_combobox_ ? |
367 server_ca_cert_combobox_ ? server_ca_cert_combobox_->selected_item() : 0; | 367 server_ca_cert_combobox_->selected_index() : 0; |
368 if (selected == 0) { | 368 if (index == 0) { |
369 // First item is "Default". | 369 // First item is "Default". |
370 return std::string(); | 370 return std::string(); |
371 } else { | 371 } else { |
372 DCHECK(cert_library_); | 372 DCHECK(cert_library_); |
373 DCHECK_GT(cert_library_->GetCACertificates().Size(), 0); | 373 DCHECK_GT(cert_library_->GetCACertificates().Size(), 0); |
374 int cert_index = selected - 1; | 374 int cert_index = index - 1; |
375 return cert_library_->GetCACertificates().GetNicknameAt(cert_index); | 375 return cert_library_->GetCACertificates().GetNicknameAt(cert_index); |
376 } | 376 } |
377 } | 377 } |
378 | 378 |
379 const std::string VPNConfigView::GetUserCertID() const { | 379 const std::string VPNConfigView::GetUserCertID() const { |
380 DCHECK(cert_library_); | 380 DCHECK(cert_library_); |
381 if (!HaveUserCerts()) { | 381 if (!HaveUserCerts()) { |
382 return std::string(); // "None installed" | 382 return std::string(); // "None installed" |
383 } else { | 383 } else { |
384 // Certificates are listed in the order they appear in the model. | 384 // Certificates are listed in the order they appear in the model. |
385 int selected = | 385 int index = user_cert_combobox_ ? user_cert_combobox_->selected_index() : 0; |
386 user_cert_combobox_ ? user_cert_combobox_->selected_item() : 0; | 386 return cert_library_->GetUserCertificates().GetPkcs11IdAt(index); |
387 return cert_library_->GetUserCertificates().GetPkcs11IdAt(selected); | |
388 } | 387 } |
389 } | 388 } |
390 | 389 |
391 void VPNConfigView::Init(VirtualNetwork* vpn) { | 390 void VPNConfigView::Init(VirtualNetwork* vpn) { |
392 if (vpn) { | 391 if (vpn) { |
393 ParseVPNUIProperty(&ca_cert_ui_data_, vpn, onc::vpn::kServerCARef); | 392 ParseVPNUIProperty(&ca_cert_ui_data_, vpn, onc::vpn::kServerCARef); |
394 ParseVPNUIProperty(&psk_passphrase_ui_data_, vpn, onc::vpn::kPSK); | 393 ParseVPNUIProperty(&psk_passphrase_ui_data_, vpn, onc::vpn::kPSK); |
395 ParseVPNUIProperty(&user_cert_ui_data_, vpn, onc::vpn::kClientCertRef); | 394 ParseVPNUIProperty(&user_cert_ui_data_, vpn, onc::vpn::kClientCertRef); |
396 ParseVPNUIProperty(&username_ui_data_, vpn, onc::vpn::kUsername); | 395 ParseVPNUIProperty(&username_ui_data_, vpn, onc::vpn::kUsername); |
397 ParseVPNUIProperty(&user_passphrase_ui_data_, vpn, onc::vpn::kPassword); | 396 ParseVPNUIProperty(&user_passphrase_ui_data_, vpn, onc::vpn::kPassword); |
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
631 VirtualNetwork* vpn = cros->FindVirtualNetworkByPath(service_path_); | 630 VirtualNetwork* vpn = cros->FindVirtualNetworkByPath(service_path_); |
632 if (server_ca_cert_combobox_) { | 631 if (server_ca_cert_combobox_) { |
633 server_ca_cert_combobox_->ModelChanged(); | 632 server_ca_cert_combobox_->ModelChanged(); |
634 if (enable_server_ca_cert_ && | 633 if (enable_server_ca_cert_ && |
635 (vpn && !vpn->ca_cert_nss().empty())) { | 634 (vpn && !vpn->ca_cert_nss().empty())) { |
636 // Select the current server CA certificate in the combobox. | 635 // Select the current server CA certificate in the combobox. |
637 int cert_index = cert_library_->GetCACertificates().FindCertByNickname( | 636 int cert_index = cert_library_->GetCACertificates().FindCertByNickname( |
638 vpn->ca_cert_nss()); | 637 vpn->ca_cert_nss()); |
639 if (cert_index >= 0) { | 638 if (cert_index >= 0) { |
640 // Skip item for "Default" | 639 // Skip item for "Default" |
641 server_ca_cert_combobox_->SetSelectedItem(1 + cert_index); | 640 server_ca_cert_combobox_->SetSelectedIndex(1 + cert_index); |
642 } else { | 641 } else { |
643 server_ca_cert_combobox_->SetSelectedItem(0); | 642 server_ca_cert_combobox_->SetSelectedIndex(0); |
644 } | 643 } |
645 } else { | 644 } else { |
646 server_ca_cert_combobox_->SetSelectedItem(0); | 645 server_ca_cert_combobox_->SetSelectedIndex(0); |
647 } | 646 } |
648 } | 647 } |
649 | 648 |
650 if (user_cert_combobox_) { | 649 if (user_cert_combobox_) { |
651 user_cert_combobox_->ModelChanged(); | 650 user_cert_combobox_->ModelChanged(); |
652 if (enable_user_cert_ && | 651 if (enable_user_cert_ && |
653 (vpn && !vpn->client_cert_id().empty())) { | 652 (vpn && !vpn->client_cert_id().empty())) { |
654 int cert_index = cert_library_->GetUserCertificates().FindCertByPkcs11Id( | 653 int cert_index = cert_library_->GetUserCertificates().FindCertByPkcs11Id( |
655 vpn->client_cert_id()); | 654 vpn->client_cert_id()); |
656 if (cert_index >= 0) | 655 if (cert_index >= 0) |
657 user_cert_combobox_->SetSelectedItem(cert_index); | 656 user_cert_combobox_->SetSelectedIndex(cert_index); |
658 else | 657 else |
659 user_cert_combobox_->SetSelectedItem(0); | 658 user_cert_combobox_->SetSelectedIndex(0); |
660 } else { | 659 } else { |
661 user_cert_combobox_->SetSelectedItem(0); | 660 user_cert_combobox_->SetSelectedIndex(0); |
662 } | 661 } |
663 } | 662 } |
664 | 663 |
665 UpdateErrorLabel(); | 664 UpdateErrorLabel(); |
666 } | 665 } |
667 | 666 |
668 void VPNConfigView::UpdateControlsToEnable() { | 667 void VPNConfigView::UpdateControlsToEnable() { |
669 // Set which controls are enabled. | 668 // Set which controls are enabled. |
670 enable_psk_passphrase_ = false; | 669 enable_psk_passphrase_ = false; |
671 enable_user_cert_ = false; | 670 enable_user_cert_ = false; |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
768 return provider_type_ == PROVIDER_TYPE_L2TP_IPSEC_USER_CERT; | 767 return provider_type_ == PROVIDER_TYPE_L2TP_IPSEC_USER_CERT; |
769 } | 768 } |
770 | 769 |
771 bool VPNConfigView::HaveUserCerts() const { | 770 bool VPNConfigView::HaveUserCerts() const { |
772 return cert_library_->GetUserCertificates().Size() > 0; | 771 return cert_library_->GetUserCertificates().Size() > 0; |
773 } | 772 } |
774 | 773 |
775 bool VPNConfigView::IsUserCertValid() const { | 774 bool VPNConfigView::IsUserCertValid() const { |
776 if (!user_cert_combobox_ || !enable_user_cert_) | 775 if (!user_cert_combobox_ || !enable_user_cert_) |
777 return false; | 776 return false; |
778 int selected = user_cert_combobox_->selected_item(); | 777 int index = user_cert_combobox_->selected_index(); |
779 if (selected < 0) | 778 if (index < 0) |
780 return false; | 779 return false; |
781 // Currently only hardware-backed user certificates are valid. | 780 // Currently only hardware-backed user certificates are valid. |
782 if (cert_library_->IsHardwareBacked() && | 781 if (cert_library_->IsHardwareBacked() && |
783 !cert_library_->GetUserCertificates().IsHardwareBackedAt(selected)) | 782 !cert_library_->GetUserCertificates().IsHardwareBackedAt(index)) |
784 return false; | 783 return false; |
785 return true; | 784 return true; |
786 } | 785 } |
787 | 786 |
788 const std::string VPNConfigView::GetTextFromField( | 787 const std::string VPNConfigView::GetTextFromField(views::Textfield* textfield, |
789 views::Textfield* textfield, bool trim_whitespace) const { | 788 bool trim_whitespace) const { |
790 if (!textfield) | 789 if (!textfield) |
791 return std::string(); | 790 return std::string(); |
792 std::string untrimmed = UTF16ToUTF8(textfield->text()); | 791 std::string untrimmed = UTF16ToUTF8(textfield->text()); |
793 if (!trim_whitespace) | 792 if (!trim_whitespace) |
794 return untrimmed; | 793 return untrimmed; |
795 std::string result; | 794 std::string result; |
796 TrimWhitespaceASCII(untrimmed, TRIM_ALL, &result); | 795 TrimWhitespaceASCII(untrimmed, TRIM_ALL, &result); |
797 return result; | 796 return result; |
798 } | 797 } |
799 | 798 |
(...skipping 18 matching lines...) Expand all Loading... |
818 std::string vpn_type; | 817 std::string vpn_type; |
819 if (!vpn_dict || !vpn_dict->GetString(onc::kType, &vpn_type)) | 818 if (!vpn_dict || !vpn_dict->GetString(onc::kType, &vpn_type)) |
820 return; | 819 return; |
821 | 820 |
822 property_ui_data->ParseOncProperty( | 821 property_ui_data->ParseOncProperty( |
823 network->ui_data(), onc, | 822 network->ui_data(), onc, |
824 base::StringPrintf("%s.%s.%s", onc::kVPN, vpn_type.c_str(), key.c_str())); | 823 base::StringPrintf("%s.%s.%s", onc::kVPN, vpn_type.c_str(), key.c_str())); |
825 } | 824 } |
826 | 825 |
827 } // namespace chromeos | 826 } // namespace chromeos |
OLD | NEW |