| Index: mojo/shell/runner/host/child_process_host.h
|
| diff --git a/mojo/shell/runner/host/child_process_host.h b/mojo/shell/runner/host/child_process_host.h
|
| index 906a1a234322b8292d4be952b964e09184ce2c00..2664d30891d08ed7d6967c0af9899685e5092815 100644
|
| --- a/mojo/shell/runner/host/child_process_host.h
|
| +++ b/mojo/shell/runner/host/child_process_host.h
|
| @@ -71,70 +71,24 @@ class ChildProcessHost {
|
| void ExitNow(int32_t exit_code);
|
|
|
| protected:
|
| - void DidStart();
|
| + void DidStart(const ProcessReadyCallback& callback);
|
|
|
| private:
|
| - // A thread-safe holder for the bootstrap message pipe to this child process.
|
| - // The pipe is established on an arbitrary thread and may not be connected
|
| - // until the host's message loop has stopped running.
|
| - class PipeHolder : public base::RefCountedThreadSafe<PipeHolder> {
|
| - public:
|
| - PipeHolder();
|
| -
|
| - void Reject();
|
| - void SetPipe(ScopedMessagePipeHandle pipe);
|
| - ScopedMessagePipeHandle PassPipe();
|
| -
|
| - private:
|
| - friend class base::RefCountedThreadSafe<PipeHolder>;
|
| -
|
| - ~PipeHolder();
|
| -
|
| - base::Lock lock_;
|
| - bool reject_pipe_ = false;
|
| - ScopedMessagePipeHandle pipe_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(PipeHolder);
|
| - };
|
| -
|
| void DoLaunch();
|
|
|
| void AppCompleted(int32_t result);
|
|
|
| - // Callback for |embedder::CreateChannel()|.
|
| - void DidCreateChannel(embedder::ChannelInfo* channel_info);
|
| -
|
| - // Called once |pipe_holder_| is bound to a pipe.
|
| - void OnMessagePipeCreated();
|
| -
|
| - // Called when the child process is launched and when the bootstrap
|
| - // message pipe is created. Once both things have happened (which may happen
|
| - // in either order), |process_ready_callback_| is invoked.
|
| - void MaybeNotifyProcessReady();
|
| -
|
| - // Callback used to receive the child message pipe from the ports EDK.
|
| - // This may be called on any thread. It will always stash the pipe in
|
| - // |holder|, and it will then attempt to call |callback| on
|
| - // |callback_task_runner| (which may or may not still be running tasks.)
|
| - static void OnParentMessagePipeCreated(
|
| - scoped_refptr<PipeHolder> holder,
|
| - scoped_refptr<base::TaskRunner> callback_task_runner,
|
| - const base::Closure& callback,
|
| - ScopedMessagePipeHandle pipe);
|
| -
|
| scoped_refptr<base::TaskRunner> launch_process_runner_;
|
| bool start_sandboxed_;
|
| const base::FilePath app_path_;
|
| base::Process child_process_;
|
| // Used for the ChildController binding.
|
| - embedder::PlatformChannelPair platform_channel_pair_;
|
| + edk::PlatformChannelPair platform_channel_pair_;
|
| mojom::ChildControllerPtr controller_;
|
| - embedder::ChannelInfo* channel_info_;
|
| mojom::ChildController::StartAppCallback on_app_complete_;
|
| - embedder::HandlePassingInformation handle_passing_info_;
|
| + edk::HandlePassingInformation handle_passing_info_;
|
|
|
| - // Used only when --use-new-edk is specified. Used to back the NodeChannel
|
| - // between the parent and child node.
|
| + // Used to back the NodeChannel between the parent and child node.
|
| scoped_ptr<edk::PlatformChannelPair> node_channel_;
|
|
|
| // Since Start() calls a method on another thread, we use an event to block
|
| @@ -144,14 +98,6 @@ class ChildProcessHost {
|
| // A token the child can use to connect a primordial pipe to the host.
|
| std::string primordial_pipe_token_;
|
|
|
| - // Holds the message pipe to the child process until it is either closed or
|
| - // bound to the controller interface.
|
| - scoped_refptr<PipeHolder> pipe_holder_;
|
| -
|
| - // Invoked exactly once, as soon as the child process's ID is known and
|
| - // a pipe to the child has been established.
|
| - ProcessReadyCallback process_ready_callback_;
|
| -
|
| base::WeakPtrFactory<ChildProcessHost> weak_factory_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(ChildProcessHost);
|
|
|