| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CONTENT_BROWSER_ANDROID_CHILD_PROCESS_LAUNCHER_ANDROID_H_ |
| #define CONTENT_BROWSER_ANDROID_CHILD_PROCESS_LAUNCHER_ANDROID_H_ |
| |
| #include <jni.h> |
| |
| #include "base/callback.h" |
| #include "base/command_line.h" |
| #include "base/process/process.h" |
| #include "content/public/browser/file_descriptor_info.h" |
| #include "ui/gl/android/scoped_java_surface.h" |
| |
| namespace content { |
| |
| typedef base::Callback<void(base::ProcessHandle)> StartChildProcessCallback; |
| // Starts a process as a child process spawned by the Android |
| // ActivityManager. |
| // The created process handle is returned to the |callback| on success, 0 is |
| // retuned if the process could not be created. |
| void StartChildProcess(const base::CommandLine::StringVector& argv, |
| int child_process_id, |
| const scoped_ptr<FileDescriptorInfo> files_to_register, |
| const StartChildProcessCallback& callback); |
| |
| // Stops a child process based on the handle returned form |
| // StartChildProcess. |
| void StopChildProcess(base::ProcessHandle handle); |
| |
| bool IsChildProcessOomProtected(base::ProcessHandle handle); |
| |
| void SetChildProcessInForeground(base::ProcessHandle handle, |
| bool in_foreground); |
| |
| void RegisterViewSurface(int surface_id, jobject j_surface); |
| |
| void UnregisterViewSurface(int surface_id); |
| |
| void CreateSurfaceTextureSurface(int surface_texture_id, |
| int client_id, |
| gfx::SurfaceTexture* surface_texture); |
| |
| void DestroySurfaceTextureSurface(int surface_texture_id, int client_id); |
| |
| gfx::ScopedJavaSurface GetSurfaceTextureSurface(int surface_texture_id, |
| int client_id); |
| |
| bool RegisterChildProcessLauncher(JNIEnv* env); |
| |
| } // namespace content |
| |
| #endif // CONTENT_BROWSER_ANDROID_CHILD_PROCESS_LAUNCHER_ANDROID_H_ |