summaryrefslogtreecommitdiff
path: root/chromium/content/public/browser/browser_child_process_host.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/content/public/browser/browser_child_process_host.h')
-rw-r--r--chromium/content/public/browser/browser_child_process_host.h24
1 files changed, 20 insertions, 4 deletions
diff --git a/chromium/content/public/browser/browser_child_process_host.h b/chromium/content/public/browser/browser_child_process_host.h
index 07193afd0cd..2b82b5b4d8c 100644
--- a/chromium/content/public/browser/browser_child_process_host.h
+++ b/chromium/content/public/browser/browser_child_process_host.h
@@ -23,12 +23,16 @@ class CommandLine;
class FilePath;
}
+namespace shell {
+class InterfaceProvider;
+class InterfaceRegistry;
+}
+
namespace content {
class BrowserChildProcessHostDelegate;
class ChildProcessHost;
class SandboxedProcessLauncherDelegate;
-class ServiceRegistry;
struct ChildProcessData;
// This represents child processes of the browser process, i.e. plugins. They
@@ -42,6 +46,14 @@ class CONTENT_EXPORT BrowserChildProcessHost : public IPC::Sender {
content::ProcessType process_type,
BrowserChildProcessHostDelegate* delegate);
+ // Used to create a child process host, with a unique token to identify the
+ // child process to Mojo. |mojo_child_token| should be a unique string
+ // generated using mojo::edk::GenerateRandomToken().
+ static BrowserChildProcessHost* Create(
+ content::ProcessType process_type,
+ BrowserChildProcessHostDelegate* delegate,
+ const std::string& mojo_child_token);
+
// Returns the child process host with unique id |child_process_id|, or
// nullptr if it doesn't exist. |child_process_id| is NOT the process ID, but
// is the same unique ID as |ChildProcessData::id|.
@@ -81,9 +93,13 @@ class CONTENT_EXPORT BrowserChildProcessHost : public IPC::Sender {
// this object.
virtual void SetHandle(base::ProcessHandle handle) = 0;
- // Get the Mojo service registry connected to the child process. Returns
- // nullptr if no service registry exists.
- virtual ServiceRegistry* GetServiceRegistry() = 0;
+ // Returns the shell::InterfaceRegistry the browser process uses to expose
+ // interfaces to the child.
+ virtual shell::InterfaceRegistry* GetInterfaceRegistry() = 0;
+
+ // Returns the shell::InterfaceProvider the browser process can use to bind
+ // interfaces exposed to it from the child.
+ virtual shell::InterfaceProvider* GetRemoteInterfaces() = 0;
#if defined(OS_MACOSX)
// Returns a PortProvider used to get the task port for child processes.