Index: content/browser/utility_process_host_impl.cc |
diff --git a/content/browser/utility_process_host_impl.cc b/content/browser/utility_process_host_impl.cc |
index f2b3bc31deeaa3ff2b0fe94726a0309ce4e6c8d3..afcfeb55b8db12ccbfd4dd5e6cba9221d2221532 100644 |
--- a/content/browser/utility_process_host_impl.cc |
+++ b/content/browser/utility_process_host_impl.cc |
@@ -73,6 +73,9 @@ UtilityProcessHostImpl::UtilityProcessHostImpl( |
is_batch_mode_(false), |
is_mdns_enabled_(false), |
no_sandbox_(false), |
+#if defined(OS_WIN) |
+ run_elevated_(false), |
+#endif |
#if defined(OS_LINUX) |
child_flags_(ChildProcessHost::CHILD_ALLOW_SELF), |
#else |
@@ -120,6 +123,13 @@ void UtilityProcessHostImpl::DisableSandbox() { |
no_sandbox_ = true; |
} |
+#if defined(OS_WIN) |
+void UtilityProcessHostImpl::ElevatePrivileges() { |
+ no_sandbox_ = true; |
+ run_elevated_ = true; |
+} |
+#endif |
+ |
void UtilityProcessHostImpl::EnableZygote() { |
use_linux_zygote_ = true; |
} |
@@ -225,6 +235,7 @@ bool UtilityProcessHostImpl::StartProcess() { |
process_->Launch( |
#if defined(OS_WIN) |
new UtilitySandboxedProcessLauncherDelegate(exposed_dir_), |
+ run_elevated_, |
#elif defined(OS_POSIX) |
use_zygote, |
env_, |
@@ -244,6 +255,13 @@ bool UtilityProcessHostImpl::OnMessageReceived(const IPC::Message& message) { |
return true; |
} |
+void UtilityProcessHostImpl::OnProcessLaunchFailed() { |
+ client_task_runner_->PostTask( |
+ FROM_HERE, |
+ base::Bind(&UtilityProcessHostClient::OnProcessLaunchFailed, |
+ client_.get())); |
+} |
+ |
void UtilityProcessHostImpl::OnProcessCrashed(int exit_code) { |
client_task_runner_->PostTask( |
FROM_HERE, |