| Index: chrome/browser/conflicts/module_event_sink_impl_win.cc
|
| diff --git a/chrome/browser/conflicts/module_event_sink_impl_win.cc b/chrome/browser/conflicts/module_event_sink_impl_win.cc
|
| index 428b3824e4eeda44530e9e78f0ff149ae6cfbffe..808940332b0fbb6de9756415beeacd54b48726bc 100644
|
| --- a/chrome/browser/conflicts/module_event_sink_impl_win.cc
|
| +++ b/chrome/browser/conflicts/module_event_sink_impl_win.cc
|
| @@ -22,22 +22,6 @@
|
|
|
| namespace {
|
|
|
| -// Gets the process creation time associated with the given process.
|
| -bool GetProcessCreationTime(base::ProcessHandle process,
|
| - uint64_t* creation_time) {
|
| - FILETIME creation_ft = {};
|
| - FILETIME exit_ft = {};
|
| - FILETIME kernel_ft = {};
|
| - FILETIME user_ft = {};
|
| - if (!::GetProcessTimes(process, &creation_ft, &exit_ft, &kernel_ft,
|
| - &user_ft)) {
|
| - return false;
|
| - }
|
| - *creation_time = (static_cast<uint64_t>(creation_ft.dwHighDateTime) << 32) |
|
| - static_cast<uint64_t>(creation_ft.dwLowDateTime);
|
| - return true;
|
| -}
|
| -
|
| // Gets the path of the module in the provided remote process. Returns true on
|
| // success, false otherwise.
|
| bool GetModulePath(base::ProcessHandle process,
|
| @@ -132,11 +116,12 @@ ModuleEventSinkImpl::ModuleEventSinkImpl(base::ProcessHandle process,
|
| ModuleEventSinkImpl::~ModuleEventSinkImpl() = default;
|
|
|
| // static
|
| -void ModuleEventSinkImpl::Create(base::ProcessHandle process,
|
| +void ModuleEventSinkImpl::Create(GetProcessHandleCallback get_process_handle,
|
| content::ProcessType process_type,
|
| ModuleDatabase* module_database,
|
| mojom::ModuleEventSinkRequest request) {
|
| DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
| + base::ProcessHandle process = get_process_handle.Run();
|
| auto module_event_sink_impl = base::MakeUnique<ModuleEventSinkImpl>(
|
| process, process_type, module_database);
|
| base::Closure error_handler = base::Bind(
|
| @@ -169,6 +154,22 @@ void ModuleEventSinkImpl::OnModuleEvent(mojom::ModuleEventType event_type,
|
| }
|
| }
|
|
|
| +// static
|
| +bool ModuleEventSinkImpl::GetProcessCreationTime(base::ProcessHandle process,
|
| + uint64_t* creation_time) {
|
| + FILETIME creation_ft = {};
|
| + FILETIME exit_ft = {};
|
| + FILETIME kernel_ft = {};
|
| + FILETIME user_ft = {};
|
| + if (!::GetProcessTimes(process, &creation_ft, &exit_ft, &kernel_ft,
|
| + &user_ft)) {
|
| + return false;
|
| + }
|
| + *creation_time = (static_cast<uint64_t>(creation_ft.dwHighDateTime) << 32) |
|
| + static_cast<uint64_t>(creation_ft.dwLowDateTime);
|
| + return true;
|
| +}
|
| +
|
| void ModuleEventSinkImpl::OnModuleLoad(uint64_t load_address) {
|
| if (in_error_)
|
| return;
|
|
|