Index: content/browser/browser_main_loop.cc |
diff --git a/content/browser/browser_main_loop.cc b/content/browser/browser_main_loop.cc |
index 519d13f4258d88f56fc575160a4ee603b7ab6110..9f1690e4734a1d8fdc39a796d204bd204f8f2ba2 100644 |
--- a/content/browser/browser_main_loop.cc |
+++ b/content/browser/browser_main_loop.cc |
@@ -10,6 +10,7 @@ |
#include <utility> |
#include <vector> |
+#include "base/base_switches.h" |
#include "base/bind.h" |
#include "base/command_line.h" |
#include "base/feature_list.h" |
@@ -135,6 +136,7 @@ |
#endif |
#if defined(OS_MACOSX) |
+#include "base/allocator/allocator_interception_mac.h" |
#include "base/memory/memory_pressure_monitor_mac.h" |
#include "content/browser/bootstrap_sandbox_manager_mac.h" |
#include "content/browser/cocoa/system_hotkey_helper_mac.h" |
@@ -860,6 +862,14 @@ int BrowserMainLoop::PreCreateThreads() { |
if (base::FeatureList::IsEnabled(features::kMemoryCoordinator)) |
MemoryCoordinatorImpl::GetInstance()->Start(); |
+#if defined(OS_MACOSX) |
+ if (base::CommandLine::InitializedForCurrentProcess() && |
+ base::CommandLine::ForCurrentProcess()->HasSwitch( |
+ switches::kEnableHeapProfiling)) { |
+ base::allocator::PeriodicallyShimNewMallocZones(); |
+ } |
+#endif |
+ |
#if BUILDFLAG(ENABLE_PLUGINS) |
// Prior to any processing happening on the IO thread, we create the |
// plugin service as it is predominantly used from the IO thread, |