From 31668f95704dfd50672a686b423f88499e25ebd6 Mon Sep 17 00:00:00 2001 From: Marshall Greenblatt Date: Mon, 30 Sep 2024 12:17:33 -0400 Subject: [PATCH] Fix dangling ptr in RenderProcessHostTaskProvider (fixes #3758) --- patch/patch.cfg | 6 +++++ .../chrome_browser_task_manager_5894650.patch | 27 +++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 patch/patches/chrome_browser_task_manager_5894650.patch diff --git a/patch/patch.cfg b/patch/patch.cfg index 151a25779..7f629aa29 100644 --- a/patch/patch.cfg +++ b/patch/patch.cfg @@ -744,5 +744,11 @@ patches = [ # Windows: Add missing check in base/profiler/stack_copier.cc to fix # compilation error of cef_sandbox. 'name': 'win_sandbox_stack_copier' + }, + { + # Fix dangling RenderProcessHost ptr in RenderProcessHostTaskProvider. + # https://github.com/chromiumembedded/cef/issues/3758 + # https://chromium-review.googlesource.com/c/chromium/src/+/5894650 + 'name': 'chrome_browser_task_manager_5894650' } ] diff --git a/patch/patches/chrome_browser_task_manager_5894650.patch b/patch/patches/chrome_browser_task_manager_5894650.patch new file mode 100644 index 000000000..fa3399015 --- /dev/null +++ b/patch/patches/chrome_browser_task_manager_5894650.patch @@ -0,0 +1,27 @@ +diff --git chrome/browser/task_manager/providers/render_process_host_task_provider.cc chrome/browser/task_manager/providers/render_process_host_task_provider.cc +index 11b05cbfc6077..45a5b11158a21 100644 +--- chrome/browser/task_manager/providers/render_process_host_task_provider.cc ++++ chrome/browser/task_manager/providers/render_process_host_task_provider.cc +@@ -110,18 +110,14 @@ void RenderProcessHostTaskProvider::OnRenderProcessHostCreated( + void RenderProcessHostTaskProvider::RenderProcessExited( + content::RenderProcessHost* host, + const content::ChildProcessTerminationInfo& info) { +- if (is_updating_) { +- DeleteTask(host->GetID()); +- host_observation_.RemoveObservation(host); +- } ++ DeleteTask(host->GetID()); ++ host_observation_.RemoveObservation(host); + } + + void RenderProcessHostTaskProvider::RenderProcessHostDestroyed( + content::RenderProcessHost* host) { +- if (is_updating_) { +- DeleteTask(host->GetID()); +- host_observation_.RemoveObservation(host); +- } ++ DeleteTask(host->GetID()); ++ host_observation_.RemoveObservation(host); + } + + } // namespace task_manager