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

Unified Diff: chrome/browser/chromeos/options/wifi_config_view.cc

Issue 9296009: Fix WiFi & VPN connection dialogs when controls a disabled through policy. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address nit, rebase Created 8 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/chromeos/options/wifi_config_view.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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));
« no previous file with comments | « chrome/browser/chromeos/options/wifi_config_view.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698