Chromium Code Reviews| Index: dbus/object_manager.cc |
| diff --git a/dbus/object_manager.cc b/dbus/object_manager.cc |
| index 56143c758b4bb9b40f72e0f55075e0caa1f77ddc..471db8fe72f5d7c2e72114ed05d3599460432363 100644 |
| --- a/dbus/object_manager.cc |
| +++ b/dbus/object_manager.cc |
| @@ -167,35 +167,6 @@ void ObjectManager::CleanUp() { |
| match_rule_.clear(); |
| } |
| -void ObjectManager::InitializeObjects() { |
| - DCHECK(bus_); |
| - DCHECK(object_proxy_); |
| - DCHECK(setup_success_); |
| - |
| - // |object_proxy_| is no longer valid if the Bus was shut down before this |
| - // call. Don't initiate any other action from the origin thread. |
| - if (cleanup_called_) |
| - return; |
| - |
| - object_proxy_->ConnectToSignal( |
| - kObjectManagerInterface, |
| - kObjectManagerInterfacesAdded, |
| - base::Bind(&ObjectManager::InterfacesAddedReceived, |
| - weak_ptr_factory_.GetWeakPtr()), |
| - base::Bind(&ObjectManager::InterfacesAddedConnected, |
| - weak_ptr_factory_.GetWeakPtr())); |
| - |
| - object_proxy_->ConnectToSignal( |
| - kObjectManagerInterface, |
| - kObjectManagerInterfacesRemoved, |
| - base::Bind(&ObjectManager::InterfacesRemovedReceived, |
| - weak_ptr_factory_.GetWeakPtr()), |
| - base::Bind(&ObjectManager::InterfacesRemovedConnected, |
| - weak_ptr_factory_.GetWeakPtr())); |
| - |
| - GetManagedObjects(); |
| -} |
| - |
| bool ObjectManager::SetupMatchRuleAndFilter() { |
| DCHECK(bus_); |
| DCHECK(!setup_success_); |
| @@ -235,10 +206,49 @@ bool ObjectManager::SetupMatchRuleAndFilter() { |
| } |
| void ObjectManager::OnSetupMatchRuleAndFilterComplete(bool success) { |
| - LOG_IF(WARNING, !success) << service_name_ << " " << object_path_.value() |
| - << ": Failed to set up match rule."; |
| - if (success) |
| - InitializeObjects(); |
| + if (!success) { |
| + LOG(WARNING) << service_name_ << " " << object_path_.value() |
| + << ": Failed to set up match rule."; |
| + return; |
| + } |
| + |
| + DCHECK(bus_); |
| + DCHECK(object_proxy_); |
| + DCHECK(setup_success_); |
| + |
| + // |object_proxy_| is no longer valid if the Bus was shut down before this |
| + // call. Don't initiate any other action from the origin thread. |
| + if (cleanup_called_) |
| + return; |
| + |
| + object_proxy_->ConnectToSignal( |
| + kObjectManagerInterface, |
| + kObjectManagerInterfacesAdded, |
| + base::Bind(&ObjectManager::InterfacesAddedReceived, |
| + weak_ptr_factory_.GetWeakPtr()), |
| + base::Bind(&ObjectManager::InterfacesAddedConnected, |
| + weak_ptr_factory_.GetWeakPtr())); |
| + |
| + object_proxy_->ConnectToSignal( |
| + kObjectManagerInterface, |
| + kObjectManagerInterfacesRemoved, |
| + base::Bind(&ObjectManager::InterfacesRemovedReceived, |
| + weak_ptr_factory_.GetWeakPtr()), |
| + base::Bind(&ObjectManager::InterfacesRemovedConnected, |
| + weak_ptr_factory_.GetWeakPtr())); |
| + |
| + object_proxy_->WaitForServiceToBeAvailable( |
| + base::Bind(&ObjectManager::OnServiceInitiallyAvailable, |
| + weak_ptr_factory_.GetWeakPtr())); |
|
hashimoto
2016/09/02 08:33:06
You can just do this here:
if (!service_name_owne
Daniel Erat
2016/09/02 14:39:27
thanks, i hadn't seen the earlier call to GetServi
|
| +} |
| + |
| +void ObjectManager::OnServiceInitiallyAvailable(bool service_is_available) { |
| + if (!service_is_available) { |
| + LOG(WARNING) << service_name_ << " " << object_path_.value() |
| + << ": Failed to wait for service to become available"; |
| + return; |
| + } |
| + GetManagedObjects(); |
| } |
| // static |