1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef MOJO_SHELL_CONNECT_UTIL_H_
6 #define MOJO_SHELL_CONNECT_UTIL_H_
8 #include "third_party/mojo/src/mojo/public/cpp/bindings/interface_ptr.h"
9 #include "third_party/mojo/src/mojo/public/cpp/system/handle.h"
16 class ApplicationManager
;
18 ScopedMessagePipeHandle
ConnectToServiceByName(
19 ApplicationManager
* application_manager
,
20 const GURL
& application_url
,
21 const std::string
& interface_name
);
23 // Must only be used by shell internals and test code as it does not forward
24 // capability filters. Runs |application_url| with a permissive capability
26 template <typename Interface
>
27 inline void ConnectToService(ApplicationManager
* application_manager
,
28 const GURL
& application_url
,
29 InterfacePtr
<Interface
>* ptr
) {
30 ScopedMessagePipeHandle service_handle
=
31 ConnectToServiceByName(application_manager
, application_url
,
33 ptr
->Bind(InterfacePtrInfo
<Interface
>(service_handle
.Pass(), 0u));
40 #endif // MOJO_SHELL_CONNECT_UTIL_H_