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

Side by Side Diff: content/common/sandbox_win.cc

Issue 1386193002: Stop using the TRACE_EVENT_*_ETW macros. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: self-review (fix a comment) Created 5 years, 2 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/common/sandbox_win.h" 5 #include "content/common/sandbox_win.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/base_switches.h" 9 #include "base/base_switches.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 635 matching lines...) Expand 10 before | Expand all | Expand 10 after
646 return sandbox::SBOX_ALL_OK == result; 646 return sandbox::SBOX_ALL_OK == result;
647 } 647 }
648 648
649 base::Process StartSandboxedProcess( 649 base::Process StartSandboxedProcess(
650 SandboxedProcessLauncherDelegate* delegate, 650 SandboxedProcessLauncherDelegate* delegate,
651 base::CommandLine* cmd_line) { 651 base::CommandLine* cmd_line) {
652 const base::CommandLine& browser_command_line = 652 const base::CommandLine& browser_command_line =
653 *base::CommandLine::ForCurrentProcess(); 653 *base::CommandLine::ForCurrentProcess();
654 std::string type_str = cmd_line->GetSwitchValueASCII(switches::kProcessType); 654 std::string type_str = cmd_line->GetSwitchValueASCII(switches::kProcessType);
655 655
656 TRACE_EVENT_BEGIN_ETW("StartProcessWithAccess", 0, type_str); 656 TRACE_EVENT1("startup", "StartProcessWithAccess", "type", type_str);
657 657
658 // Propagate the --allow-no-job flag if present. 658 // Propagate the --allow-no-job flag if present.
659 if (browser_command_line.HasSwitch(switches::kAllowNoSandboxJob) && 659 if (browser_command_line.HasSwitch(switches::kAllowNoSandboxJob) &&
660 !cmd_line->HasSwitch(switches::kAllowNoSandboxJob)) { 660 !cmd_line->HasSwitch(switches::kAllowNoSandboxJob)) {
661 cmd_line->AppendSwitch(switches::kAllowNoSandboxJob); 661 cmd_line->AppendSwitch(switches::kAllowNoSandboxJob);
662 } 662 }
663 663
664 ProcessDebugFlags(cmd_line); 664 ProcessDebugFlags(cmd_line);
665 665
666 // Prefetch hints on windows: 666 // Prefetch hints on windows:
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
788 policy->SetStderrHandle(GetStdHandle(STD_ERROR_HANDLE)); 788 policy->SetStderrHandle(GetStdHandle(STD_ERROR_HANDLE));
789 #endif 789 #endif
790 790
791 if (delegate) { 791 if (delegate) {
792 bool success = true; 792 bool success = true;
793 delegate->PreSpawnTarget(policy, &success); 793 delegate->PreSpawnTarget(policy, &success);
794 if (!success) 794 if (!success)
795 return base::Process(); 795 return base::Process();
796 } 796 }
797 797
798 TRACE_EVENT_BEGIN_ETW("StartProcessWithAccess::LAUNCHPROCESS", 0, 0); 798 TRACE_EVENT_BEGIN0("startup", "StartProcessWithAccess::LAUNCHPROCESS");
799 799
800 PROCESS_INFORMATION temp_process_info = {}; 800 PROCESS_INFORMATION temp_process_info = {};
801 result = g_broker_services->SpawnTarget( 801 result = g_broker_services->SpawnTarget(
802 cmd_line->GetProgram().value().c_str(), 802 cmd_line->GetProgram().value().c_str(),
803 cmd_line->GetCommandLineString().c_str(), 803 cmd_line->GetCommandLineString().c_str(), policy, &temp_process_info);
804 policy, &temp_process_info);
805 DWORD last_error = ::GetLastError(); 804 DWORD last_error = ::GetLastError();
806 base::win::ScopedProcessInformation target(temp_process_info); 805 base::win::ScopedProcessInformation target(temp_process_info);
807 806
808 TRACE_EVENT_END_ETW("StartProcessWithAccess::LAUNCHPROCESS", 0, 0); 807 TRACE_EVENT_END0("startup", "StartProcessWithAccess::LAUNCHPROCESS");
809 808
810 if (sandbox::SBOX_ALL_OK != result) { 809 if (sandbox::SBOX_ALL_OK != result) {
811 if (result == sandbox::SBOX_ERROR_GENERIC) 810 if (result == sandbox::SBOX_ERROR_GENERIC)
812 DPLOG(ERROR) << "Failed to launch process"; 811 DPLOG(ERROR) << "Failed to launch process";
813 else if (result == sandbox::SBOX_ERROR_CREATE_PROCESS) { 812 else if (result == sandbox::SBOX_ERROR_CREATE_PROCESS) {
814 // TODO(shrikant): Remove this special case handling after determining 813 // TODO(shrikant): Remove this special case handling after determining
815 // cause for lowbox/createprocess errors. 814 // cause for lowbox/createprocess errors.
816 sandbox::PolicyBase* policy_base = 815 sandbox::PolicyBase* policy_base =
817 static_cast<sandbox::PolicyBase*>(policy); 816 static_cast<sandbox::PolicyBase*>(policy);
818 UMA_HISTOGRAM_SPARSE_SLOWLY(policy_base->GetLowBoxSid() ? 817 UMA_HISTOGRAM_SPARSE_SLOWLY(policy_base->GetLowBoxSid() ?
819 "Process.Sandbox.Lowbox.Launch.Error" : 818 "Process.Sandbox.Lowbox.Launch.Error" :
820 "Process.Sandbox.Launch.Error", 819 "Process.Sandbox.Launch.Error",
821 last_error); 820 last_error);
822 } else 821 } else
823 DLOG(ERROR) << "Failed to launch process. Error: " << result; 822 DLOG(ERROR) << "Failed to launch process. Error: " << result;
824 823
825 policy->Release(); 824 policy->Release();
826 return base::Process(); 825 return base::Process();
827 } 826 }
828 policy->Release(); 827 policy->Release();
829 828
830 if (delegate) 829 if (delegate)
831 delegate->PostSpawnTarget(target.process_handle()); 830 delegate->PostSpawnTarget(target.process_handle());
832 831
833 CHECK(ResumeThread(target.thread_handle()) != -1); 832 CHECK(ResumeThread(target.thread_handle()) != -1);
834 TRACE_EVENT_END_ETW("StartProcessWithAccess", 0, type_str);
835 return base::Process(target.TakeProcessHandle()); 833 return base::Process(target.TakeProcessHandle());
836 } 834 }
837 835
838 bool BrokerDuplicateHandle(HANDLE source_handle, 836 bool BrokerDuplicateHandle(HANDLE source_handle,
839 DWORD target_process_id, 837 DWORD target_process_id,
840 HANDLE* target_handle, 838 HANDLE* target_handle,
841 DWORD desired_access, 839 DWORD desired_access,
842 DWORD options) { 840 DWORD options) {
843 // If our process is the target just duplicate the handle. 841 // If our process is the target just duplicate the handle.
844 if (::GetCurrentProcessId() == target_process_id) { 842 if (::GetCurrentProcessId() == target_process_id) {
(...skipping 22 matching lines...) Expand all
867 } 865 }
868 866
869 return false; 867 return false;
870 } 868 }
871 869
872 bool BrokerAddTargetPeer(HANDLE peer_process) { 870 bool BrokerAddTargetPeer(HANDLE peer_process) {
873 return g_broker_services->AddTargetPeer(peer_process) == sandbox::SBOX_ALL_OK; 871 return g_broker_services->AddTargetPeer(peer_process) == sandbox::SBOX_ALL_OK;
874 } 872 }
875 873
876 } // namespace content 874 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698