diff options
author | armansito@chromium.org <armansito@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-21 08:36:28 +0000 |
---|---|---|
committer | armansito@chromium.org <armansito@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-21 08:36:28 +0000 |
commit | bd4cc2cfda41d280e880e03bbf005cb558ec2f77 (patch) | |
tree | 481321fd33e0210c7adb34614a1f26f1db18b114 /chromeos/network | |
parent | b909787f470a1425e2c6e1f0811906b8877609b6 (diff) | |
download | chromium_src-bd4cc2cfda41d280e880e03bbf005cb558ec2f77.zip chromium_src-bd4cc2cfda41d280e880e03bbf005cb558ec2f77.tar.gz chromium_src-bd4cc2cfda41d280e880e03bbf005cb558ec2f77.tar.bz2 |
ShillPropertyHandler: Don't prevent multiple property requests for devices.
There is an issue in shill that prevents it from sending property changed
signals for cellular device properties (crbug.com/321854). This CL allows
ShillPropertyHandler to request all properties of a device more than once,
if necessary, to obtain previously unavailable properties of a cellular device.
It is OK to request all properties of a device more than once, as shill usually
exposes no more than 5 devices at a time and the D-Bus traffic shouldn't be a
performance hit.
BUG=267853
R=stevenjb@chromium.org
Review URL: https://codereview.chromium.org/78783009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@236458 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chromeos/network')
-rw-r--r-- | chromeos/network/shill_property_handler.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/chromeos/network/shill_property_handler.cc b/chromeos/network/shill_property_handler.cc index 71fcb37..80bf21e 100644 --- a/chromeos/network/shill_property_handler.cc +++ b/chromeos/network/shill_property_handler.cc @@ -350,7 +350,12 @@ void ShillPropertyHandler::UpdateProperties(ManagedState::ManagedType type, if (type == ManagedState::MANAGED_TYPE_FAVORITE && requested_service_updates.count(path) > 0) continue; // Update already requested - if (requested_updates.find(path) == requested_updates.end()) + + // We add a special case for devices here to work around an issue in shill + // that prevents it from sending property changed signals for cellular + // devices (see crbug.com/321854). + if (type == ManagedState::MANAGED_TYPE_DEVICE || + requested_updates.find(path) == requested_updates.end()) RequestProperties(type, path); new_requested_updates.insert(path); } |