OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CONTENT_PUBLIC_BROWSER_BROWSER_CHILD_PROCESS_HOST_H_ | 5 #ifndef CONTENT_PUBLIC_BROWSER_BROWSER_CHILD_PROCESS_HOST_H_ |
6 #define CONTENT_PUBLIC_BROWSER_BROWSER_CHILD_PROCESS_HOST_H_ | 6 #define CONTENT_PUBLIC_BROWSER_BROWSER_CHILD_PROCESS_HOST_H_ |
7 | 7 |
8 #include "base/process_util.h" | 8 #include "base/process_util.h" |
9 #include "base/string16.h" | 9 #include "base/string16.h" |
10 #include "build/build_config.h" | 10 #include "build/build_config.h" |
11 #include "content/common/content_export.h" | 11 #include "content/common/content_export.h" |
12 #include "content/public/common/process_type.h" | 12 #include "content/public/common/process_type.h" |
13 #include "ipc/ipc_sender.h" | 13 #include "ipc/ipc_sender.h" |
14 | 14 |
15 class CommandLine; | 15 class CommandLine; |
16 | 16 |
17 namespace base { | 17 namespace base { |
18 class FilePath; | 18 class FilePath; |
19 } | 19 } |
20 | 20 |
21 namespace content { | 21 namespace content { |
22 | 22 |
23 class BrowserChildProcessHostDelegate; | 23 class BrowserChildProcessHostDelegate; |
24 class ChildProcessHost; | 24 class ChildProcessHost; |
| 25 class SandboxedProcessLauncherDelegate; |
25 struct ChildProcessData; | 26 struct ChildProcessData; |
26 | 27 |
27 // This represents child processes of the browser process, i.e. plugins. They | 28 // This represents child processes of the browser process, i.e. plugins. They |
28 // will get terminated at browser shutdown. | 29 // will get terminated at browser shutdown. |
29 class CONTENT_EXPORT BrowserChildProcessHost : public IPC::Sender { | 30 class CONTENT_EXPORT BrowserChildProcessHost : public IPC::Sender { |
30 public: | 31 public: |
31 // Used to create a child process host. The delegate must outlive this object. | 32 // Used to create a child process host. The delegate must outlive this object. |
32 static BrowserChildProcessHost* Create( | 33 static BrowserChildProcessHost* Create( |
33 ProcessType type, | 34 ProcessType type, |
34 BrowserChildProcessHostDelegate* delegate); | 35 BrowserChildProcessHostDelegate* delegate); |
35 | 36 |
36 virtual ~BrowserChildProcessHost() {} | 37 virtual ~BrowserChildProcessHost() {} |
37 | 38 |
38 // Derived classes call this to launch the child process asynchronously. | 39 // Derived classes call this to launch the child process asynchronously. |
39 // Takes ownership of |cmd_line|. | 40 // Takes ownership of |cmd_line| and |delegate|. |
40 virtual void Launch( | 41 virtual void Launch( |
41 #if defined(OS_WIN) | 42 #if defined(OS_WIN) |
42 const base::FilePath& exposed_dir, | 43 SandboxedProcessLauncherDelegate* delegate, |
43 #elif defined(OS_POSIX) | 44 #elif defined(OS_POSIX) |
44 bool use_zygote, | 45 bool use_zygote, |
45 const base::EnvironmentVector& environ, | 46 const base::EnvironmentVector& environ, |
46 #endif | 47 #endif |
47 CommandLine* cmd_line) = 0; | 48 CommandLine* cmd_line) = 0; |
48 | 49 |
49 virtual const ChildProcessData& GetData() const = 0; | 50 virtual const ChildProcessData& GetData() const = 0; |
50 | 51 |
51 // Returns the ChildProcessHost object used by this object. | 52 // Returns the ChildProcessHost object used by this object. |
52 virtual ChildProcessHost* GetHost() const = 0; | 53 virtual ChildProcessHost* GetHost() const = 0; |
(...skipping 16 matching lines...) Expand all Loading... |
69 | 70 |
70 #if defined(OS_MACOSX) && !defined(OS_IOS) | 71 #if defined(OS_MACOSX) && !defined(OS_IOS) |
71 // Returns a PortProvider used to get process metrics for child processes. | 72 // Returns a PortProvider used to get process metrics for child processes. |
72 static base::ProcessMetrics::PortProvider* GetPortProvider(); | 73 static base::ProcessMetrics::PortProvider* GetPortProvider(); |
73 #endif | 74 #endif |
74 }; | 75 }; |
75 | 76 |
76 }; // namespace content | 77 }; // namespace content |
77 | 78 |
78 #endif // CONTENT_PUBLIC_BROWSER_BROWSER_CHILD_PROCESS_HOST_H_ | 79 #endif // CONTENT_PUBLIC_BROWSER_BROWSER_CHILD_PROCESS_HOST_H_ |
OLD | NEW |