Index: chromeos/dbus/fake_shill_service_client.cc |
diff --git a/chromeos/dbus/fake_shill_service_client.cc b/chromeos/dbus/fake_shill_service_client.cc |
index c968d80ec67892806d2c9a00518968a479fc2d2c..88e1b7eb1baf31ccb2aa27f24bf352f485fd762e 100644 |
--- a/chromeos/dbus/fake_shill_service_client.cc |
+++ b/chromeos/dbus/fake_shill_service_client.cc |
@@ -398,17 +398,20 @@ bool FakeShillServiceClient::SetServiceProperty(const std::string& service_path, |
dict->MergeDictionary(&new_properties); |
- if (property == shill::kStateProperty) { |
- // When State changes the sort order of Services may change. |
- DBusThreadManager::Get()->GetShillManagerClient()->GetTestInterface()-> |
- SortManagerServices(); |
- } |
- |
+ // First Shill notifies Chrome of the property change. |
base::MessageLoop::current()->PostTask( |
FROM_HERE, |
base::Bind(&FakeShillServiceClient::NotifyObserversPropertyChanged, |
weak_ptr_factory_.GetWeakPtr(), |
dbus::ObjectPath(service_path), changed_property)); |
+ |
+ // Next, if the State changes, the sort order of Services may change and the |
+ // DefaultService property may change. |
+ if (property == shill::kStateProperty) { |
+ DBusThreadManager::Get()->GetShillManagerClient()->GetTestInterface()-> |
+ SortManagerServices(); |
+ } |
+ |
return true; |
} |