diff options
author | stevenjb@chromium.org <stevenjb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-11 21:00:53 +0000 |
---|---|---|
committer | stevenjb@chromium.org <stevenjb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-11 21:00:53 +0000 |
commit | 8ae47acd79e55eae65fe1db4d43a9299f6ac94d8 (patch) | |
tree | 737f479a766ca8a1efaa215fb1be9165ab2943f4 /chromeos/network | |
parent | 58191ea089a2f23dcd9e89244641305a49754fec (diff) | |
download | chromium_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.cc | 10 | ||||
-rw-r--r-- | chromeos/network/network_state_handler.h | 4 | ||||
-rw-r--r-- | chromeos/network/shill_property_handler.cc | 2 | ||||
-rw-r--r-- | chromeos/network/shill_property_handler.h | 3 | ||||
-rw-r--r-- | chromeos/network/shill_property_handler_unittest.cc | 3 |
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, |