| Index: chrome/browser/chromeos/cros/network_library.cc | 
| diff --git a/chrome/browser/chromeos/cros/network_library.cc b/chrome/browser/chromeos/cros/network_library.cc | 
| index bcca34a3c5eedac9c017c29ef545680b5ee485dc..e6c4f1abe9747132467cef9edb29c121b33b7806 100644 | 
| --- a/chrome/browser/chromeos/cros/network_library.cc | 
| +++ b/chrome/browser/chromeos/cros/network_library.cc | 
| @@ -134,6 +134,38 @@ void ValidateUTF8(const std::string& str, std::string* output) { | 
| } | 
| } | 
|  | 
| +std::string ConnectionStateString(ConnectionState state) { | 
| +  switch (state) { | 
| +    case STATE_UNKNOWN: | 
| +      return l10n_util::GetStringUTF8(IDS_CHROMEOS_NETWORK_STATE_UNKNOWN); | 
| +    case STATE_IDLE: | 
| +      return l10n_util::GetStringUTF8(IDS_CHROMEOS_NETWORK_STATE_IDLE); | 
| +    case STATE_CARRIER: | 
| +      return l10n_util::GetStringUTF8(IDS_CHROMEOS_NETWORK_STATE_CARRIER); | 
| +    case STATE_ASSOCIATION: | 
| +      return l10n_util::GetStringUTF8(IDS_CHROMEOS_NETWORK_STATE_ASSOCIATION); | 
| +    case STATE_CONFIGURATION: | 
| +      return l10n_util::GetStringUTF8(IDS_CHROMEOS_NETWORK_STATE_CONFIGURATION); | 
| +    case STATE_READY: | 
| +      return l10n_util::GetStringUTF8(IDS_CHROMEOS_NETWORK_STATE_READY); | 
| +    case STATE_DISCONNECT: | 
| +      return l10n_util::GetStringUTF8(IDS_CHROMEOS_NETWORK_STATE_DISCONNECT); | 
| +    case STATE_FAILURE: | 
| +      return l10n_util::GetStringUTF8(IDS_CHROMEOS_NETWORK_STATE_FAILURE); | 
| +    case STATE_ACTIVATION_FAILURE: | 
| +      return l10n_util::GetStringUTF8( | 
| +          IDS_CHROMEOS_NETWORK_STATE_ACTIVATION_FAILURE); | 
| +    case STATE_PORTAL: | 
| +      return l10n_util::GetStringUTF8(IDS_CHROMEOS_NETWORK_STATE_PORTAL); | 
| +    case STATE_ONLINE: | 
| +      return l10n_util::GetStringUTF8(IDS_CHROMEOS_NETWORK_STATE_ONLINE); | 
| +    case STATE_CONNECT_REQUESTED: | 
| +      return l10n_util::GetStringUTF8( | 
| +          IDS_CHROMEOS_NETWORK_STATE_CONNECT_REQUESTED); | 
| +  } | 
| +  return l10n_util::GetStringUTF8(IDS_CHROMEOS_NETWORK_STATE_UNRECOGNIZED); | 
| +} | 
| + | 
| }  // namespace | 
|  | 
| //////////////////////////////////////////////////////////////////////////////// | 
| @@ -225,12 +257,12 @@ void Network::UpdatePropertyMap(PropertyIndex index, const base::Value* value) { | 
| Value*& entry = property_map_[index]; | 
| delete entry; | 
| entry = value->DeepCopy(); | 
| -  if (VLOG_IS_ON(2)) { | 
| +  if (VLOG_IS_ON(3)) { | 
| std::string value_json; | 
| base::JSONWriter::WriteWithOptions(value, | 
| base::JSONWriter::OPTIONS_PRETTY_PRINT, | 
| &value_json); | 
| -    VLOG(2) << "Updated property map on network: " | 
| +    VLOG(3) << "Updated property map on network: " | 
| << unique_id() << "[" << index << "] = " << value_json; | 
| } | 
| } | 
| @@ -253,6 +285,12 @@ Network* Network::CreateForTesting(ConnectionType type) { | 
| void Network::SetState(ConnectionState new_state) { | 
| if (new_state == state_) | 
| return; | 
| +  if (state_ == STATE_CONNECT_REQUESTED && new_state == STATE_IDLE) { | 
| +    // CONNECT_REQUESTED is set internally. Shill/flimflam do not update the | 
| +    // state immediately, so ignore any Idle state updates sent while a | 
| +    // connection attempt is in progress. | 
| +    return; | 
| +  } | 
| ConnectionState old_state = state_; | 
| state_ = new_state; | 
| if (!IsConnectingState(new_state)) | 
| @@ -274,7 +312,8 @@ void Network::SetState(ConnectionState new_state) { | 
| // Note: blocking DBus call. TODO(stevenjb): refactor this. | 
| InitIPAddress(); | 
| } | 
| -  VLOG(1) << name() << ".State = " << GetStateString(); | 
| +  VLOG(1) << name() << ".State [" << service_path() << "]: " << GetStateString() | 
| +          << " (was: " << ConnectionStateString(old_state) << ")"; | 
| } | 
|  | 
| void Network::SetName(const std::string& name) { | 
| @@ -389,32 +428,7 @@ void Network::SetProfilePath(const std::string& profile_path) { | 
| } | 
|  | 
| std::string Network::GetStateString() const { | 
| -  switch (state_) { | 
| -    case STATE_UNKNOWN: | 
| -      return l10n_util::GetStringUTF8(IDS_CHROMEOS_NETWORK_STATE_UNKNOWN); | 
| -    case STATE_IDLE: | 
| -      return l10n_util::GetStringUTF8(IDS_CHROMEOS_NETWORK_STATE_IDLE); | 
| -    case STATE_CARRIER: | 
| -      return l10n_util::GetStringUTF8(IDS_CHROMEOS_NETWORK_STATE_CARRIER); | 
| -    case STATE_ASSOCIATION: | 
| -      return l10n_util::GetStringUTF8(IDS_CHROMEOS_NETWORK_STATE_ASSOCIATION); | 
| -    case STATE_CONFIGURATION: | 
| -      return l10n_util::GetStringUTF8(IDS_CHROMEOS_NETWORK_STATE_CONFIGURATION); | 
| -    case STATE_READY: | 
| -      return l10n_util::GetStringUTF8(IDS_CHROMEOS_NETWORK_STATE_READY); | 
| -    case STATE_DISCONNECT: | 
| -      return l10n_util::GetStringUTF8(IDS_CHROMEOS_NETWORK_STATE_DISCONNECT); | 
| -    case STATE_FAILURE: | 
| -      return l10n_util::GetStringUTF8(IDS_CHROMEOS_NETWORK_STATE_FAILURE); | 
| -    case STATE_ACTIVATION_FAILURE: | 
| -      return l10n_util::GetStringUTF8( | 
| -          IDS_CHROMEOS_NETWORK_STATE_ACTIVATION_FAILURE); | 
| -    case STATE_PORTAL: | 
| -      return l10n_util::GetStringUTF8(IDS_CHROMEOS_NETWORK_STATE_PORTAL); | 
| -    case STATE_ONLINE: | 
| -      return l10n_util::GetStringUTF8(IDS_CHROMEOS_NETWORK_STATE_ONLINE); | 
| -  } | 
| -  return l10n_util::GetStringUTF8(IDS_CHROMEOS_NETWORK_STATE_UNRECOGNIZED); | 
| +  return ConnectionStateString(state_); | 
| } | 
|  | 
| std::string Network::GetErrorString() const { | 
|  |