Chromium Code Reviews| Index: chromeos/network/network_state_handler.cc |
| diff --git a/chromeos/network/network_state_handler.cc b/chromeos/network/network_state_handler.cc |
| index a1909a4f485fa7273aa77bafae0e973ea2af98d8..8a984b98b4a3951a8507cbe790231658f18ee7e5 100644 |
| --- a/chromeos/network/network_state_handler.cc |
| +++ b/chromeos/network/network_state_handler.cc |
| @@ -310,6 +310,29 @@ void NetworkStateHandler::ConnectToBestWifiNetwork() { |
| shill_property_handler_->AsWeakPtr())); |
| } |
| +bool NetworkStateHandler::RequestUpdateForNetwork( |
| + const std::string& service_path) { |
| + NetworkState* network = GetModifiableNetworkState(service_path); |
| + if (!network) |
| + return false; // Only request an update for known networks. |
| + network->set_update_requested(true); |
| + network_event_log::AddEntry(kLogModule, "RequestUpdate", service_path); |
| + shill_property_handler_->RequestProperties( |
| + ManagedState::MANAGED_TYPE_NETWORK, service_path); |
| + return true; |
| +} |
| + |
| +void NetworkStateHandler::RequestUpdateForAllNetworks() { |
| + network_event_log::AddEntry(kLogModule, "RequestUpdateForAllNetworks", ""); |
| + for (ManagedStateList::iterator iter = network_list_.begin(); |
| + iter != network_list_.end(); ++iter) { |
| + ManagedState* network = *iter; |
| + network->set_update_requested(true); |
| + shill_property_handler_->RequestProperties( |
| + ManagedState::MANAGED_TYPE_NETWORK, network->path()); |
| + } |
| +} |
| + |
| void NetworkStateHandler::SetConnectingNetwork( |
| const std::string& service_path) { |
| connecting_network_ = service_path; |
| @@ -411,7 +434,7 @@ void NetworkStateHandler::UpdateManagedStateProperties( |
| kLogModule, "PropertiesReceived", |
| base::StringPrintf("%s (%s)", path.c_str(), managed->name().c_str())); |
| // Notify observers. |
| - if (network_property_updated) { |
| + if (network_property_updated || managed->update_requested()) { |
|
pneubeck (no reviews)
2013/05/22 08:42:40
a comment about your intent (guaranteed notificati
stevenjb
2013/05/22 16:08:23
Good thought, comment added.
|
| NetworkState* network = managed->AsNetworkState(); |
| DCHECK(network); |
| // Signal connection state changed after all properties have been updated. |
| @@ -419,6 +442,7 @@ void NetworkStateHandler::UpdateManagedStateProperties( |
| OnNetworkConnectionStateChanged(network); |
| NetworkPropertiesUpdated(network); |
| } |
| + managed->set_update_requested(false); |
| } |
| void NetworkStateHandler::UpdateNetworkServiceProperty( |