Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(369)

Unified Diff: chromeos/network/network_state_handler.cc

Issue 15233002: Add NetworkStateHandler::RequestUpdateForNetwork (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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(

Powered by Google App Engine
This is Rietveld 408576698