• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 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.
4 
5 #ifndef CHROME_BROWSER_NACL_HOST_NACL_BROKER_HOST_WIN_H_
6 #define CHROME_BROWSER_NACL_HOST_NACL_BROKER_HOST_WIN_H_
7 #pragma once
8 
9 #include "base/basictypes.h"
10 #include "content/browser/browser_child_process_host.h"
11 
12 class NaClBrokerHost : public BrowserChildProcessHost {
13  public:
14   NaClBrokerHost();
15   ~NaClBrokerHost();
16 
17   // This function starts the broker process. It needs to be called
18   // before loaders can be launched.
19   bool Init();
20 
21   // Send a message to the broker process, causing it to launch
22   // a Native Client loader process.
23   bool LaunchLoader(const std::wstring& loader_channel_id);
24 
25   // Stop the broker process.
26   void StopBroker();
27 
28  private:
CanShutdown()29   virtual bool CanShutdown() { return true; }
30 
31   // Handler for NaClProcessMsg_LoaderLaunched message
32   void OnLoaderLaunched(const std::wstring& loader_channel_id,
33                         base::ProcessHandle handle);
34 
35   // IPC::Channel::Listener
36   virtual bool OnMessageReceived(const IPC::Message& msg);
37 
38   bool stopping_;
39 
40   DISALLOW_COPY_AND_ASSIGN(NaClBrokerHost);
41 };
42 
43 #endif  // CHROME_BROWSER_NACL_HOST_NACL_BROKER_HOST_WIN_H_
44