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

Unified Diff: chromeos/network/network_state_handler.cc

Issue 175243004: Chrome OS: Use Manager.DefaultService for Default Network (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 10 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
« no previous file with comments | « chromeos/network/network_state_handler.h ('k') | chromeos/network/network_state_handler_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chromeos/network/network_state_handler.cc
diff --git a/chromeos/network/network_state_handler.cc b/chromeos/network/network_state_handler.cc
index f3a93395d06a1878bfa3fc881f2eb9aa3cbb2714..a77f42387241e288f30627b2475f7cdc7c37a1b8 100644
--- a/chromeos/network/network_state_handler.cc
+++ b/chromeos/network/network_state_handler.cc
@@ -180,13 +180,9 @@ const NetworkState* NetworkStateHandler::GetNetworkState(
}
const NetworkState* NetworkStateHandler::DefaultNetwork() const {
- if (network_list_.empty())
+ if (default_network_path_.empty())
mukesh agrawal 2014/02/25 02:08:41 Not sure about this check. When there is no connec
stevenjb 2014/02/25 21:31:39 Hmm, that's unfortunate, but I can add a test for
return NULL;
- const NetworkState* network = network_list_.front()->AsNetworkState();
- DCHECK(network);
- if (!network->update_received() || !network->IsConnectedState())
- return NULL;
- return network;
+ return GetNetworkState(default_network_path_);
}
const FavoriteState* NetworkStateHandler::DefaultFavoriteNetwork() const {
@@ -538,7 +534,8 @@ void NetworkStateHandler::UpdateNetworkStateProperties(
// Signal connection state changed after all properties have been updated.
if (ConnectionStateChanged(network, prev_connection_state))
OnNetworkConnectionStateChanged(network);
- NetworkPropertiesUpdated(network);
+ NET_LOG_EVENT("NetworkPropertiesUpdated", GetManagedStateLogName(network));
+ NotifyNetworkPropertiesUpdated(network);
}
}
@@ -580,10 +577,13 @@ void NetworkStateHandler::UpdateNetworkServiceProperty(
if (key != shill::kSignalStrengthProperty &&
key != shill::kWifiFrequencyListProperty &&
(key != shill::kDeviceProperty || value_str != "/")) {
+ std::string log_event = "NetworkPropertyUpdated";
// Trigger a default network update for interesting changes only.
- if (network->path() == default_network_path_)
- OnDefaultNetworkChanged();
- // Log interesting event.
+ if (network->path() == default_network_path_) {
+ NotifyDefaultNetworkChanged(network);
+ log_event = "Default" + log_event;
+ }
+ // Log event.
std::string detail = network->name() + "." + key;
detail += " = " + network_event_log::ValueAsString(value);
network_event_log::LogLevel log_level;
@@ -592,12 +592,12 @@ void NetworkStateHandler::UpdateNetworkServiceProperty(
} else {
log_level = network_event_log::LOG_LEVEL_EVENT;
}
- NET_LOG_LEVEL(log_level, "NetworkPropertyUpdated", detail);
+ NET_LOG_LEVEL(log_level, log_event, detail);
}
}
// All property updates signal 'NetworkPropertiesUpdated'.
- NetworkPropertiesUpdated(network);
+ NotifyNetworkPropertiesUpdated(network);
// If added to a Profile, request a full update so that a FavoriteState
// gets created.
@@ -657,9 +657,6 @@ void NetworkStateHandler::ManagedStateListChanged(
base::StringPrintf("Size:%" PRIuS, network_list_.size()));
FOR_EACH_OBSERVER(NetworkStateHandlerObserver, observers_,
NetworkListChanged());
- // The list order may have changed, so check if the default network changed.
- if (CheckDefaultNetworkChanged())
- OnDefaultNetworkChanged();
// Update UMA stats.
UMA_HISTOGRAM_COUNTS_100("Networks.Visible", network_list_.size());
} else if (type == ManagedState::MANAGED_TYPE_FAVORITE) {
@@ -689,6 +686,28 @@ void NetworkStateHandler::ManagedStateListChanged(
}
}
+void NetworkStateHandler::DefaultNetworkServiceChanged(
+ const std::string& service_path) {
+ default_network_path_ = service_path;
+ NET_LOG_EVENT("DefaultNetworkServiceChanged", service_path);
+ const NetworkState* network = NULL;
+ if (!service_path.empty()) {
mukesh agrawal 2014/02/25 02:08:41 Same here (might need to check equality against '/
stevenjb 2014/02/25 21:31:39 I will add the check for "/" where we set default_
+ network = GetNetworkState(service_path);
+ if (!network) {
+ // If NetworkState is not available yet, do not notify observers here,
+ // they will be notified when the state is received.
+ NET_LOG_DEBUG("Default NetworkState not available", service_path);
+ return;
+ }
+ }
+ if (network && !network->IsConnectedState()) {
+ NET_LOG_ERROR(
+ "DefaultNetwork is not connected: " + network->connection_state(),
+ network->path());
+ }
+ NotifyDefaultNetworkChanged(network);
+}
+
//------------------------------------------------------------------------------
// Private methods
@@ -745,35 +764,30 @@ NetworkStateHandler::ManagedStateList* NetworkStateHandler::GetManagedList(
void NetworkStateHandler::OnNetworkConnectionStateChanged(
NetworkState* network) {
DCHECK(network);
- NET_LOG_EVENT("NetworkConnectionStateChanged", base::StringPrintf(
- "%s:%s", GetManagedStateLogName(network).c_str(),
- network->connection_state().c_str()));
+ std::string event = "NetworkConnectionStateChanged";
+ if (network->path() == default_network_path_) {
+ event = "Default" + event;
+ if (!network->IsConnectedState()) {
+ NET_LOG_ERROR(
+ "DefaultNetwork is not connected: " + network->connection_state(),
+ network->path());
+ }
+ }
+ NET_LOG_EVENT(event + ": " + network->connection_state(),
+ GetManagedStateLogName(network));
FOR_EACH_OBSERVER(NetworkStateHandlerObserver, observers_,
NetworkConnectionStateChanged(network));
- if (CheckDefaultNetworkChanged() || network->path() == default_network_path_)
- OnDefaultNetworkChanged();
-}
-
-bool NetworkStateHandler::CheckDefaultNetworkChanged() {
- std::string new_default_network_path;
- const NetworkState* new_default_network = DefaultNetwork();
- if (new_default_network)
- new_default_network_path = new_default_network->path();
- if (new_default_network_path == default_network_path_)
- return false;
- default_network_path_ = new_default_network_path;
- return true;
+ if (network->path() == default_network_path_)
+ NotifyDefaultNetworkChanged(network);
}
-void NetworkStateHandler::OnDefaultNetworkChanged() {
- const NetworkState* default_network = DefaultNetwork();
- NET_LOG_EVENT("DefaultNetworkChanged",
- GetManagedStateLogName(default_network));
+void NetworkStateHandler::NotifyDefaultNetworkChanged(
+ const NetworkState* default_network) {
FOR_EACH_OBSERVER(NetworkStateHandlerObserver, observers_,
DefaultNetworkChanged(default_network));
}
-void NetworkStateHandler::NetworkPropertiesUpdated(
+void NetworkStateHandler::NotifyNetworkPropertiesUpdated(
const NetworkState* network) {
FOR_EACH_OBSERVER(NetworkStateHandlerObserver, observers_,
NetworkPropertiesUpdated(network));
« no previous file with comments | « chromeos/network/network_state_handler.h ('k') | chromeos/network/network_state_handler_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698