Index: chrome/browser/chromeos/options/wifi_config_view.cc |
diff --git a/chrome/browser/chromeos/options/wifi_config_view.cc b/chrome/browser/chromeos/options/wifi_config_view.cc |
index b1226670fdd9b56d68081200fcacfc44b8a5a68f..27be94d496667d2baca18c026de3472a9a0198e9 100644 |
--- a/chrome/browser/chromeos/options/wifi_config_view.cc |
+++ b/chrome/browser/chromeos/options/wifi_config_view.cc |
@@ -316,13 +316,12 @@ bool WifiConfigView::CanLogin() { |
// If the network requires a passphrase, make sure it is the right length. |
if (passphrase_textfield_ != NULL |
- && passphrase_textfield_->enabled() |
+ && PassphraseActive() |
&& passphrase_textfield_->text().length() < kMinWirelessPasswordLen) |
return false; |
// If we're using EAP, we must have a method. |
if (eap_method_combobox_ |
- && eap_method_combobox_->enabled() |
&& eap_method_combobox_->selected_item() == EAP_METHOD_INDEX_NONE) |
return false; |
@@ -336,13 +335,7 @@ bool WifiConfigView::CanLogin() { |
bool WifiConfigView::UserCertRequired() const { |
if (!cert_library_) |
return false; // return false until cert_library_ is initialized. |
- // Only EAP-TLS requires a user certificate. |
- if (eap_method_combobox_ && |
- eap_method_combobox_->enabled() && |
- eap_method_combobox_->selected_item() == EAP_METHOD_INDEX_TLS) { |
- return true; |
- } |
- return false; |
+ return UserCertActive(); |
} |
bool WifiConfigView::HaveUserCerts() const { |
@@ -350,7 +343,7 @@ bool WifiConfigView::HaveUserCerts() const { |
} |
bool WifiConfigView::IsUserCertValid() const { |
- if (!user_cert_combobox_ || !user_cert_combobox_->enabled()) |
+ if (!UserCertActive()) |
return false; |
int selected = user_cert_combobox_->selected_item(); |
if (selected < 0) |
@@ -362,33 +355,71 @@ bool WifiConfigView::IsUserCertValid() const { |
return true; |
} |
+bool WifiConfigView::Phase2AuthActive() const { |
+ if (phase_2_auth_combobox_) |
+ return phase_2_auth_combobox_->model()->GetItemCount() > 1; |
+ |
+ return false; |
+} |
+ |
+bool WifiConfigView::PassphraseActive() const { |
+ if (eap_method_combobox_) { |
+ // No password for EAP-TLS. |
+ int selected = eap_method_combobox_->selected_item(); |
+ return (selected != EAP_METHOD_INDEX_NONE && |
+ selected != EAP_METHOD_INDEX_TLS); |
+ } else if (security_combobox_) { |
+ return security_combobox_->selected_item() != SECURITY_INDEX_NONE; |
+ } |
+ |
+ return false; |
+} |
+ |
+bool WifiConfigView::UserCertActive() const { |
+ // User certs only for EAP-TLS. |
+ if (eap_method_combobox_) |
+ return eap_method_combobox_->selected_item() == EAP_METHOD_INDEX_TLS; |
+ |
+ return false; |
+} |
+ |
+bool WifiConfigView::CaCertActive() const { |
+ // No server CA certs for LEAP. |
+ if (eap_method_combobox_) { |
+ int selected = eap_method_combobox_->selected_item(); |
+ return (selected != EAP_METHOD_INDEX_NONE && |
+ selected != EAP_METHOD_INDEX_LEAP); |
+ } |
+ |
+ return false; |
+} |
+ |
void WifiConfigView::UpdateDialogButtons() { |
parent_->GetDialogClientView()->UpdateDialogButtons(); |
} |
void WifiConfigView::RefreshEapFields() { |
DCHECK(cert_library_); |
- int selected = eap_method_combobox_->selected_item(); |
// If EAP method changes, the phase 2 auth choices may have changed also. |
phase_2_auth_combobox_->ModelChanged(); |
phase_2_auth_combobox_->SetSelectedItem(0); |
- phase_2_auth_combobox_->SetEnabled( |
- phase_2_auth_combobox_->model()->GetItemCount() > 1 && |
- phase_2_auth_ui_data_.editable()); |
- phase_2_auth_label_->SetEnabled(phase_2_auth_combobox_->enabled()); |
- |
- // No password for EAP-TLS |
- passphrase_textfield_->SetEnabled(selected != EAP_METHOD_INDEX_NONE && |
- selected != EAP_METHOD_INDEX_TLS && |
+ bool phase_2_auth_enabled = Phase2AuthActive(); |
+ phase_2_auth_combobox_->SetEnabled(phase_2_auth_enabled && |
+ phase_2_auth_ui_data_.editable()); |
+ phase_2_auth_label_->SetEnabled(phase_2_auth_enabled); |
+ |
+ // Passphrase. |
+ bool passphrase_enabled = PassphraseActive(); |
+ passphrase_textfield_->SetEnabled(passphrase_enabled && |
passphrase_ui_data_.editable()); |
- passphrase_label_->SetEnabled(passphrase_textfield_->enabled()); |
- if (!passphrase_textfield_->enabled()) |
+ passphrase_label_->SetEnabled(passphrase_enabled); |
+ if (!passphrase_enabled) |
passphrase_textfield_->SetText(string16()); |
- // User certs only for EAP-TLS |
+ // User cert. |
bool certs_loading = cert_library_->CertificatesLoading(); |
- bool user_cert_enabled = (selected == EAP_METHOD_INDEX_TLS); |
+ bool user_cert_enabled = UserCertActive(); |
user_cert_label_->SetEnabled(user_cert_enabled); |
bool have_user_certs = !certs_loading && HaveUserCerts(); |
user_cert_combobox_->SetEnabled(user_cert_enabled && |
@@ -397,9 +428,8 @@ void WifiConfigView::RefreshEapFields() { |
user_cert_combobox_->ModelChanged(); |
user_cert_combobox_->SetSelectedItem(0); |
- // No server CA certs for LEAP |
- bool ca_cert_enabled = |
- (selected != EAP_METHOD_INDEX_NONE && selected != EAP_METHOD_INDEX_LEAP); |
+ // Server CA. |
+ bool ca_cert_enabled = CaCertActive(); |
server_ca_cert_label_->SetEnabled(ca_cert_enabled); |
server_ca_cert_combobox_->SetEnabled(ca_cert_enabled && |
!certs_loading && |
@@ -408,12 +438,11 @@ void WifiConfigView::RefreshEapFields() { |
server_ca_cert_combobox_->SetSelectedItem(0); |
// No anonymous identity if no phase 2 auth. |
+ bool identity_anonymous_enabled = phase_2_auth_enabled; |
identity_anonymous_textfield_->SetEnabled( |
- phase_2_auth_combobox_->enabled() && |
- identity_anonymous_ui_data_.editable()); |
- identity_anonymous_label_->SetEnabled( |
- identity_anonymous_textfield_->enabled()); |
- if (!identity_anonymous_textfield_->enabled()) |
+ identity_anonymous_enabled && identity_anonymous_ui_data_.editable()); |
+ identity_anonymous_label_->SetEnabled(identity_anonymous_enabled); |
+ if (!identity_anonymous_enabled) |
identity_anonymous_textfield_->SetText(string16()); |
RefreshShareCheckbox(); |
@@ -524,16 +553,12 @@ void WifiConfigView::ItemChanged(views::Combobox* combo_box, |
if (new_index == prev_index) |
return; |
if (combo_box == security_combobox_) { |
- // If changed to no security, then disable combobox and clear it. |
- // Otherwise, enable it. Also, update can login. |
- if (new_index == SECURITY_INDEX_NONE) { |
- passphrase_label_->SetEnabled(false); |
- passphrase_textfield_->SetEnabled(false); |
+ bool passphrase_enabled = PassphraseActive(); |
+ passphrase_label_->SetEnabled(passphrase_enabled); |
+ passphrase_textfield_->SetEnabled(passphrase_enabled && |
+ passphrase_ui_data_.editable()); |
+ if (!passphrase_enabled) |
passphrase_textfield_->SetText(string16()); |
- } else { |
- passphrase_label_->SetEnabled(true); |
- passphrase_textfield_->SetEnabled(true); |
- } |
RefreshShareCheckbox(); |
} else if (combo_box == user_cert_combobox_) { |
RefreshShareCheckbox(); |
@@ -909,10 +934,8 @@ void WifiConfigView::Init(WifiNetwork* wifi, bool show_8021x) { |
if (wifi && !wifi->GetPassphrase().empty()) |
passphrase_textfield_->SetText(UTF8ToUTF16(wifi->GetPassphrase())); |
// Disable passphrase input initially for other network. |
- if (!wifi) { |
- passphrase_label_->SetEnabled(false); |
- passphrase_textfield_->SetEnabled(false); |
- } |
+ passphrase_label_->SetEnabled(wifi != NULL); |
+ passphrase_textfield_->SetEnabled(wifi && passphrase_ui_data_.editable()); |
passphrase_textfield_->SetAccessibleName(l10n_util::GetStringUTF16( |
label_text_id)); |
layout->AddView(passphrase_textfield_); |
@@ -1027,8 +1050,8 @@ void WifiConfigView::Init(WifiNetwork* wifi, bool show_8021x) { |
} |
RefreshEapFields(); |
- // Phase 2 authentication |
- if (phase_2_auth_combobox_->enabled()) { |
+ // Phase 2 authentication and anonymous identity. |
+ if (Phase2AuthActive()) { |
EAPPhase2Auth eap_phase_2_auth = |
(wifi ? wifi->eap_phase_2_auth() : EAP_PHASE_2_AUTH_AUTO); |
switch (eap_phase_2_auth) { |
@@ -1050,10 +1073,15 @@ void WifiConfigView::Init(WifiNetwork* wifi, bool show_8021x) { |
default: |
break; |
} |
+ |
+ const std::string& eap_anonymous_identity = |
+ (wifi ? wifi->GetEapAnonymousIdentity() : std::string()); |
+ identity_anonymous_textfield_->SetText( |
+ UTF8ToUTF16(eap_anonymous_identity)); |
} |
// Server CA certificate |
- if (server_ca_cert_combobox_->enabled()) { |
+ if (CaCertActive()) { |
const std::string& nss_nickname = |
(wifi ? wifi->eap_server_ca_cert_nss_nickname() : std::string()); |
if (nss_nickname.empty()) { |
@@ -1077,7 +1105,7 @@ void WifiConfigView::Init(WifiNetwork* wifi, bool show_8021x) { |
} |
// User certificate |
- if (user_cert_combobox_->enabled()) { |
+ if (UserCertActive()) { |
const std::string& pkcs11_id = |
(wifi ? wifi->eap_client_cert_pkcs11_id() : std::string()); |
if (!pkcs11_id.empty()) { |
@@ -1089,23 +1117,13 @@ void WifiConfigView::Init(WifiNetwork* wifi, bool show_8021x) { |
} |
} |
- // Identity |
- if (identity_textfield_->enabled()) { |
- const std::string& eap_identity = |
- (wifi ? wifi->GetEapIdentity() : std::string()); |
- identity_textfield_->SetText(UTF8ToUTF16(eap_identity)); |
- } |
- |
- // Anonymous identity |
- if (identity_anonymous_textfield_->enabled()) { |
- const std::string& eap_anonymous_identity = |
- (wifi ? wifi->GetEapAnonymousIdentity() : std::string()); |
- identity_anonymous_textfield_->SetText( |
- UTF8ToUTF16(eap_anonymous_identity)); |
- } |
+ // Identity is always active. |
+ const std::string& eap_identity = |
+ (wifi ? wifi->GetEapIdentity() : std::string()); |
+ identity_textfield_->SetText(UTF8ToUTF16(eap_identity)); |
// Passphrase |
- if (passphrase_textfield_->enabled()) { |
+ if (PassphraseActive()) { |
const std::string& eap_passphrase = |
(wifi ? wifi->eap_passphrase() : std::string()); |
passphrase_textfield_->SetText(UTF8ToUTF16(eap_passphrase)); |