Commit 00281713 authored by Alex Clarke's avatar Alex Clarke Committed by Commit Bot

BindProcessNode to take a render process host id

It's dangerous to post a task with a RenderProcessHost pointer because
the RenderProcessHost can go away before the task is run.

Bug: 863341
Change-Id: I9a5e3ae068dd42ea5a68d6e4afcf77d7486eeac4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1581580
Auto-Submit: Alex Clarke <alexclarke@chromium.org>
Commit-Queue: Sigurður Ásgeirsson <siggi@chromium.org>
Reviewed-by: default avatarSigurður Ásgeirsson <siggi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#653553}
parent 46e00cb0
...@@ -12,13 +12,19 @@ ...@@ -12,13 +12,19 @@
#include "chrome/browser/performance_manager/graph/process_node_impl.h" #include "chrome/browser/performance_manager/graph/process_node_impl.h"
#include "chrome/browser/performance_manager/performance_manager.h" #include "chrome/browser/performance_manager/performance_manager.h"
#include "chrome/browser/performance_manager/render_process_user_data.h" #include "chrome/browser/performance_manager/render_process_user_data.h"
#include "content/public/browser/render_process_host.h"
#include "services/resource_coordinator/public/mojom/coordination_unit.mojom.h" #include "services/resource_coordinator/public/mojom/coordination_unit.mojom.h"
namespace { namespace {
void BindProcessNode( void BindProcessNode(
content::RenderProcessHost* render_process_host, int render_process_host_id,
resource_coordinator::mojom::ProcessCoordinationUnitRequest request) { resource_coordinator::mojom::ProcessCoordinationUnitRequest request) {
content::RenderProcessHost* render_process_host =
content::RenderProcessHost::FromID(render_process_host_id);
if (!render_process_host)
return;
performance_manager::RenderProcessUserData* user_data = performance_manager::RenderProcessUserData* user_data =
performance_manager::RenderProcessUserData::GetForRenderProcessHost( performance_manager::RenderProcessUserData::GetForRenderProcessHost(
render_process_host); render_process_host);
...@@ -47,8 +53,7 @@ void ChromeContentBrowserClientPerformanceManagerPart:: ...@@ -47,8 +53,7 @@ void ChromeContentBrowserClientPerformanceManagerPart::
blink::AssociatedInterfaceRegistry* associated_registry, blink::AssociatedInterfaceRegistry* associated_registry,
content::RenderProcessHost* render_process_host) { content::RenderProcessHost* render_process_host) {
registry->AddInterface( registry->AddInterface(
base::BindRepeating(&BindProcessNode, base::BindRepeating(&BindProcessNode, render_process_host->GetID()),
base::Unretained(render_process_host)),
base::SequencedTaskRunnerHandle::Get()); base::SequencedTaskRunnerHandle::Get());
// Ideally this would strictly be a "CreateForRenderProcess", but when a // Ideally this would strictly be a "CreateForRenderProcess", but when a
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment