summaryrefslogtreecommitdiffstats
path: root/chromium/mojo/shell/app_child_process_host.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/mojo/shell/app_child_process_host.h')
-rw-r--r--chromium/mojo/shell/app_child_process_host.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/chromium/mojo/shell/app_child_process_host.h b/chromium/mojo/shell/app_child_process_host.h
new file mode 100644
index 00000000000..30e6b798a24
--- /dev/null
+++ b/chromium/mojo/shell/app_child_process_host.h
@@ -0,0 +1,55 @@
+// Copyright 2014 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.
+
+#ifndef MOJO_SHELL_APP_CHILD_PROCESS_HOST_H_
+#define MOJO_SHELL_APP_CHILD_PROCESS_HOST_H_
+
+#include "base/macros.h"
+#include "mojo/shell/app_child_process.mojom.h"
+#include "mojo/shell/child_process_host.h"
+
+namespace mojo {
+
+namespace embedder {
+struct ChannelInfo;
+}
+
+namespace shell {
+
+// A subclass of |ChildProcessHost| to host a |TYPE_APP| child process, which
+// runs a single app (loaded from the file system).
+//
+// Note: After |Start()|, this object must remain alive until the controller
+// client's |AppCompleted()| is called.
+class AppChildProcessHost : public ChildProcessHost,
+ public ChildProcessHost::Delegate {
+ public:
+ AppChildProcessHost(Context* context,
+ AppChildControllerClient* controller_client);
+ virtual ~AppChildProcessHost();
+
+ AppChildController* controller() {
+ return controller_.get();
+ }
+
+ private:
+ // |ChildProcessHost::Delegate| methods:
+ virtual void WillStart() OVERRIDE;
+ virtual void DidStart(bool success) OVERRIDE;
+
+ // Callback for |embedder::CreateChannel()|.
+ void DidCreateChannel(embedder::ChannelInfo* channel_info);
+
+ AppChildControllerClient* const controller_client_;
+
+ AppChildControllerPtr controller_;
+ embedder::ChannelInfo* channel_info_;
+
+ DISALLOW_COPY_AND_ASSIGN(AppChildProcessHost);
+};
+
+} // namespace shell
+} // namespace mojo
+
+#endif // MOJO_SHELL_APP_CHILD_PROCESS_HOST_H_