Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1233)

Side by Side Diff: content/browser/browser_main_loop.cc

Issue 877153005: sandbox: extract SetuidSandboxHost code from SetuidSandboxClient (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Respond to jln/hidehiko feedback; clang-format Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/browser_main_loop.h" 5 #include "content/browser/browser_main_loop.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 112
113 #if defined(OS_LINUX) && defined(USE_UDEV) 113 #if defined(OS_LINUX) && defined(USE_UDEV)
114 #include "content/browser/device_monitor_udev.h" 114 #include "content/browser/device_monitor_udev.h"
115 #elif defined(OS_MACOSX) && !defined(OS_IOS) 115 #elif defined(OS_MACOSX) && !defined(OS_IOS)
116 #include "content/browser/device_monitor_mac.h" 116 #include "content/browser/device_monitor_mac.h"
117 #endif 117 #endif
118 118
119 #if defined(OS_POSIX) && !defined(OS_MACOSX) 119 #if defined(OS_POSIX) && !defined(OS_MACOSX)
120 #include "content/browser/renderer_host/render_sandbox_host_linux.h" 120 #include "content/browser/renderer_host/render_sandbox_host_linux.h"
121 #include "content/browser/zygote_host/zygote_host_impl_linux.h" 121 #include "content/browser/zygote_host/zygote_host_impl_linux.h"
122 #include "sandbox/linux/suid/client/setuid_sandbox_client.h" 122 #include "sandbox/linux/suid/client/setuid_sandbox_host.h"
123 #endif 123 #endif
124 124
125 #if defined(ENABLE_PLUGINS) 125 #if defined(ENABLE_PLUGINS)
126 #include "content/browser/plugin_service_impl.h" 126 #include "content/browser/plugin_service_impl.h"
127 #endif 127 #endif
128 128
129 #if defined(TCMALLOC_TRACE_MEMORY_SUPPORTED) 129 #if defined(TCMALLOC_TRACE_MEMORY_SUPPORTED)
130 #include "third_party/tcmalloc/chromium/src/gperftools/heap-profiler.h" 130 #include "third_party/tcmalloc/chromium/src/gperftools/heap-profiler.h"
131 #endif 131 #endif
132 132
133 #if defined(USE_X11) 133 #if defined(USE_X11)
134 #include "ui/gfx/x/x11_connection.h" 134 #include "ui/gfx/x/x11_connection.h"
135 #include "ui/gfx/x/x11_types.h" 135 #include "ui/gfx/x/x11_types.h"
136 #endif 136 #endif
137 137
138 // One of the linux specific headers defines this as a macro. 138 // One of the linux specific headers defines this as a macro.
139 #ifdef DestroyAll 139 #ifdef DestroyAll
140 #undef DestroyAll 140 #undef DestroyAll
141 #endif 141 #endif
142 142
143 namespace content { 143 namespace content {
144 namespace { 144 namespace {
145 145
146 #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) 146 #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
147 void SetupSandbox(const base::CommandLine& parsed_command_line) { 147 void SetupSandbox(const base::CommandLine& parsed_command_line) {
148 TRACE_EVENT0("startup", "SetupSandbox"); 148 TRACE_EVENT0("startup", "SetupSandbox");
149 base::FilePath sandbox_binary; 149 base::FilePath sandbox_binary;
150 150
151 scoped_ptr<sandbox::SetuidSandboxClient> setuid_sandbox_client( 151 scoped_ptr<sandbox::SetuidSandboxHost> setuid_sandbox_host(
152 sandbox::SetuidSandboxClient::Create()); 152 sandbox::SetuidSandboxHost::Create());
153 153
154 const bool want_setuid_sandbox = 154 const bool want_setuid_sandbox =
155 !parsed_command_line.HasSwitch(switches::kNoSandbox) && 155 !parsed_command_line.HasSwitch(switches::kNoSandbox) &&
156 !parsed_command_line.HasSwitch(switches::kDisableSetuidSandbox) && 156 !parsed_command_line.HasSwitch(switches::kDisableSetuidSandbox) &&
157 !setuid_sandbox_client->IsDisabledViaEnvironment(); 157 !setuid_sandbox_host->IsDisabledViaEnvironment();
158 158
159 static const char no_suid_error[] = 159 static const char no_suid_error[] =
160 "Running without the SUID sandbox! See " 160 "Running without the SUID sandbox! See "
161 "https://code.google.com/p/chromium/wiki/LinuxSUIDSandboxDevelopment " 161 "https://code.google.com/p/chromium/wiki/LinuxSUIDSandboxDevelopment "
162 "for more information on developing with the sandbox on."; 162 "for more information on developing with the sandbox on.";
163 if (want_setuid_sandbox) { 163 if (want_setuid_sandbox) {
164 sandbox_binary = setuid_sandbox_client->GetSandboxBinaryPath(); 164 sandbox_binary = setuid_sandbox_host->GetSandboxBinaryPath();
165 if (sandbox_binary.empty()) { 165 if (sandbox_binary.empty()) {
166 // This needs to be fatal. Talk to security@chromium.org if you feel 166 // This needs to be fatal. Talk to security@chromium.org if you feel
167 // otherwise. 167 // otherwise.
168 LOG(FATAL) << no_suid_error; 168 LOG(FATAL) << no_suid_error;
169 } 169 }
170 } else { 170 } else {
171 LOG(ERROR) << no_suid_error; 171 LOG(ERROR) << no_suid_error;
172 } 172 }
173 173
174 // Tickle the sandbox host and zygote host so they fork now. 174 // Tickle the sandbox host and zygote host so they fork now.
(...skipping 1096 matching lines...) Expand 10 before | Expand all | Expand 10 after
1271 1271
1272 void BrowserMainLoop::EndStartupTracing() { 1272 void BrowserMainLoop::EndStartupTracing() {
1273 is_tracing_startup_ = false; 1273 is_tracing_startup_ = false;
1274 TracingController::GetInstance()->DisableRecording( 1274 TracingController::GetInstance()->DisableRecording(
1275 TracingController::CreateFileSink( 1275 TracingController::CreateFileSink(
1276 startup_trace_file_, 1276 startup_trace_file_,
1277 base::Bind(OnStoppedStartupTracing, startup_trace_file_))); 1277 base::Bind(OnStoppedStartupTracing, startup_trace_file_)));
1278 } 1278 }
1279 1279
1280 } // namespace content 1280 } // namespace content
OLDNEW
« no previous file with comments | « components/nacl/zygote/nacl_fork_delegate_linux.cc ('k') | content/browser/zygote_host/zygote_host_impl_linux.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698