We need cell towers information to make ChromeOS geolocation more precise. It seems that GetGeolocationObjects() is overridden for WiFi objects, but not for cellular: https://cs.corp.google.com/chromeos_internal/src/aosp/system/connectivity/shill/cellular/cellular.h so it always returns empty list for Cellular objects.
+pstew@
Addressed in https://chromium-review.googlesource.com/#/c/412192/
The following revision refers to this bug: https://chromium.googlesource.com/aosp/platform/system/connectivity/shill/+/008b0627d82b4e09029d85b0f172401903c69b37 commit 008b0627d82b4e09029d85b0f172401903c69b37 Author: Skylar Cook <skylarc@google.com> Date: Fri Oct 21 00:55:27 2016 shill: cellular: support polling location updates from ModemManager Supported (CapabilityUniversal / 3GPP) modems are now polled asynchronously for a MM_MODEM_LOCATION_SOURCE_3GPP_LAC_CI location. This is scheduled through shill's existing EventDispatcher via the Cellular device, beginning after the modem is successfully enabled. On a successful location query, Cellular will parse and cache the returned location before informing the manager that the geolocation has been updated. Non-3GPP modems should fail gracefully, firing the callback with an empty string and relevant error instead of querying the modem. This required resurrecting the proxy to modemmanager's Location interface, whose outdated code was present but removed from the gyp build. BUG=b:30019266 BUG=chromium:601174 BUG= chromium:601182 TEST=GetNetworksForGeolocation on flimflam/shill via DBUS, see cellTowers Change-Id: Id79c72d4fb3e286f346262397fb2a9f69b4118ea Reviewed-on: https://chromium-review.googlesource.com/412192 Commit-Ready: Skylar Cook <skylarc@chromium.org> Tested-by: Skylar Cook <skylarc@chromium.org> Reviewed-by: Ben Chan <benchan@chromium.org> [modify] https://crrev.com/008b0627d82b4e09029d85b0f172401903c69b37/geolocation_info.h [modify] https://crrev.com/008b0627d82b4e09029d85b0f172401903c69b37/test-scripts/flimflam.py [modify] https://crrev.com/008b0627d82b4e09029d85b0f172401903c69b37/cellular/cellular.h [modify] https://crrev.com/008b0627d82b4e09029d85b0f172401903c69b37/callbacks.h [modify] https://crrev.com/008b0627d82b4e09029d85b0f172401903c69b37/cellular/cellular_capability_universal_unittest.cc [add] https://crrev.com/008b0627d82b4e09029d85b0f172401903c69b37/dbus/chromeos_mm1_modem_location_proxy.h [modify] https://crrev.com/008b0627d82b4e09029d85b0f172401903c69b37/cellular/cellular_unittest.cc [modify] https://crrev.com/008b0627d82b4e09029d85b0f172401903c69b37/control_interface.h [modify] https://crrev.com/008b0627d82b4e09029d85b0f172401903c69b37/cellular/cellular_capability_universal.h [modify] https://crrev.com/008b0627d82b4e09029d85b0f172401903c69b37/cellular/cellular.cc [modify] https://crrev.com/008b0627d82b4e09029d85b0f172401903c69b37/dbus/chromeos_dbus_control.cc [modify] https://crrev.com/008b0627d82b4e09029d85b0f172401903c69b37/dbus/chromeos_dbus_control.h [modify] https://crrev.com/008b0627d82b4e09029d85b0f172401903c69b37/cellular/cellular_capability.h [modify] https://crrev.com/008b0627d82b4e09029d85b0f172401903c69b37/mock_control.h [modify] https://crrev.com/008b0627d82b4e09029d85b0f172401903c69b37/shill.gyp [modify] https://crrev.com/008b0627d82b4e09029d85b0f172401903c69b37/cellular/cellular_capability.cc [modify] https://crrev.com/008b0627d82b4e09029d85b0f172401903c69b37/cellular/mm1_modem_location_proxy_interface.h [modify] https://crrev.com/008b0627d82b4e09029d85b0f172401903c69b37/cellular/cellular_capability_universal.cc [add] https://crrev.com/008b0627d82b4e09029d85b0f172401903c69b37/dbus/chromeos_mm1_modem_location_proxy.cc [modify] https://crrev.com/008b0627d82b4e09029d85b0f172401903c69b37/nice_mock_control.h [modify] https://crrev.com/008b0627d82b4e09029d85b0f172401903c69b37/doc/manager-api.txt [modify] https://crrev.com/008b0627d82b4e09029d85b0f172401903c69b37/cellular/mock_mm1_modem_location_proxy.h
Comment 1 by alemate@chromium.org
, Apr 6 2016