Index: content/browser/child_process_launcher_helper.h |
diff --git a/content/browser/child_process_launcher_helper.h b/content/browser/child_process_launcher_helper.h |
index ead7d44f4936bc5dee5fcdc0d86a7f0b2522fe4d..51dad0ac45569365096fc9f8d45e8a444492cf0a 100644 |
--- a/content/browser/child_process_launcher_helper.h |
+++ b/content/browser/child_process_launcher_helper.h |
@@ -15,6 +15,7 @@ |
#include "content/public/browser/browser_thread.h" |
#include "content/public/common/result_codes.h" |
#include "mojo/edk/embedder/embedder.h" |
+#include "mojo/edk/embedder/pending_process_connection.h" |
#include "mojo/edk/embedder/scoped_platform_handle.h" |
#if defined(OS_WIN) |
@@ -73,6 +74,8 @@ class ChildProcessLauncherHelper : |
BrowserThread::ID client_thread_id, |
std::unique_ptr<base::CommandLine> command_line, |
std::unique_ptr<SandboxedProcessLauncherDelegate> delegate, |
+ std::unique_ptr<mojo::edk::PendingProcessConnection> pending_connection, |
+ const mojo::edk::ProcessErrorCallback& process_error_callback, |
const base::WeakPtr<ChildProcessLauncher>& child_process_launcher, |
bool terminate_on_shutdown); |
@@ -101,13 +104,18 @@ class ChildProcessLauncherHelper : |
// |is_synchronous_launch| is set to false if the starting of the process is |
// asynchonous (this is the case on Android), in which case the returned |
// Process is not valid (and PostLaunchOnLauncherThread() will provide the |
- // process once it is available). |
+ // process once it is available). Iff |is_synchronous_launch| is set to false, |
+ // the implementation must also take ownership of |*pending_connection| and |
+ // |*server_handle| to eventually pass them on to |
+ // PostLaunchOnLauncherThread(). |
// Platform specific. |
ChildProcessLauncherHelper::Process LaunchProcessOnLauncherThread( |
const base::LaunchOptions& options, |
std::unique_ptr<FileMappedForLaunch> files_to_register, |
bool* is_synchronous_launch, |
- int* launch_result); |
+ int* launch_result, |
+ std::unique_ptr<mojo::edk::PendingProcessConnection>* pending_connection, |
+ mojo::edk::ScopedPlatformHandle* server_handle); |
// Called right after the process has been launched, whether it was created |
// yet or not. |
@@ -119,9 +127,12 @@ class ChildProcessLauncherHelper : |
// Called once the process has been created, successfully or not. |
// If |post_launch_on_client_thread_called| is false, |
// this calls PostLaunchOnClientThread on the client thread. |
- void PostLaunchOnLauncherThread(ChildProcessLauncherHelper::Process process, |
- int launch_result, |
- bool post_launch_on_client_thread_called); |
+ void PostLaunchOnLauncherThread( |
+ ChildProcessLauncherHelper::Process process, |
+ int launch_result, |
+ bool post_launch_on_client_thread_called, |
+ std::unique_ptr<mojo::edk::PendingProcessConnection> pending_connection, |
+ mojo::edk::ScopedPlatformHandle server_handle); |
// Note that this could be called before PostLaunchOnLauncherThread() is |
// called. |
@@ -160,7 +171,9 @@ class ChildProcessLauncherHelper : |
~ChildProcessLauncherHelper(); |
- void LaunchOnLauncherThread(); |
+ void LaunchOnLauncherThread( |
+ std::unique_ptr<mojo::edk::PendingProcessConnection> pending_connection, |
+ mojo::edk::ScopedPlatformHandle server_handle); |
const mojo::edk::PlatformHandle& mojo_client_handle() const { |
return mojo_client_handle_.get(); |
@@ -178,9 +191,10 @@ class ChildProcessLauncherHelper : |
base::TimeTicks begin_launch_time_; |
std::unique_ptr<base::CommandLine> command_line_; |
std::unique_ptr<SandboxedProcessLauncherDelegate> delegate_; |
+ std::unique_ptr<mojo::edk::PendingProcessConnection> pending_connection_; |
+ const mojo::edk::ProcessErrorCallback process_error_callback_; |
base::WeakPtr<ChildProcessLauncher> child_process_launcher_; |
mojo::edk::ScopedPlatformHandle mojo_client_handle_; |
- mojo::edk::ScopedPlatformHandle mojo_server_handle_; |
bool terminate_on_shutdown_; |
}; |