summaryrefslogtreecommitdiffstats
path: root/mojo/shell/connect_util.cc
diff options
context:
space:
mode:
Diffstat (limited to 'mojo/shell/connect_util.cc')
-rw-r--r--mojo/shell/connect_util.cc30
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