diff options
Diffstat (limited to 'chrome/browser/zygote_host_linux.cc')
-rw-r--r-- | chrome/browser/zygote_host_linux.cc | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/chrome/browser/zygote_host_linux.cc b/chrome/browser/zygote_host_linux.cc index 7452db2..5536eaf 100644 --- a/chrome/browser/zygote_host_linux.cc +++ b/chrome/browser/zygote_host_linux.cc @@ -242,13 +242,6 @@ pid_t ZygoteHost::ForkRenderer( return base::kNullProcessHandle; } - const int kRendererScore = 5; - AdjustRendererOOMScore(pid, kRendererScore); - - return pid; -} - -void ZygoteHost::AdjustRendererOOMScore(base::ProcessHandle pid, int score) { // 1) You can't change the oom_adj of a non-dumpable process (EPERM) unless // you're root. Because of this, we can't set the oom_adj from the browser // process. @@ -281,23 +274,27 @@ void ZygoteHost::AdjustRendererOOMScore(base::ProcessHandle pid, int score) { selinux_valid = true; } + const int kRendererScore = 5; if (using_suid_sandbox_ && !selinux) { base::ProcessHandle sandbox_helper_process; + base::file_handle_mapping_vector dummy_map; std::vector<std::string> adj_oom_score_cmdline; adj_oom_score_cmdline.push_back(sandbox_binary_); adj_oom_score_cmdline.push_back(base::kAdjustOOMScoreSwitch); adj_oom_score_cmdline.push_back(base::Int64ToString(pid)); - adj_oom_score_cmdline.push_back(base::IntToString(score)); + adj_oom_score_cmdline.push_back(base::IntToString(kRendererScore)); CommandLine adj_oom_score_cmd(adj_oom_score_cmdline); - if (base::LaunchApp(adj_oom_score_cmd, false, true, + if (base::LaunchApp(adj_oom_score_cmdline, dummy_map, false, &sandbox_helper_process)) { ProcessWatcher::EnsureProcessGetsReaped(sandbox_helper_process); } } else if (!using_suid_sandbox_) { - if (!base::AdjustOOMScore(pid, score)) - LOG(ERROR) << "Failed to adjust OOM score of renderer with pid " << pid; + if (!base::AdjustOOMScore(pid, kRendererScore)) + LOG(ERROR) << "Failed to adjust OOM score of renderer"; } + + return pid; } void ZygoteHost::EnsureProcessTerminated(pid_t process) { |