#include "content/browser/renderer_host/spare_render_process_host_manager.h"
#include "base/check.h"
#include "base/debug/dump_without_crashing.h"
#include "base/memory/memory_pressure_monitor.h"
#include "base/metrics/histogram_functions.h"
#include "base/metrics/histogram_macros.h"
#include "base/no_destructor.h"
#include "content/browser/renderer_host/render_process_host_impl.h"
#include "content/browser/site_instance_impl.h"
#include "content/common/features.h"
#include "content/public/browser/browser_context.h"
#include "content/public/browser/browser_main_runner.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/common/content_client.h"
#include "content/public/common/content_features.h"
namespace content {
SpareRenderProcessHostManager::SpareRenderProcessHostManager() = default;
SpareRenderProcessHostManager::~SpareRenderProcessHostManager() = default;
SpareRenderProcessHostManager& SpareRenderProcessHostManager::GetInstance() { … }
void SpareRenderProcessHostManager::StartDestroyTimer(
std::optional<base::TimeDelta> timeout) { … }
bool SpareRenderProcessHostManager::DestroyTimerWillFireBefore(
base::TimeDelta timeout) { … }
void SpareRenderProcessHostManager::WarmupSpareRenderProcessHost(
BrowserContext* browser_context,
std::optional<base::TimeDelta> timeout) { … }
void SpareRenderProcessHostManager::DeferredWarmupSpareRenderProcessHost(
BrowserContext* browser_context,
base::TimeDelta delay,
std::optional<base::TimeDelta> timeout) { … }
RenderProcessHost*
SpareRenderProcessHostManager::MaybeTakeSpareRenderProcessHost(
BrowserContext* browser_context,
SiteInstanceImpl* site_instance) { … }
void SpareRenderProcessHostManager::PrepareForFutureRequests(
BrowserContext* browser_context,
std::optional<base::TimeDelta> delay) { … }
void SpareRenderProcessHostManager::CleanupSpareRenderProcessHost() { … }
base::CallbackListSubscription
SpareRenderProcessHostManager::RegisterSpareRenderProcessHostChangedCallback(
const base::RepeatingCallback<void(RenderProcessHost*)>& cb) { … }
void SpareRenderProcessHostManager::SetDeferTimerTaskRunnerForTesting(
scoped_refptr<base::SequencedTaskRunner> task_runner) { … }
void SpareRenderProcessHostManager::ReleaseSpareRenderProcessHost() { … }
void SpareRenderProcessHostManager::RenderProcessReady(
RenderProcessHost* host) { … }
void SpareRenderProcessHostManager::RenderProcessExited(
RenderProcessHost* host,
const ChildProcessTerminationInfo& info) { … }
void SpareRenderProcessHostManager::RenderProcessHostDestroyed(
RenderProcessHost* host) { … }
}