| Index: chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
|
| diff --git a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
|
| index c13a8f55b574b795d2dc09c387af84a2527b13bd..97c00d803c6077ad20c66e31eb757ee52193a865 100644
|
| --- a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
|
| +++ b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
|
| @@ -105,7 +105,8 @@ class NetworkStateInformer
|
| // Removes observer's callback.
|
| void RemoveObserver(const std::string& callback);
|
|
|
| - // Sends current network state, network name and reason using the callback.
|
| + // Sends current network state, network name, reason and last network type
|
| + // using the callback.
|
| void SendState(const std::string& callback, const std::string& reason);
|
|
|
| // NetworkLibrary::NetworkManagerObserver implementation:
|
| @@ -125,6 +126,7 @@ class NetworkStateInformer
|
| content::NotificationRegistrar registrar_;
|
| base::hash_set<std::string> observers_;
|
| std::string active_network_;
|
| + ConnectionType last_network_type_;
|
| std::string network_name_;
|
| State state_;
|
| WebUI* web_ui_;
|
| @@ -132,7 +134,10 @@ class NetworkStateInformer
|
|
|
| // NetworkStateInformer implementation -----------------------------------------
|
|
|
| -NetworkStateInformer::NetworkStateInformer(WebUI* web_ui) : web_ui_(web_ui) {
|
| +NetworkStateInformer::NetworkStateInformer(WebUI* web_ui)
|
| + : last_network_type_(TYPE_WIFI),
|
| + state_(OFFLINE),
|
| + web_ui_(web_ui) {
|
| NetworkLibrary* cros = CrosLibrary::Get()->GetNetworkLibrary();
|
| UpdateState(cros);
|
| cros->AddNetworkManagerObserver(this);
|
| @@ -159,8 +164,9 @@ void NetworkStateInformer::SendState(const std::string& callback,
|
| base::FundamentalValue state_value(state_);
|
| base::StringValue network_value(network_name_);
|
| base::StringValue reason_value(reason);
|
| - web_ui_->CallJavascriptFunction(callback, state_value,
|
| - network_value, reason_value);
|
| + base::FundamentalValue last_network_value(last_network_type_);
|
| + web_ui_->CallJavascriptFunction(callback, state_value, network_value,
|
| + reason_value, last_network_value);
|
| }
|
|
|
| void NetworkStateInformer::OnNetworkManagerChanged(NetworkLibrary* cros) {
|
| @@ -178,6 +184,9 @@ void NetworkStateInformer::Observe(
|
| }
|
|
|
| bool NetworkStateInformer::UpdateState(NetworkLibrary* cros) {
|
| + if (cros->active_network())
|
| + last_network_type_ = cros->active_network()->type();
|
| +
|
| State new_state;
|
| std::string new_active_network;
|
| if (!cros->Connected()) {
|
|
|