• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
3 // found in the LICENSE file.
4 
5 #ifndef CONTENT_PUBLIC_BROWSER_ZYGOTE_HOST_LINUX_H_
6 #define CONTENT_PUBLIC_BROWSER_ZYGOTE_HOST_LINUX_H_
7 
8 #include <unistd.h>
9 
10 #include "base/process/process.h"
11 #include "content/common/content_export.h"
12 
13 namespace content {
14 
15 // http://code.google.com/p/chromium/wiki/LinuxZygote
16 
17 // The zygote host is the interface, in the browser process, to the zygote
18 // process.
19 class ZygoteHost {
20  public:
21   // Returns the singleton instance.
22   CONTENT_EXPORT static ZygoteHost* GetInstance();
23 
~ZygoteHost()24   virtual ~ZygoteHost() {}
25 
26   // Returns the pid of the Zygote process.
27   virtual pid_t GetPid() const = 0;
28 
29   // Returns the pid of the Sandbox Helper process.
30   virtual pid_t GetSandboxHelperPid() const = 0;
31 
32   // Returns an int which is a bitmask of kSandboxLinux* values. Only valid
33   // after the first render has been forked.
34   virtual int GetSandboxStatus() const = 0;
35 
36   // Adjust the OOM score of the given renderer's PID.  The allowed
37   // range for the score is [0, 1000], where higher values are more
38   // likely to be killed by the OOM killer.
39   virtual void AdjustRendererOOMScore(base::ProcessHandle process_handle,
40                                       int score) = 0;
41 };
42 
43 }  // namespace content
44 
45 #endif  // CONTENT_PUBLIC_BROWSER_ZYGOTE_HOST_LINUX_H_
46