summaryrefslogtreecommitdiffstats
path: root/chromeos/network
diff options
context:
space:
mode:
authorstevenjb@chromium.org <stevenjb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-11 21:00:53 +0000
committerstevenjb@chromium.org <stevenjb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-11 21:00:53 +0000
commit8ae47acd79e55eae65fe1db4d43a9299f6ac94d8 (patch)
tree737f479a766ca8a1efaa215fb1be9165ab2943f4 /chromeos/network
parent58191ea089a2f23dcd9e89244641305a49754fec (diff)
downloadchromium_src-8ae47acd79e55eae65fe1db4d43a9299f6ac94d8.zip
chromium_src-8ae47acd79e55eae65fe1db4d43a9299f6ac94d8.tar.gz
chromium_src-8ae47acd79e55eae65fe1db4d43a9299f6ac94d8.tar.bz2
Re-request network state after login
BUG=229911 Review URL: https://codereview.chromium.org/13937009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@193741 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chromeos/network')
-rw-r--r--chromeos/network/network_state_handler.cc10
-rw-r--r--chromeos/network/network_state_handler.h4
-rw-r--r--chromeos/network/shill_property_handler.cc2
-rw-r--r--chromeos/network/shill_property_handler.h3
-rw-r--r--chromeos/network/shill_property_handler_unittest.cc3
5 files changed, 22 insertions, 0 deletions
diff --git a/chromeos/network/network_state_handler.cc b/chromeos/network/network_state_handler.cc
index 3fa860e..60ae038 100644
--- a/chromeos/network/network_state_handler.cc
+++ b/chromeos/network/network_state_handler.cc
@@ -380,6 +380,16 @@ void NetworkStateHandler::UpdateManagedList(ManagedState::ManagedType type,
STLDeleteContainerPairSecondPointers(managed_map.begin(), managed_map.end());
}
+void NetworkStateHandler::ProfileListChanged() {
+ network_event_log::AddEntry(
+ kLogModule, "ProfileListChanged", "Re-Requesting Network Properties");
+ for (ManagedStateList::iterator iter = network_list_.begin();
+ iter != network_list_.end(); ++iter) {
+ shill_property_handler_->RequestProperties(
+ ManagedState::MANAGED_TYPE_NETWORK, (*iter)->path());
+ }
+}
+
void NetworkStateHandler::UpdateManagedStateProperties(
ManagedState::ManagedType type,
const std::string& path,
diff --git a/chromeos/network/network_state_handler.h b/chromeos/network/network_state_handler.h
index 534b936..69914db 100644
--- a/chromeos/network/network_state_handler.h
+++ b/chromeos/network/network_state_handler.h
@@ -173,6 +173,10 @@ class CHROMEOS_EXPORT NetworkStateHandler
virtual void UpdateManagedList(ManagedState::ManagedType type,
const base::ListValue& entries) OVERRIDE;
+ // The list of profiles changed (i.e. a user has logged in). Re-request
+ // properties for all services since they may have changed.
+ virtual void ProfileListChanged();
+
// Parses the properties for the network service or device. Mostly calls
// managed->PropertyChanged(key, value) for each dictionary entry.
virtual void UpdateManagedStateProperties(
diff --git a/chromeos/network/shill_property_handler.cc b/chromeos/network/shill_property_handler.cc
index f15cb85..fad1d75 100644
--- a/chromeos/network/shill_property_handler.cc
+++ b/chromeos/network/shill_property_handler.cc
@@ -280,6 +280,8 @@ bool ShillPropertyHandler::ManagerPropertyChanged(const std::string& key,
UpdateUninitializedTechnologies(*vlist);
notify_manager_changed = true;
}
+ } else if (key == flimflam::kProfilesProperty) {
+ listener_->ProfileListChanged();
}
return notify_manager_changed;
}
diff --git a/chromeos/network/shill_property_handler.h b/chromeos/network/shill_property_handler.h
index ff0ea1d..0749e34 100644
--- a/chromeos/network/shill_property_handler.h
+++ b/chromeos/network/shill_property_handler.h
@@ -56,6 +56,9 @@ class CHROMEOS_EXPORT ShillPropertyHandler
const std::string& path,
const base::DictionaryValue& properties) = 0;
+ // Called when the list of profiles changes.
+ virtual void ProfileListChanged() = 0;
+
// Called when a property for a watched network service has changed.
virtual void UpdateNetworkServiceProperty(
const std::string& service_path,
diff --git a/chromeos/network/shill_property_handler_unittest.cc b/chromeos/network/shill_property_handler_unittest.cc
index 01fb282..b724ae4 100644
--- a/chromeos/network/shill_property_handler_unittest.cc
+++ b/chromeos/network/shill_property_handler_unittest.cc
@@ -50,6 +50,9 @@ class TestListener : public internal::ShillPropertyHandler::Listener {
AddPropertyUpdate(GetTypeString(type), path);
}
+ virtual void ProfileListChanged() OVERRIDE {
+ }
+
virtual void UpdateNetworkServiceProperty(
const std::string& service_path,
const std::string& key,