| Index: chromeos/network/network_state_handler.cc
|
| diff --git a/chromeos/network/network_state_handler.cc b/chromeos/network/network_state_handler.cc
|
| index 863e20f75ee5109ad4c2d2504341dc4861e31a0a..a1909a4f485fa7273aa77bafae0e973ea2af98d8 100644
|
| --- a/chromeos/network/network_state_handler.cc
|
| +++ b/chromeos/network/network_state_handler.cc
|
| @@ -71,6 +71,13 @@ std::string ValueAsString(const base::Value& value) {
|
| return "";
|
| }
|
|
|
| +bool ConnectionStateChanged(chromeos::NetworkState* network,
|
| + const std::string& prev_connection_state) {
|
| + return (network->connection_state() != prev_connection_state) &&
|
| + (network->connection_state() != flimflam::kStateIdle ||
|
| + !prev_connection_state.empty());
|
| +}
|
| +
|
| } // namespace
|
|
|
| namespace chromeos {
|
| @@ -408,7 +415,7 @@ void NetworkStateHandler::UpdateManagedStateProperties(
|
| NetworkState* network = managed->AsNetworkState();
|
| DCHECK(network);
|
| // Signal connection state changed after all properties have been updated.
|
| - if (network->connection_state() != prev_connection_state)
|
| + if (ConnectionStateChanged(network, prev_connection_state))
|
| OnNetworkConnectionStateChanged(network);
|
| NetworkPropertiesUpdated(network);
|
| }
|
| @@ -425,21 +432,22 @@ void NetworkStateHandler::UpdateNetworkServiceProperty(
|
| if (!network->PropertyChanged(key, value))
|
| return;
|
|
|
| - std::string detail = network->name() + "." + key;
|
| - std::string vstr = ValueAsString(value);
|
| - if (!vstr.empty())
|
| - detail += " = " + vstr;
|
| - network_event_log::AddEntry(kLogModule, "NetworkPropertyUpdated", detail);
|
| -
|
| - if (network->connection_state() != prev_connection_state) {
|
| - OnNetworkConnectionStateChanged(network);
|
| - } else if (network->path() == default_network_path_ &&
|
| - key != flimflam::kSignalStrengthProperty) {
|
| - // WiFi signal strength updates are too noisy, so don't
|
| - // trigger default network updates for those changes.
|
| - OnDefaultNetworkChanged();
|
| + if (key == flimflam::kStateProperty) {
|
| + if (ConnectionStateChanged(network, prev_connection_state))
|
| + OnNetworkConnectionStateChanged(network);
|
| + } else {
|
| + if (network->path() == default_network_path_ &&
|
| + key != flimflam::kSignalStrengthProperty) {
|
| + // WiFi signal strength updates are too noisy, so don't
|
| + // trigger default network updates for those changes.
|
| + OnDefaultNetworkChanged();
|
| + }
|
| + std::string detail = network->name() + "." + key;
|
| + std::string vstr = ValueAsString(value);
|
| + if (!vstr.empty())
|
| + detail += " = " + vstr;
|
| + network_event_log::AddEntry(kLogModule, "NetworkPropertyUpdated", detail);
|
| }
|
| -
|
| NetworkPropertiesUpdated(network);
|
| }
|
|
|
|
|