diff options
Diffstat (limited to 'mojo/shell/shell.cc')
-rw-r--r-- | mojo/shell/shell.cc | 30 |
1 files changed, 11 insertions, 19 deletions
diff --git a/mojo/shell/shell.cc b/mojo/shell/shell.cc index 6fb4874..4cefbc3 100644 --- a/mojo/shell/shell.cc +++ b/mojo/shell/shell.cc @@ -319,7 +319,7 @@ class Shell::Instance : public mojom::Connector, mojom::kInheritUserID, mojom::kInvalidInstanceID); return false; } - if (shell_->GetExistingOrRootInstance(target)) { + if (shell_->GetExistingInstance(target)) { LOG(ERROR) << "Error: Cannot client process matching existing identity:" << "Name: " << target.name() << " User: " << target.user_id() << " Instance: " << target.instance(); @@ -560,27 +560,19 @@ void Shell::Connect(scoped_ptr<ConnectParams> params, Shell::Instance* Shell::GetExistingInstance(const Identity& identity) const { const auto& it = identity_to_instance_.find(identity); - return it != identity_to_instance_.end() ? it->second : nullptr; -} + Instance* instance = it != identity_to_instance_.end() ? it->second : nullptr; + if (instance) + return instance; -Shell::Instance* Shell::GetExistingOrRootInstance( - const Identity& identity) const { - Instance* instance = GetExistingInstance(identity); - if (!instance) { - if (singletons_.find(identity.name()) != singletons_.end()) { - for (auto entry : identity_to_instance_) { - if (entry.first.name() == identity.name() && - entry.first.instance() == identity.instance()) { - return entry.second; - } + if (singletons_.find(identity.name()) != singletons_.end()) { + for (auto entry : identity_to_instance_) { + if (entry.first.name() == identity.name() && + entry.first.instance() == identity.instance()) { + return entry.second; } } - - Identity root_identity = identity; - root_identity.set_user_id(mojom::kRootUserID); - instance = GetExistingInstance(root_identity); } - return instance; + return nullptr; } void Shell::NotifyPIDAvailable(uint32_t id, base::ProcessId pid) { @@ -590,7 +582,7 @@ void Shell::NotifyPIDAvailable(uint32_t id, base::ProcessId pid) { } bool Shell::ConnectToExistingInstance(scoped_ptr<ConnectParams>* params) { - Instance* instance = GetExistingOrRootInstance((*params)->target()); + Instance* instance = GetExistingInstance((*params)->target()); if (instance) instance->ConnectToClient(std::move(*params)); return !!instance; |