| 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 "ash/system/chromeos/network/network_connect.h" | 7 #include "ash/system/chromeos/network/network_connect.h" |
| 8 #include "base/strings/string_util.h" | 8 #include "base/strings/string_util.h" |
| 9 #include "base/strings/stringprintf.h" | 9 #include "base/strings/stringprintf.h" |
| 10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| (...skipping 28 matching lines...) Expand all Loading... |
| 39 | 39 |
| 40 namespace { | 40 namespace { |
| 41 | 41 |
| 42 enum ProviderTypeIndex { | 42 enum ProviderTypeIndex { |
| 43 PROVIDER_TYPE_INDEX_L2TP_IPSEC_PSK = 0, | 43 PROVIDER_TYPE_INDEX_L2TP_IPSEC_PSK = 0, |
| 44 PROVIDER_TYPE_INDEX_L2TP_IPSEC_USER_CERT = 1, | 44 PROVIDER_TYPE_INDEX_L2TP_IPSEC_USER_CERT = 1, |
| 45 PROVIDER_TYPE_INDEX_OPEN_VPN = 2, | 45 PROVIDER_TYPE_INDEX_OPEN_VPN = 2, |
| 46 PROVIDER_TYPE_INDEX_MAX = 3, | 46 PROVIDER_TYPE_INDEX_MAX = 3, |
| 47 }; | 47 }; |
| 48 | 48 |
| 49 string16 ProviderTypeIndexToString(int index) { | 49 base::string16 ProviderTypeIndexToString(int index) { |
| 50 switch (index) { | 50 switch (index) { |
| 51 case PROVIDER_TYPE_INDEX_L2TP_IPSEC_PSK: | 51 case PROVIDER_TYPE_INDEX_L2TP_IPSEC_PSK: |
| 52 return l10n_util::GetStringUTF16( | 52 return l10n_util::GetStringUTF16( |
| 53 IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_L2TP_IPSEC_PSK); | 53 IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_L2TP_IPSEC_PSK); |
| 54 case PROVIDER_TYPE_INDEX_L2TP_IPSEC_USER_CERT: | 54 case PROVIDER_TYPE_INDEX_L2TP_IPSEC_USER_CERT: |
| 55 return l10n_util::GetStringUTF16( | 55 return l10n_util::GetStringUTF16( |
| 56 IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_L2TP_IPSEC_USER_CERT); | 56 IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_L2TP_IPSEC_USER_CERT); |
| 57 case PROVIDER_TYPE_INDEX_OPEN_VPN: | 57 case PROVIDER_TYPE_INDEX_OPEN_VPN: |
| 58 return l10n_util::GetStringUTF16( | 58 return l10n_util::GetStringUTF16( |
| 59 IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_OPEN_VPN); | 59 IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_OPEN_VPN); |
| 60 } | 60 } |
| 61 NOTREACHED(); | 61 NOTREACHED(); |
| 62 return string16(); | 62 return base::string16(); |
| 63 } | 63 } |
| 64 | 64 |
| 65 int ProviderTypeToIndex(const std::string& provider_type, | 65 int ProviderTypeToIndex(const std::string& provider_type, |
| 66 const std::string& client_cert_id) { | 66 const std::string& client_cert_id) { |
| 67 if (provider_type == shill::kProviderL2tpIpsec) { | 67 if (provider_type == shill::kProviderL2tpIpsec) { |
| 68 if (!client_cert_id.empty()) | 68 if (!client_cert_id.empty()) |
| 69 return PROVIDER_TYPE_INDEX_L2TP_IPSEC_USER_CERT; | 69 return PROVIDER_TYPE_INDEX_L2TP_IPSEC_USER_CERT; |
| 70 else | 70 else |
| 71 return PROVIDER_TYPE_INDEX_L2TP_IPSEC_PSK; | 71 return PROVIDER_TYPE_INDEX_L2TP_IPSEC_PSK; |
| 72 } else { | 72 } else { |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 106 | 106 |
| 107 namespace internal { | 107 namespace internal { |
| 108 | 108 |
| 109 class ProviderTypeComboboxModel : public ui::ComboboxModel { | 109 class ProviderTypeComboboxModel : public ui::ComboboxModel { |
| 110 public: | 110 public: |
| 111 ProviderTypeComboboxModel(); | 111 ProviderTypeComboboxModel(); |
| 112 virtual ~ProviderTypeComboboxModel(); | 112 virtual ~ProviderTypeComboboxModel(); |
| 113 | 113 |
| 114 // Overridden from ui::ComboboxModel: | 114 // Overridden from ui::ComboboxModel: |
| 115 virtual int GetItemCount() const OVERRIDE; | 115 virtual int GetItemCount() const OVERRIDE; |
| 116 virtual string16 GetItemAt(int index) OVERRIDE; | 116 virtual base::string16 GetItemAt(int index) OVERRIDE; |
| 117 | 117 |
| 118 private: | 118 private: |
| 119 DISALLOW_COPY_AND_ASSIGN(ProviderTypeComboboxModel); | 119 DISALLOW_COPY_AND_ASSIGN(ProviderTypeComboboxModel); |
| 120 }; | 120 }; |
| 121 | 121 |
| 122 class VpnServerCACertComboboxModel : public ui::ComboboxModel { | 122 class VpnServerCACertComboboxModel : public ui::ComboboxModel { |
| 123 public: | 123 public: |
| 124 VpnServerCACertComboboxModel(); | 124 VpnServerCACertComboboxModel(); |
| 125 virtual ~VpnServerCACertComboboxModel(); | 125 virtual ~VpnServerCACertComboboxModel(); |
| 126 | 126 |
| 127 // Overridden from ui::ComboboxModel: | 127 // Overridden from ui::ComboboxModel: |
| 128 virtual int GetItemCount() const OVERRIDE; | 128 virtual int GetItemCount() const OVERRIDE; |
| 129 virtual string16 GetItemAt(int index) OVERRIDE; | 129 virtual base::string16 GetItemAt(int index) OVERRIDE; |
| 130 | 130 |
| 131 private: | 131 private: |
| 132 DISALLOW_COPY_AND_ASSIGN(VpnServerCACertComboboxModel); | 132 DISALLOW_COPY_AND_ASSIGN(VpnServerCACertComboboxModel); |
| 133 }; | 133 }; |
| 134 | 134 |
| 135 class VpnUserCertComboboxModel : public ui::ComboboxModel { | 135 class VpnUserCertComboboxModel : public ui::ComboboxModel { |
| 136 public: | 136 public: |
| 137 VpnUserCertComboboxModel(); | 137 VpnUserCertComboboxModel(); |
| 138 virtual ~VpnUserCertComboboxModel(); | 138 virtual ~VpnUserCertComboboxModel(); |
| 139 | 139 |
| 140 // Overridden from ui::ComboboxModel: | 140 // Overridden from ui::ComboboxModel: |
| 141 virtual int GetItemCount() const OVERRIDE; | 141 virtual int GetItemCount() const OVERRIDE; |
| 142 virtual string16 GetItemAt(int index) OVERRIDE; | 142 virtual base::string16 GetItemAt(int index) OVERRIDE; |
| 143 | 143 |
| 144 private: | 144 private: |
| 145 DISALLOW_COPY_AND_ASSIGN(VpnUserCertComboboxModel); | 145 DISALLOW_COPY_AND_ASSIGN(VpnUserCertComboboxModel); |
| 146 }; | 146 }; |
| 147 | 147 |
| 148 // ProviderTypeComboboxModel --------------------------------------------------- | 148 // ProviderTypeComboboxModel --------------------------------------------------- |
| 149 | 149 |
| 150 ProviderTypeComboboxModel::ProviderTypeComboboxModel() { | 150 ProviderTypeComboboxModel::ProviderTypeComboboxModel() { |
| 151 } | 151 } |
| 152 | 152 |
| 153 ProviderTypeComboboxModel::~ProviderTypeComboboxModel() { | 153 ProviderTypeComboboxModel::~ProviderTypeComboboxModel() { |
| 154 } | 154 } |
| 155 | 155 |
| 156 int ProviderTypeComboboxModel::GetItemCount() const { | 156 int ProviderTypeComboboxModel::GetItemCount() const { |
| 157 return PROVIDER_TYPE_INDEX_MAX; | 157 return PROVIDER_TYPE_INDEX_MAX; |
| 158 } | 158 } |
| 159 | 159 |
| 160 string16 ProviderTypeComboboxModel::GetItemAt(int index) { | 160 base::string16 ProviderTypeComboboxModel::GetItemAt(int index) { |
| 161 return ProviderTypeIndexToString(index); | 161 return ProviderTypeIndexToString(index); |
| 162 } | 162 } |
| 163 | 163 |
| 164 // VpnServerCACertComboboxModel ------------------------------------------------ | 164 // VpnServerCACertComboboxModel ------------------------------------------------ |
| 165 | 165 |
| 166 VpnServerCACertComboboxModel::VpnServerCACertComboboxModel() { | 166 VpnServerCACertComboboxModel::VpnServerCACertComboboxModel() { |
| 167 } | 167 } |
| 168 | 168 |
| 169 VpnServerCACertComboboxModel::~VpnServerCACertComboboxModel() { | 169 VpnServerCACertComboboxModel::~VpnServerCACertComboboxModel() { |
| 170 } | 170 } |
| 171 | 171 |
| 172 int VpnServerCACertComboboxModel::GetItemCount() const { | 172 int VpnServerCACertComboboxModel::GetItemCount() const { |
| 173 if (CertLibrary::Get()->CertificatesLoading()) | 173 if (CertLibrary::Get()->CertificatesLoading()) |
| 174 return 1; // "Loading" | 174 return 1; // "Loading" |
| 175 // "Default" + certs. | 175 // "Default" + certs. |
| 176 return CertLibrary::Get()->NumCertificates( | 176 return CertLibrary::Get()->NumCertificates( |
| 177 CertLibrary::CERT_TYPE_SERVER_CA) + 1; | 177 CertLibrary::CERT_TYPE_SERVER_CA) + 1; |
| 178 } | 178 } |
| 179 | 179 |
| 180 string16 VpnServerCACertComboboxModel::GetItemAt(int index) { | 180 base::string16 VpnServerCACertComboboxModel::GetItemAt(int index) { |
| 181 if (CertLibrary::Get()->CertificatesLoading()) | 181 if (CertLibrary::Get()->CertificatesLoading()) |
| 182 return l10n_util::GetStringUTF16( | 182 return l10n_util::GetStringUTF16( |
| 183 IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_CERT_LOADING); | 183 IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_CERT_LOADING); |
| 184 if (index == 0) | 184 if (index == 0) |
| 185 return l10n_util::GetStringUTF16( | 185 return l10n_util::GetStringUTF16( |
| 186 IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_CERT_SERVER_CA_DEFAULT); | 186 IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_CERT_SERVER_CA_DEFAULT); |
| 187 int cert_index = index - 1; | 187 int cert_index = index - 1; |
| 188 return CertLibrary::Get()->GetCertDisplayStringAt( | 188 return CertLibrary::Get()->GetCertDisplayStringAt( |
| 189 CertLibrary::CERT_TYPE_SERVER_CA, cert_index); | 189 CertLibrary::CERT_TYPE_SERVER_CA, cert_index); |
| 190 } | 190 } |
| 191 | 191 |
| 192 // VpnUserCertComboboxModel ---------------------------------------------------- | 192 // VpnUserCertComboboxModel ---------------------------------------------------- |
| 193 | 193 |
| 194 VpnUserCertComboboxModel::VpnUserCertComboboxModel() { | 194 VpnUserCertComboboxModel::VpnUserCertComboboxModel() { |
| 195 } | 195 } |
| 196 | 196 |
| 197 VpnUserCertComboboxModel::~VpnUserCertComboboxModel() { | 197 VpnUserCertComboboxModel::~VpnUserCertComboboxModel() { |
| 198 } | 198 } |
| 199 | 199 |
| 200 int VpnUserCertComboboxModel::GetItemCount() const { | 200 int VpnUserCertComboboxModel::GetItemCount() const { |
| 201 if (CertLibrary::Get()->CertificatesLoading()) | 201 if (CertLibrary::Get()->CertificatesLoading()) |
| 202 return 1; // "Loading" | 202 return 1; // "Loading" |
| 203 int num_certs = | 203 int num_certs = |
| 204 CertLibrary::Get()->NumCertificates(CertLibrary::CERT_TYPE_USER); | 204 CertLibrary::Get()->NumCertificates(CertLibrary::CERT_TYPE_USER); |
| 205 if (num_certs == 0) | 205 if (num_certs == 0) |
| 206 return 1; // "None installed" | 206 return 1; // "None installed" |
| 207 return num_certs; | 207 return num_certs; |
| 208 } | 208 } |
| 209 | 209 |
| 210 string16 VpnUserCertComboboxModel::GetItemAt(int index) { | 210 base::string16 VpnUserCertComboboxModel::GetItemAt(int index) { |
| 211 if (CertLibrary::Get()->CertificatesLoading()) { | 211 if (CertLibrary::Get()->CertificatesLoading()) { |
| 212 return l10n_util::GetStringUTF16( | 212 return l10n_util::GetStringUTF16( |
| 213 IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_CERT_LOADING); | 213 IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_CERT_LOADING); |
| 214 } | 214 } |
| 215 if (CertLibrary::Get()->NumCertificates(CertLibrary::CERT_TYPE_USER) == 0) { | 215 if (CertLibrary::Get()->NumCertificates(CertLibrary::CERT_TYPE_USER) == 0) { |
| 216 return l10n_util::GetStringUTF16( | 216 return l10n_util::GetStringUTF16( |
| 217 IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_USER_CERT_NONE_INSTALLED); | 217 IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_USER_CERT_NONE_INSTALLED); |
| 218 } | 218 } |
| 219 return CertLibrary::Get()->GetCertDisplayStringAt( | 219 return CertLibrary::Get()->GetCertDisplayStringAt( |
| 220 CertLibrary::CERT_TYPE_USER, index); | 220 CertLibrary::CERT_TYPE_USER, index); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 255 provider_type_index_(PROVIDER_TYPE_INDEX_MAX), | 255 provider_type_index_(PROVIDER_TYPE_INDEX_MAX), |
| 256 weak_ptr_factory_(this) { | 256 weak_ptr_factory_(this) { |
| 257 Init(); | 257 Init(); |
| 258 } | 258 } |
| 259 | 259 |
| 260 VPNConfigView::~VPNConfigView() { | 260 VPNConfigView::~VPNConfigView() { |
| 261 RemoveAllChildViews(true); // Destroy children before models | 261 RemoveAllChildViews(true); // Destroy children before models |
| 262 CertLibrary::Get()->RemoveObserver(this); | 262 CertLibrary::Get()->RemoveObserver(this); |
| 263 } | 263 } |
| 264 | 264 |
| 265 string16 VPNConfigView::GetTitle() const { | 265 base::string16 VPNConfigView::GetTitle() const { |
| 266 DCHECK_NE(title_, 0); | 266 DCHECK_NE(title_, 0); |
| 267 return l10n_util::GetStringUTF16(title_); | 267 return l10n_util::GetStringUTF16(title_); |
| 268 } | 268 } |
| 269 | 269 |
| 270 views::View* VPNConfigView::GetInitiallyFocusedView() { | 270 views::View* VPNConfigView::GetInitiallyFocusedView() { |
| 271 if (service_path_.empty()) { | 271 if (service_path_.empty()) { |
| 272 // Put focus in the first editable field. | 272 // Put focus in the first editable field. |
| 273 if (server_textfield_) | 273 if (server_textfield_) |
| 274 return server_textfield_; | 274 return server_textfield_; |
| 275 else if (service_textfield_) | 275 else if (service_textfield_) |
| (...skipping 27 matching lines...) Expand all Loading... |
| 303 // Block login if certs are required but user has none. | 303 // Block login if certs are required but user has none. |
| 304 bool cert_required = | 304 bool cert_required = |
| 305 GetProviderTypeIndex() == PROVIDER_TYPE_INDEX_L2TP_IPSEC_USER_CERT; | 305 GetProviderTypeIndex() == PROVIDER_TYPE_INDEX_L2TP_IPSEC_USER_CERT; |
| 306 if (cert_required && (!HaveUserCerts() || !IsUserCertValid())) | 306 if (cert_required && (!HaveUserCerts() || !IsUserCertValid())) |
| 307 return false; | 307 return false; |
| 308 | 308 |
| 309 return true; | 309 return true; |
| 310 } | 310 } |
| 311 | 311 |
| 312 void VPNConfigView::ContentsChanged(views::Textfield* sender, | 312 void VPNConfigView::ContentsChanged(views::Textfield* sender, |
| 313 const string16& new_contents) { | 313 const base::string16& new_contents) { |
| 314 if (sender == server_textfield_ && !service_text_modified_) { | 314 if (sender == server_textfield_ && !service_text_modified_) { |
| 315 // Set the service name to the server name up to '.', unless it has | 315 // Set the service name to the server name up to '.', unless it has |
| 316 // been explicitly set by the user. | 316 // been explicitly set by the user. |
| 317 string16 server = server_textfield_->text(); | 317 base::string16 server = server_textfield_->text(); |
| 318 string16::size_type n = server.find_first_of(L'.'); | 318 base::string16::size_type n = server.find_first_of(L'.'); |
| 319 service_name_from_server_ = server.substr(0, n); | 319 service_name_from_server_ = server.substr(0, n); |
| 320 service_textfield_->SetText(service_name_from_server_); | 320 service_textfield_->SetText(service_name_from_server_); |
| 321 } | 321 } |
| 322 if (sender == service_textfield_) { | 322 if (sender == service_textfield_) { |
| 323 if (new_contents.empty()) | 323 if (new_contents.empty()) |
| 324 service_text_modified_ = false; | 324 service_text_modified_ = false; |
| 325 else if (new_contents != service_name_from_server_) | 325 else if (new_contents != service_name_from_server_) |
| 326 service_text_modified_ = true; | 326 service_text_modified_ = true; |
| 327 } | 327 } |
| 328 UpdateCanLogin(); | 328 UpdateCanLogin(); |
| (...skipping 635 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 964 | 964 |
| 965 if (group_name_label_) | 965 if (group_name_label_) |
| 966 group_name_label_->SetEnabled(enable_group_name_); | 966 group_name_label_->SetEnabled(enable_group_name_); |
| 967 if (group_name_textfield_) | 967 if (group_name_textfield_) |
| 968 group_name_textfield_->SetEnabled(enable_group_name_ && | 968 group_name_textfield_->SetEnabled(enable_group_name_ && |
| 969 group_name_ui_data_.IsEditable()); | 969 group_name_ui_data_.IsEditable()); |
| 970 } | 970 } |
| 971 | 971 |
| 972 void VPNConfigView::UpdateErrorLabel() { | 972 void VPNConfigView::UpdateErrorLabel() { |
| 973 // Error message. | 973 // Error message. |
| 974 string16 error_msg; | 974 base::string16 error_msg; |
| 975 bool cert_required = | 975 bool cert_required = |
| 976 GetProviderTypeIndex() == PROVIDER_TYPE_INDEX_L2TP_IPSEC_USER_CERT; | 976 GetProviderTypeIndex() == PROVIDER_TYPE_INDEX_L2TP_IPSEC_USER_CERT; |
| 977 if (cert_required && CertLibrary::Get()->CertificatesLoaded()) { | 977 if (cert_required && CertLibrary::Get()->CertificatesLoaded()) { |
| 978 if (!HaveUserCerts()) { | 978 if (!HaveUserCerts()) { |
| 979 error_msg = l10n_util::GetStringUTF16( | 979 error_msg = l10n_util::GetStringUTF16( |
| 980 IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_PLEASE_INSTALL_USER_CERT); | 980 IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_PLEASE_INSTALL_USER_CERT); |
| 981 } else if (!IsUserCertValid()) { | 981 } else if (!IsUserCertValid()) { |
| 982 error_msg = l10n_util::GetStringUTF16( | 982 error_msg = l10n_util::GetStringUTF16( |
| 983 IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_REQUIRE_HARDWARE_BACKED); | 983 IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_REQUIRE_HARDWARE_BACKED); |
| 984 } | 984 } |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1052 property_ui_data->ParseOncProperty( | 1052 property_ui_data->ParseOncProperty( |
| 1053 onc_source, | 1053 onc_source, |
| 1054 onc, | 1054 onc, |
| 1055 base::StringPrintf("%s.%s.%s", | 1055 base::StringPrintf("%s.%s.%s", |
| 1056 ::onc::network_config::kVPN, | 1056 ::onc::network_config::kVPN, |
| 1057 dict_key.c_str(), | 1057 dict_key.c_str(), |
| 1058 key.c_str())); | 1058 key.c_str())); |
| 1059 } | 1059 } |
| 1060 | 1060 |
| 1061 } // namespace chromeos | 1061 } // namespace chromeos |
| OLD | NEW |