Index: services/service_manager/service_manager.cc |
diff --git a/services/service_manager/service_manager.cc b/services/service_manager/service_manager.cc |
index 9b6fb5441f959222334819574eff75cd480a7a98..acfcaaf51e02febad62ea28dac2cf44aa890440b 100644 |
--- a/services/service_manager/service_manager.cc |
+++ b/services/service_manager/service_manager.cc |
@@ -672,7 +672,7 @@ void ServiceManager::Connect(std::unique_ptr<ConnectParams> params, |
service_manager::mojom::kServiceName, params->target().user_id())); |
std::string name = params->target().name(); |
- resolver->ResolveMojoName( |
+ resolver->ResolveServiceName( |
name, |
base::Bind(&service_manager::ServiceManager::OnGotResolvedName, |
weak_ptr_factory_.GetWeakPtr(), base::Passed(¶ms), |
@@ -820,6 +820,16 @@ void ServiceManager::OnGotResolvedName(std::unique_ptr<ConnectParams> params, |
if (has_source_instance && !source_instance) |
return; |
+ // If name resolution failed, we drop the connection. |
+ if (!result) { |
+ LOG(ERROR) << "Failed to resolve service name: " << params->target().name(); |
+ if (!params->connect_callback().is_null()) { |
+ params->connect_callback().Run( |
+ mojom::ConnectResult::INVALID_ARGUMENT, ""); |
+ } |
+ return; |
+ } |
+ |
std::string instance_name = params->target().instance(); |
if (instance_name == params->target().name() && |
result->qualifier != result->resolved_name) { |