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

Unified Diff: base/process/launch_win.cc

Issue 2680123003: Multi-Process Tracking Support (Closed)
Patch Set: addressed review comments by manzagop Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: base/process/launch_win.cc
diff --git a/base/process/launch_win.cc b/base/process/launch_win.cc
index 1349b3e4af3d101d4515e04d5ae081195e73016a..bb51a69b1b2e7b7986d87c4cac2fbc73a41930f0 100644
--- a/base/process/launch_win.cc
+++ b/base/process/launch_win.cc
@@ -17,6 +17,7 @@
#include "base/bind.h"
#include "base/bind_helpers.h"
#include "base/command_line.h"
+#include "base/debug/activity_tracker.h"
#include "base/debug/stack_trace.h"
#include "base/logging.h"
#include "base/message_loop/message_loop.h"
@@ -94,7 +95,12 @@ bool GetAppOutputInternal(const StringPiece16& cl,
NOTREACHED() << "Failed to start process";
return false;
}
+
base::win::ScopedProcessInformation proc_info(temp_process_info);
+ base::debug::GlobalActivityTracker* tracker =
+ base::debug::GlobalActivityTracker::Get();
+ if (tracker)
+ tracker->RecordProcessLaunch(proc_info.process_id(), cl.as_string());
// Close our writing end of pipe now. Otherwise later read would not be able
// to detect end of child's output.
@@ -119,6 +125,8 @@ bool GetAppOutputInternal(const StringPiece16& cl,
int exit_code;
base::TerminationStatus status = GetTerminationStatus(
proc_info.process_handle(), &exit_code);
+ base::debug::GlobalActivityTracker::RecordProcessExitIfEnabled(
+ proc_info.process_id(), exit_code);
return status != base::TERMINATION_STATUS_PROCESS_CRASHED &&
status != base::TERMINATION_STATUS_ABNORMAL_TERMINATION;
}
@@ -317,6 +325,8 @@ Process LaunchProcess(const string16& cmdline,
if (options.wait)
WaitForSingleObject(process_info.process_handle(), INFINITE);
+ base::debug::GlobalActivityTracker::RecordProcessLaunchIfEnabled(
+ process_info.process_id(), cmdline);
return Process(process_info.TakeProcessHandle());
}
@@ -344,6 +354,8 @@ Process LaunchElevatedProcess(const CommandLine& cmdline,
if (options.wait)
WaitForSingleObject(shex_info.hProcess, INFINITE);
+ base::debug::GlobalActivityTracker::RecordProcessLaunchIfEnabled(
+ GetProcessId(shex_info.hProcess), file, arguments);
return Process(shex_info.hProcess);
}

Powered by Google App Engine
This is Rietveld 408576698