refactor: simplify child process tracking for app.getAppMetrics() (#26657)
This commit is contained in:
parent
61f339d3aa
commit
4e3e3d414d
4 changed files with 17 additions and 27 deletions
|
@ -595,7 +595,7 @@ App::App() {
|
|||
->set_delegate(this);
|
||||
Browser::Get()->AddObserver(this);
|
||||
|
||||
base::ProcessId pid = base::GetCurrentProcId();
|
||||
auto pid = content::ChildProcessHost::kInvalidUniqueID;
|
||||
auto process_metric = std::make_unique<electron::ProcessMetric>(
|
||||
content::PROCESS_TYPE_BROWSER, base::GetCurrentProcessHandle(),
|
||||
base::ProcessMetrics::CreateCurrentProcessMetrics());
|
||||
|
@ -835,26 +835,26 @@ void App::OnGpuProcessCrashed(base::TerminationStatus status) {
|
|||
|
||||
void App::BrowserChildProcessLaunchedAndConnected(
|
||||
const content::ChildProcessData& data) {
|
||||
ChildProcessLaunched(data.process_type, data.GetProcess().Handle(),
|
||||
ChildProcessLaunched(data.process_type, data.id, data.GetProcess().Handle(),
|
||||
data.metrics_name, base::UTF16ToUTF8(data.name));
|
||||
}
|
||||
|
||||
void App::BrowserChildProcessHostDisconnected(
|
||||
const content::ChildProcessData& data) {
|
||||
ChildProcessDisconnected(base::GetProcId(data.GetProcess().Handle()));
|
||||
ChildProcessDisconnected(data.id);
|
||||
}
|
||||
|
||||
void App::BrowserChildProcessCrashed(
|
||||
const content::ChildProcessData& data,
|
||||
const content::ChildProcessTerminationInfo& info) {
|
||||
ChildProcessDisconnected(base::GetProcId(data.GetProcess().Handle()));
|
||||
ChildProcessDisconnected(data.id);
|
||||
BrowserChildProcessCrashedOrKilled(data, info);
|
||||
}
|
||||
|
||||
void App::BrowserChildProcessKilled(
|
||||
const content::ChildProcessData& data,
|
||||
const content::ChildProcessTerminationInfo& info) {
|
||||
ChildProcessDisconnected(base::GetProcId(data.GetProcess().Handle()));
|
||||
ChildProcessDisconnected(data.id);
|
||||
BrowserChildProcessCrashedOrKilled(data, info);
|
||||
}
|
||||
|
||||
|
@ -875,7 +875,7 @@ void App::BrowserChildProcessCrashedOrKilled(
|
|||
}
|
||||
|
||||
void App::RenderProcessReady(content::RenderProcessHost* host) {
|
||||
ChildProcessLaunched(content::PROCESS_TYPE_RENDERER,
|
||||
ChildProcessLaunched(content::PROCESS_TYPE_RENDERER, host->GetID(),
|
||||
host->GetProcess().Handle());
|
||||
|
||||
// TODO(jeremy): this isn't really the right place to be creating
|
||||
|
@ -890,16 +890,15 @@ void App::RenderProcessReady(content::RenderProcessHost* host) {
|
|||
}
|
||||
}
|
||||
|
||||
void App::RenderProcessDisconnected(base::ProcessId host_pid) {
|
||||
ChildProcessDisconnected(host_pid);
|
||||
void App::RenderProcessExited(content::RenderProcessHost* host) {
|
||||
ChildProcessDisconnected(host->GetID());
|
||||
}
|
||||
|
||||
void App::ChildProcessLaunched(int process_type,
|
||||
int pid,
|
||||
base::ProcessHandle handle,
|
||||
const std::string& service_name,
|
||||
const std::string& name) {
|
||||
auto pid = base::GetProcId(handle);
|
||||
|
||||
#if defined(OS_MAC)
|
||||
auto metrics = base::ProcessMetrics::CreateProcessMetrics(
|
||||
handle, content::BrowserChildProcessHost::GetPortProvider());
|
||||
|
@ -910,7 +909,7 @@ void App::ChildProcessLaunched(int process_type,
|
|||
process_type, handle, std::move(metrics), service_name, name);
|
||||
}
|
||||
|
||||
void App::ChildProcessDisconnected(base::ProcessId pid) {
|
||||
void App::ChildProcessDisconnected(int pid) {
|
||||
app_metrics_.erase(pid);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue