diff options
Diffstat (limited to 'mojo/shell/connect_util.cc')
-rw-r--r-- | mojo/shell/connect_util.cc | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/mojo/shell/connect_util.cc b/mojo/shell/connect_util.cc new file mode 100644 index 0000000..0bffc5a4 --- /dev/null +++ b/mojo/shell/connect_util.cc @@ -0,0 +1,30 @@ +// Copyright 2015 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "mojo/shell/connect_util.h" + +#include "mojo/shell/application_manager.h" +#include "mojo/shell/capability_filter.h" +#include "mojo/shell/connect_to_application_params.h" + +namespace mojo { +namespace shell { + +ScopedMessagePipeHandle ConnectToServiceByName( + ApplicationManager* application_manager, + const GURL& application_url, + const std::string& interface_name) { + ServiceProviderPtr services; + scoped_ptr<ConnectToApplicationParams> params(new ConnectToApplicationParams); + params->SetURLInfo(application_url); + params->set_services(GetProxy(&services)); + params->set_filter(GetPermissiveCapabilityFilter()); + application_manager->ConnectToApplication(params.Pass()); + MessagePipe pipe; + services->ConnectToService(interface_name, pipe.handle1.Pass()); + return pipe.handle0.Pass(); +} + +} // namespace shell +} // namespace mojo |