Chromium Code Reviews| Index: content/browser/zygote_host/zygote_host_impl_linux.h |
| diff --git a/content/browser/zygote_host/zygote_host_impl_linux.h b/content/browser/zygote_host/zygote_host_impl_linux.h |
| index 6793f73757c8be61eaacd4db0c08cc480dc2e99d..e2d907ce18aa1867f31752f12489d898defa7d18 100644 |
| --- a/content/browser/zygote_host/zygote_host_impl_linux.h |
| +++ b/content/browser/zygote_host/zygote_host_impl_linux.h |
| @@ -5,16 +5,11 @@ |
| #ifndef CONTENT_BROWSER_ZYGOTE_HOST_ZYGOTE_HOST_IMPL_LINUX_H_ |
| #define CONTENT_BROWSER_ZYGOTE_HOST_ZYGOTE_HOST_IMPL_LINUX_H_ |
| -#include <stddef.h> |
| - |
| +#include <map> |
|
mdempsky
2016/01/05 22:41:57
No need for <map> here.
Oh, you should add <sys/t
Greg K
2016/01/06 18:20:41
Done.
|
| #include <set> |
| #include <string> |
| -#include <vector> |
| -#include "base/pickle.h" |
| -#include "base/process/kill.h" |
| #include "base/synchronization/lock.h" |
| -#include "content/public/browser/file_descriptor_info.h" |
| #include "content/public/browser/zygote_host_linux.h" |
| namespace base { |
| @@ -31,35 +26,17 @@ class CONTENT_EXPORT ZygoteHostImpl : public ZygoteHost { |
| void Init(const std::string& sandbox_cmd); |
| - // After the last known Zygote child exits, notify the Zygote to exit. |
| - void TearDownAfterLastChild(); |
| - |
| - // Tries to start a process of type indicated by process_type. |
| - // Returns its pid on success, otherwise |
| - // base::kNullProcessHandle; |
| - pid_t ForkRequest(const std::vector<std::string>& command_line, |
| - scoped_ptr<FileDescriptorInfo> mapping, |
| - const std::string& process_type); |
| - void EnsureProcessTerminated(pid_t process); |
| - |
| - // Get the termination status (and, optionally, the exit code) of |
| - // the process. |exit_code| is set to the exit code of the child |
| - // process. (|exit_code| may be NULL.) |
| - // Unfortunately the Zygote can not accurately figure out if a process |
| - // is already dead without waiting synchronously for it. |
| - // |known_dead| should be set to true when we already know that the process |
| - // is dead. When |known_dead| is false, processes could be seen as |
| - // still running, even when they're not. When |known_dead| is true, the |
| - // process will be SIGKILL-ed first (which should have no effect if it was |
| - // really dead). This is to prevent a waiting waitpid() from blocking in |
| - // a single-threaded Zygote. See crbug.com/157458. |
| - base::TerminationStatus GetTerminationStatus(base::ProcessHandle handle, |
| - bool known_dead, |
| - int* exit_code); |
| - |
| - // ZygoteHost implementation: |
| - pid_t GetPid() const override; |
| - int GetSandboxStatus() const override; |
| + // Retrieves the sandbox command passed into Init(); |
| + const std::string& SandboxCommand() const; |
| + |
| + // Tells the ZygoteHost the PIDs of all the zygotes. |
| + void AddZygotePid(pid_t pid); |
| + |
| + // Returns whether or not this pid is the pid of a zygote. |
| + bool IsZygotePid(pid_t pid) override; |
| + |
| + void SetRendererSandboxStatus(int status); |
| + int GetRendererSandboxStatus() const override; |
| void AdjustRendererOOMScore(base::ProcessHandle process_handle, |
| int score) override; |
| @@ -69,42 +46,13 @@ class CONTENT_EXPORT ZygoteHostImpl : public ZygoteHost { |
| ZygoteHostImpl(); |
| ~ZygoteHostImpl() override; |
| - // Notify the Zygote to exit immediately. This object should not be |
| - // used afterwards. |
| - void TearDown(); |
| - |
| - // Should be called every time a Zygote child is born. |
| - void ZygoteChildBorn(pid_t process); |
| - |
| - // Should be called every time a Zygote child died. |
| - void ZygoteChildDied(pid_t process); |
| - |
| - // Sends |data| to the zygote via |control_fd_|. If |fds| is non-NULL, the |
| - // included file descriptors will also be passed. The caller is responsible |
| - // for acquiring |control_lock_|. |
| - bool SendMessage(const base::Pickle& data, const std::vector<int>* fds); |
| - |
| - ssize_t ReadReply(void* buf, size_t buflen); |
| - |
| - // Whether we should use the namespace sandbox instead of the setuid sandbox. |
| - bool ShouldUseNamespaceSandbox(); |
| - |
| - int control_fd_; // the socket to the zygote |
| - // A lock protecting all communication with the zygote. This lock must be |
| - // acquired before sending a command and released after the result has been |
| - // received. |
| - base::Lock control_lock_; |
| - pid_t pid_; |
| - bool init_; |
| + int renderer_sandbox_status_; |
| bool use_suid_sandbox_for_adj_oom_score_; |
| std::string sandbox_binary_; |
| - bool have_read_sandbox_status_word_; |
| - int sandbox_status_; |
| - // A lock protecting list_of_running_zygote_children_ and |
| - // should_teardown_after_last_child_exits_. |
| - base::Lock child_tracking_lock_; |
| - std::set<pid_t> list_of_running_zygote_children_; |
| - bool should_teardown_after_last_child_exits_; |
| + // This lock protects the |zygote_pids_| set. |
| + base::Lock zygote_pids_lock_; |
| + // This is a set of PIDs representing all the running zygotes. |
| + std::set<pid_t> zygote_pids_; |
| }; |
| } // namespace content |