summaryrefslogtreecommitdiffstats
path: root/chromeos/network
diff options
context:
space:
mode:
authorarmansito@chromium.org <armansito@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-21 08:36:28 +0000
committerarmansito@chromium.org <armansito@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-21 08:36:28 +0000
commitbd4cc2cfda41d280e880e03bbf005cb558ec2f77 (patch)
tree481321fd33e0210c7adb34614a1f26f1db18b114 /chromeos/network
parentb909787f470a1425e2c6e1f0811906b8877609b6 (diff)
downloadchromium_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.cc7
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);
}