| Index: content/common/sandbox_win.cc
|
| diff --git a/content/common/sandbox_win.cc b/content/common/sandbox_win.cc
|
| index 35c33d597cc2a730df0c55f89cfa67fb6ea27f5f..baa2470971d11a792fc27fe66f66187842ac83ce 100644
|
| --- a/content/common/sandbox_win.cc
|
| +++ b/content/common/sandbox_win.cc
|
| @@ -797,10 +797,13 @@ sandbox::ResultCode StartSandboxedProcess(
|
| TRACE_EVENT_BEGIN0("startup", "StartProcessWithAccess::LAUNCHPROCESS");
|
|
|
| PROCESS_INFORMATION temp_process_info = {};
|
| + sandbox::ResultCode last_warning = sandbox::SBOX_ALL_OK;
|
| + DWORD last_error = ERROR_SUCCESS;
|
| result = g_broker_services->SpawnTarget(
|
| cmd_line->GetProgram().value().c_str(),
|
| - cmd_line->GetCommandLineString().c_str(), policy, &temp_process_info);
|
| - DWORD last_error = ::GetLastError();
|
| + cmd_line->GetCommandLineString().c_str(), policy, &last_warning,
|
| + &last_error, &temp_process_info);
|
| +
|
| base::win::ScopedProcessInformation target(temp_process_info);
|
|
|
| TRACE_EVENT_END0("startup", "StartProcessWithAccess::LAUNCHPROCESS");
|
| @@ -815,6 +818,12 @@ sandbox::ResultCode StartSandboxedProcess(
|
| return result;
|
| }
|
|
|
| + if (sandbox::SBOX_ALL_OK != last_warning) {
|
| + UMA_HISTOGRAM_SPARSE_SLOWLY("Process.Sandbox.Launch.WarningResultCode",
|
| + last_warning);
|
| + UMA_HISTOGRAM_SPARSE_SLOWLY("Process.Sandbox.Launch.Warning", last_error);
|
| + }
|
| +
|
| delegate->PostSpawnTarget(target.process_handle());
|
|
|
| CHECK(ResumeThread(target.thread_handle()) != static_cast<DWORD>(-1));
|
|
|