Roll src/third_party/skia 2440fcd:4de8c3a
[chromium-blink-merge.git] / mojo / shell / connect_util.h
blob8d1a8d63798692a6cc2e9b0a451fe3596c3010bb
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"
11 class GURL;
13 namespace mojo {
14 namespace shell {
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
25 // filter.
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,
32 Interface::Name_);
33 ptr->Bind(InterfacePtrInfo<Interface>(service_handle.Pass(), 0u));
36 } // namespace shell
37 } // namespace mojo
40 #endif // MOJO_SHELL_CONNECT_UTIL_H_