diff options
author | stevenjb@google.com <stevenjb@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-21 21:40:58 +0000 |
---|---|---|
committer | stevenjb@google.com <stevenjb@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-21 21:40:58 +0000 |
commit | d3fe7b17673cc7cb4dd2c9a37cc316a0555e6add (patch) | |
tree | fa15d26608191b327f29f92ff95f68b157b87e43 | |
parent | cc9720032874f97906885ea50cb144987b90017d (diff) | |
download | chromium_src-d3fe7b17673cc7cb4dd2c9a37cc316a0555e6add.zip chromium_src-d3fe7b17673cc7cb4dd2c9a37cc316a0555e6add.tar.gz chromium_src-d3fe7b17673cc7cb4dd2c9a37cc316a0555e6add.tar.bz2 |
Remember user entered passwords for wimax and reshow dialog on bad passphrase.
BUG=128429
TEST=Connect to a wimax network with a bad passphrase (anything staring with "bad" in the stub implementation). Dialog should come up again after conenction fails.
Review URL: https://chromiumcodereview.appspot.com/10409057
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@138144 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/chromeos/network_login_observer.cc | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/chrome/browser/chromeos/network_login_observer.cc b/chrome/browser/chromeos/network_login_observer.cc index 75c651a..1d96a69 100644 --- a/chrome/browser/chromeos/network_login_observer.cc +++ b/chrome/browser/chromeos/network_login_observer.cc @@ -21,10 +21,8 @@ NetworkLoginObserver::~NetworkLoginObserver() { } void NetworkLoginObserver::OnNetworkManagerChanged(NetworkLibrary* cros) { - const WifiNetworkVector& wifi_networks = cros->wifi_networks(); - const VirtualNetworkVector& virtual_networks = cros->virtual_networks(); - // Check to see if we have any newly failed wifi network. + const WifiNetworkVector& wifi_networks = cros->wifi_networks(); for (WifiNetworkVector::const_iterator it = wifi_networks.begin(); it != wifi_networks.end(); it++) { WifiNetwork* wifi = *it; @@ -45,7 +43,30 @@ void NetworkLoginObserver::OnNetworkManagerChanged(NetworkLibrary* cros) { } } } + // Check to see if we have any newly failed wimax network. + const WimaxNetworkVector& wimax_networks = cros->wimax_networks(); + for (WimaxNetworkVector::const_iterator it = wimax_networks.begin(); + it != wimax_networks.end(); it++) { + WimaxNetwork* wimax = *it; + if (wimax->notify_failure()) { + // Display login dialog again for bad_passphrase and bad_wepkey errors. + // Always re-display for user initiated connections that fail. + // Always re-display the login dialog for encrypted networks that were + // added and failed to connect for any reason. + VLOG(1) << "NotifyFailure: " << wimax->name() + << ", error: " << wimax->error() + << ", added: " << wimax->added(); + if (wimax->error() == ERROR_BAD_PASSPHRASE || + wimax->error() == ERROR_BAD_WEPKEY || + wimax->connection_started() || + (wimax->passphrase_required() && wimax->added())) { + NetworkConfigView::Show(wimax, NULL); + return; // Only support one failure per notification. + } + } + } // Check to see if we have any newly failed virtual network. + const VirtualNetworkVector& virtual_networks = cros->virtual_networks(); for (VirtualNetworkVector::const_iterator it = virtual_networks.begin(); it != virtual_networks.end(); it++) { VirtualNetwork* vpn = *it; |